PEXA Assignmentについて

チュートリアル

定義ファイル

各セクションの説明

実装

目次

  1. はじめに
  2. AssignSessionについて
  3. Directiveについて
  4. AssignSchema定義の内容
  5. AssignSchema定義ファイルの全体構成
    1. Assignmentヘッダ部
      1. models_conditionセクション
      2. source_feedbackセクション
    2. Assign処理プロセス
  6. Service定義全体のサンプル


はじめに

このドキュメントは、PEXAアサインメントフレームワークで使用するアサインメント定義ファイルについて解説するものです。

アサインメント定義ファイルは、アサインメントフレームワークの核となる定義ファイルです。
この定義ファイル中にデータモデルの操作を行う処理を記述し、PEXAのサービス実行エンジンからアサインメントフレームワークが呼び出されることで動作させることができます。

この定義ファイルでは、データモデル操作を行うための3種類の実行命令(アサインプロセス)を記述していきます。 SourceモデルからAssignモデルを生成する(Destination)、SourceAからAssignモデルを更新する(Reflection)、Sourceモデル自体を更新する(Update)といったデータモデル操作を行うことができます。

記述形式はPEXA独自のプロパティ形式となります。

AssignSchemaの基本構成図を以下に提示します。

また、PEXAアサインメントフレームワークは、AssignSchema内で再帰処理を行うことができます。
これは、OutputのAssignモデルをSourceモデルとして、再度PEXAアサインメントフレームワークを呼び出す処理のことです。
この処理は、Sourceモデルが別のAssignment処理のSource適用条件のマッチング前に行われます。
Assignモデルが複数インスタンスあった場合は、再帰処理は各Assignモデルインスタンスごとにシーケンスに実行されます。
ただし、無限ループを避けるために、同一インスタンスに対して同一Assignment処理は適用されません。

再帰処理のイメージ図を以下に提示します。


AssignSessionについて

AssignSchema内で使用できるsessionキーは以下のものがあります。

ASSIGN_Source

概要:
Sourceモデルが設定されてます。


ASSIGN_ID

概要:
Assign処理のIDが設定されてます。


ASSIGN_Role

概要:
ログイン情報のモデルが設定されてます。
@ASSIGN_Role/OperatorNoでログインユーザーのIDを取得可能です。


ASSIGN_Target

概要:
ASSIGNプロセス処理の対象が設定されてます。


ASSIGN_Assign

概要:
ASSIGNプロセスの処理結果が設定されます。
複数ある場合は、最後の一つが設定されます。


ASSIGN_Iterator

概要:
Assign処理プロセス内で、AssignTargetからAssignを展開する際に展開元になるモデルが設定されます。


ASSIGN_ResultList

概要:
各Assign処理およびAssignプロセス処理の結果をモデルのリストとして格納されます。


ASSIGN_TotalResultList

概要:
アサインメントフレームワーク全体の処理結果をモデルのリストとして格納されます。



Directiveについて

Service定義ファイル内で処理を記述する際、Directiveを多用することになります。
Directiveとは、細かい操作命令、動的な値などを表す指示子の総称です。
Directiveは必ず先頭が"&"で始まります。

一例として、

  • 現在の時刻を表す日付値 : &Date
  • 処理をスキップする命令 : &Skip
といった物があり、これらをプロセス内や条件判定のセクション内などで多用します。

Directiveの詳細については、こちらを参照して下さい。


AssignSchema定義の内容

Assignment定義の構成は、主に以下のとおりになります。

ヘッダ部

assignmentの定義ならびに、展開もとモデルのマッチング条件や、コミット対象とするか否かなど全体的な処理に関する内容を記述します。

詳細はAssignmentヘッダ部を参照してください。


assign_items

assignプロセス部は、生成・反映処理内容を記述します。
assignプロセス部は、assignセクションにてリスト形式で記述することで複数設定することが可能で、上から下に評価されます。
複数のassignプロセス部があった場合、1つ目のプロセス終了時点で2つのインスタンスが展開された場合、次のプロセスはこの二つのインスタンスがそれぞれ評価されます。

    つまり、1つ目のプロセス

		a---+---b1
		    |
		    +---b2

    2つ目のプロセス

		b1--+---c1
		    |
		    +---c2

		b2--+---c3
	 	    |
		    +---c4
2つの目のプロセスで、各展開元がそれぞれ2インスタンスに展開されたならば、2つ目のプロセス終了時点では、展開されたモデルは4つになります。
このように各プロセスは展開先モデル単位に評価されます。

詳細はAssign処理プロセスを参照してください。



AssignSchema定義ファイルの全体構成

アサインメント定義ファイルの全体構成について、以下に示します。

それぞれのセクションの詳細については、以降で解説します。

記述イメージ

[assign_schema2
    ;-------------------------------------
    ; Assignmentヘッダ部
    ;-------------------------------------
    assign_id
    assign_name
    assign_description
    assign_order_number
    source_model_name
    index_ptype_name
    index_ptype_value
    ignore_remove
    ignore_rollback
    ignore_history
    target_year_month
    source_status_ptype_name
    source_apply_status_value
    source_previous_status_ptype_name
    source_previous_status_value
    source_after_status_value
    (source_apply_filter
    )
    [models_condtion
    ]
    (source_feedback
    )
    ;-------------------------------------
    ; Assign処理プロセス
    ;-------------------------------------
    [assign_items
        (destination
           :
           :
           :
        )
        ,
        (reflection
           :
           :
           :
        )
        ,
        (update
           :
           :
           :
        )
    ]
]


Assignmentヘッダ部

全体書式 :

[assign_schema2
    assign_id宣言部(1)
    assign_name宣言部(1)
    assign_description宣言部(0|1)
    assign_order_number宣言部(1)
    source_model_name宣言部(0|1)
    index_ptype_name宣言部(0|1)
    index_ptype_value宣言部(0|1)
    ignore_remove属性(0|1)
    ignore_rollback属性(0|1)
    ignore_history属性(0|1)
    source_status_ptype_name宣言部(0|1)
    source_apply_status_value宣言部(0|1)
    source_previous_status_ptype_name宣言部(0|1)
    source_previous_status_value宣言部(0|1)
    source_after_status_value宣言部(0|1)
    source_apply_filterセクション(0|1)
    target_year_month宣言部(0|1)
    target_date宣言部(0|1)
    models_condtionセクション(0|1)
    source_feedbackセクション(0|1)
]


記述注:
    属性        あらかじめ決められた値を選択する(true/falseなど)
    宣言部      値または、値のリストを設定する
    セクション  入れ子で他の属性、宣言部、セクションを保持する可能性がある
                (値又は、値のリストが設定される場合もある)

    (1):必須
    (0|1):オプション
    (1以上):一個以上必須
    (0以上):0個以上(オプション)

記述例 :

[assign_schema2
    assign_id             100000
    assign_name           SourceモデルからTargetモデルをDesitinationする
    assign_description    SourceモデルからTargetモデルをDesitinationする
    assign_order_number   100000
    :
    :
    :
]

説明 :
Assignmentヘッダ部は、Assignmentの識別名やSourceモデルマッチング条件などのAssignment自身の情報を記述するところです。
内部の各セクションの詳細については別項で解説します。
Assignmentヘッダ部は必須です。

属性値 :
Assignmentヘッダ部の属性値は以下の通り。

assign_id宣言部

説明 :

AssignmentSchema内でユニークになるAssimentの識別名を指定します。

記述例 :

assign_id    100000


assign_name宣言部

説明 :

assignmentの処理名(人が認識しやすい任意の名前)を設定します。
アサインメントフレームワークは、例外時に例外が発生したassign_idとassign_nameをメッセージに含めるので、一意かつ理解しやすい名前をつけること。

記述例 :

assign_name    SourceモデルからTargetモデルをDesitinationする


assign_description宣言部

説明 :

assignment処理の説明を記述します。

記述例 :

assign_description    SampleSourceによるAssignment処理


assign_order_number宣言部

説明 :

実行順番をソートする番号を記述します。
特に何も記述がない場合は、assign_idを整数化した番号か、それが例外になる場合は、1001が設定されます。

記述例 :

assign_order_number    100000


source_model_name宣言部

説明 :

AssignmentのSourceモデル名を記述します。
これが指定されると、sourceの適用条件にEntityName=‘SourceModelName’が自動的につけられます。 また処理がSourceModelNameごとにインデックス化されるので、無駄な条件判定が行われなくなります。

記述例 :

source_model_name    人事基本月次


index_ptype_name宣言部

説明 :

対象のAssignmentを絞り込むためのインデックス現象型を指定します。
これが指定されると、この現象型の値を保持するものがAssignmentの対象となります。
モデル名が設定されている場合は特に必要ありません。

記述例 :

index_ptype_name    EntityName


index_ptype_value宣言部

説明 :

index_ptype_nameで指定した現象型名の有無だけではなく、特定の値を持つかどうかでAssignmentの対象とするかどうかを決定します。
モデル名が設定されている場合は特に必要ありません。

記述例 :

index_ptype_value    有効


ignore_remove属性

説明 :

Sourceモデルの適用条件にRemovedFlag=NOT_REMOVEDを含めるのかどうかを指定します。
省略時は、false(RemovedFlag=NOT_REMOVED)が条件として適用されます。

記述例 :

ignore_remove    true


ignore_rollback属性

説明 :

Sourceモデルの適用条件にASSIGN_RollbackedFlag=NOT_ROLLBACKEDを含めるのかどうかを指定します。
省略時は、false(ASSIGN_RollbackedFlag=NOT_ROLLBACKED)が条件として適用されます。

記述例 :

ignore_rollback    true


ignore_history属性

説明 :

Sourceモデルの適用条件にASSIGN_HistoryFlag=NOT_HISTORYを含めるのかどうかを指定します。
省略時は、false(ASSIGN_HistoryFlag=NOT_HISTORY)が条件として適用されます。

記述例 :

ignore_history    true


source_status_ptype_name宣言部

説明 :

Assignment全体処理に関連したSourceのステータス項目名を指定します。

記述例 :

source_status_ptype_name    算定済区分


source_apply_status_value宣言部

説明 :

Assignment全体処理に関連したSourceのステータス値を指定します。
source_status_ptype_nameとsource_apply_status_valueで指定したものは、Sourceの適用条件(source_status_ptype_name=source_apply_status_value)として追加されます。

記述例 :

source_apply_status_value    未算定


source_previous_status_ptype_name宣言部

説明 :

Assignment全体処理を行う前のSourceのステータス項目名を指定します。
1つ前の保存は、ModelのTriggerを使って実装します。

記述例 :

source_previous_status_ptype_name    前算定済区分


source_previous_status_value宣言部

説明 :

Assignment全体処理を行う前のSourceのステータス値を指定します。
source_previous_status_ptype_nameとsource_previous_status_valueで指定したものは、
Sourceの適用条件(source_previous_status_ptype_name=source_previous_status_value)として追加されます。

記述例 :

source_previous_status_value    算定済


source_after_status_value宣言部

説明 :

Assignment全体処理実行後に設定するSourceのステータス値を指定します。

記述例 :

source_after_status_value    算定済


source_apply_filterセクション

説明 :

Assignment全体処理に適用するSourceモデルに対する基本条件を指定します。
条件が複数の場合は、andまたはor条件をつなげて書くようになります。

記述例 :

(source_apply_filter
    filter    "A is not null and B is not null"
)


target_year_month宣言部

説明 :

適用基準年月です。
これが設定されていると、ASSIGN_SourceにASSIGN_TargetYearMonthが設定されていてかつ、同じ年月のものだけが対象になります。
ルール自体の履歴化で利用します。
target_dateとは、排他になります。

記述例 :

target_year_month    2013/08


target_date宣言部

説明 :

適用基準日です。
これが設定されていると、ASSIGN_SourceにASSIGN_TargetDateが設定されていてかつ、同じ日のものだけが対象になります。
ルール自体の履歴化で利用します。
target_year_monthとは、排他になります。

記述例 :

target_date    2013/08/01



models_conditionセクション

全体書式 :

[models_condition
    operator宣言部(1)
    model_name宣言部(0|1)
    exist属性(0|1)
    unique属性(0|1)
    filterセクション(1)

]


記述注:
    属性        あらかじめ決められた値を選択する(true/falseなど)
    宣言部      値または、値のリストを設定する
    セクション  入れ子で他の属性、宣言部、セクションを保持する可能性がある
                (値又は、値のリストが設定される場合もある)

    (1):必須
    (0|1):オプション
    (1以上):一個以上必須
    (0以上):0個以上(オプション)

記述例 :

[models_condition
    operator    and
    model_name  標準月額給与表月次
    exist       not_exist
    .
    .
    .
]

説明 :
特定のモデルの有無でSourceのマッチング条件を記述します。
models_conditionセクションは非必須です。

属性値 :
models_conditionセクションの属性値は以下の通り。

operator宣言部

説明 :

各リストの要素を連結する結合条件を指定します。

記述例 :

operator    and


model_name宣言部

説明 :

対象となるモデル名を指定します。
models_conditionセクション(入れ子)と排他です。

記述例 :

model_name    標準月額給与表月次


exist属性

説明 :

存在する(exist)をtrueとするのか、存在しない(not_exist)をtrueとするのかを指定します。
model_nameが指定されている場合は必須です。

記述例 :

exist    exist


unique属性

説明 :

exist=existの場合にただ一つだけ存在するをもってtrueとするのかいなかを指定します。

記述例 :

unique    true


filterセクション

説明 :

model_name宣言部で指定されたモデルに対してフィルタ条件を指定します。

記述例1 : 入れ子形式でない場合

filter    "月次基準年月=@ASSIGN_Source/月次基準年月 and 給与種別No=@ASSIGN_Iterator/給与種別No"
記述例2 : 入れ子形式の場合
[filter
    filter "月次基準年月=@ASSIGN_Source/月次基準年月
    ,
    filter "給与種別No=@ASSIGN_Iterator/給与種別No"
]



source_feedbackセクション

全体書式 :

(source_feedback
    source_feedback_sync_aet属性(0|1)
    source_feedback_commit属性(0|1)
    source_feedback_mappingセクション(0|1)
    source_feedback_force属性(0|1)
    source_feedback_ignore_remove属性(0|1)
    source_feedback_ignore_rollback属性(0|1)
    source_feedback_ignore_history属性(0|1)
    model_event_table_name宣言部(0|1)
    model_event_unsync属性(0|1)
)


記述注:
    属性        あらかじめ決められた値を選択する(true/falseなど)
    宣言部      値または、値のリストを設定する
    セクション  入れ子で他の属性、宣言部、セクションを保持する可能性がある
                (値又は、値のリストが設定される場合もある)

    (1):必須
    (0|1):オプション
    (1以上):一個以上必須
    (0以上):0個以上(オプション)

記述例 :

(source_feedback
    source_feedback_sync_aet    false
    source_feedback_commit      false
    (source_feedback_mapping
        sourceモデル状態区分    作成済
        .
        .
        .
    )
    .
    .
    .
)

説明 :
Assignment全体処理実行後にSourceモデルにフィードバックされる内容を記述します。 source_feedbackセクションは非必須です。

属性値 :
source_feedbackセクションの属性値は以下の通り。

source_feedback_sync_aet属性

説明 :

Sourceモデルにフィードバックされたあと、SourceモデルをAETフレームワークに渡すかどうか指定します。
省略時は、falseが指定されます。

記述例 :

source_feedback_sync_aet    true


source_feedback_commit属性

説明 :

Sourceモデルにフィードバックされたあとにコミットするかどうか指定します。
省略時は、trueが指定されます。

記述例 :

source_feedback_commit    false


source_feedback_mappingセクション

説明 :

Sourceモデルにフィードバックする内容を指定します。

記述例 :

(source_feedback_mapping
    算定済区分    算定済
)


source_feedback_force属性

説明 :

ASSIGNの結果がなくてもフィードバックするかどうか指定します。
指定しない場合はtrueが指定されたものとしてます。

記述例 :

source_feedback_force    false


source_feedback_ignore_remove属性

説明 :

ASSIGN_SourceがRemovedFlag=REMOVEDでもフィードバックするかどうか指定します。
指定しない場合はtrueが指定されたものとしてます。

記述例 :

source_feedback_ignore_remove    false


source_feedback_ignore_rollback属性

説明 :

ASSIGN_SourceがASSIGN_RollbackedFlag=ROLLBACKEDでもフィードバックするかどうか指定します。
指定しない場合はfalseが指定されたものとしてます。

記述例 :

source_feedback_ignore_rollback    true


source_feedback_ignore_history属性

説明 :

ASSIGN_SourceがASSIGN_HistoryFlag=HISTORYでもフィードバックするかどうか指定します。
指定しない場合はfalseが指定されたものとしてます。

記述例 :

source_feedback_ignore_rollback    true


model_event_table_name宣言部

説明 :

ASSIGN_Sourceに対してフィードバック後、ModelEventの呼び出しを行う場合はそのtable_nameを指定します。

記述例 :

source_feedback_ignore_rollback    M_人事基本マスタ


model_event_unsync属性

説明 :

ASSIGN_Sourceに対してフィードバック後、ModelEventの呼び出しを行う場合にそれを同期、非同期のいずれで呼び出すかを指定します。
指定しない場合はUNSYNCが指定されたものとしてます。

記述例 :

model_event_unsync    SYNC



Assign処理プロセス

全体書式 :

[assign_items
    (destinationセクション(0以上)
    )
    ,
    (updateセクション(0以上)
    )
    ,
    (reflectionセクション(0以上)
    )
]


記述注:
    属性        あらかじめ決められた値を選択する(true/falseなど)
    宣言部      値または、値のリストを設定する
    セクション  入れ子で他の属性、宣言部、セクションを保持する可能性がある
                (値又は、値のリストが設定される場合もある)

    (1):必須
    (0|1):オプション
    (1以上):一個以上必須
    (0以上):0個以上(オプション)

記述例 :

[assign_items
    (destination
    )
    ,
    .
    .
    .
]

説明 :
Assign処理プロセスは、SourceモデルからTargetモデルを生成するなどのAssignmentの処理内容を記述するところです。
内部の各セクションの詳細については別項で解説します。

属性値 :
Assign処理プロセスの属性値は以下の通り。

destinationセクション

説明 :

SourceモデルからTargetモデルを生成する処理を記述します。

記述例 :

(destination
    target_model_name           ASSCOMSampleDest
    source_status_ptype_name    ASSCOMSampleSourceStatusFlag
    source_apply_status_value   SELECTED
    source_previous_status_ptype_name    ASSCOMSampleSourcePreviousStatusFlag
    source_previous_status_value         NOT_SELECTED
    sync_aet    false
    exist_destination_skip    true
    (source_feedback
        source_feedback_proxy    true
    )
    ignore_history    true
    ignore_rollback   true
    source_proxy      true
    [assign
        (mapping
            ASSCOMSampleName            @ASSIGN_Source/ASSCOMSampleName
            ASSCOMSampleBirthday        @ASSIGN_Source/ASSCOMSampleBirthday
            ASSCOMSampleAge             @ASSIGN_Source/ASSCOMSampleAge
            ASSCOMSampleSexFlag         @ASSIGN_Source/ASSCOMSampleSexFlag
            ASSCOMSampleTargetYear      @ASSIGN_Source/ASSCOMSampleTargetYear
        )
    ]
    (cascade_source_cancel
        cascade_cancel_to_destination   rollback
    )
    (cascade_destination_to_source
        cascade_destination_rollback    true
        cascade_destination_history     true
        cascade_destination_remove      true
    )
    cascade_remove    true
)

Destinationセクションの詳細はこちらを参照してください。


updateセクション

説明 :

Sourceモデルを更新する処理を記述します。

記述例 :

(update
    target_model_name    CalculationMeta
    source_status_ptype_name    CalculatedFlag
    source_apply_status_value   NOT_CALCED
    sync_aet    true
    ignore_history    true
    ignore_rollback   true
    (source_proxy
    )
    (source_update_apply_filter
        filter "CalculationTypeNo is not null and CalculationTypeNo/CalculationIteratorPortfolioFlag=$CalculationIteratorPortfolioFlag:NOT_PORTFOLIO"
    )
    [assign
        assign_process_name    CaclulationFramework_SourceUpdate
        (prepare_session
            ASSIGN_CalcTypeNo    @ASSIGN_Source/CalculationTypeNo
            ASSIGN_CalcSource    @ASSIGN_Source
        )		
        (iterator
            (model
                plugin    pexa.share.service.assign.plugin.AssignModelContainerItemForCalc
                no_result_or_multiple    FATAL
                no_result_error_code    -300101
                no_result_error_message	    "CalculationBaseまたは、CalculationRateが存在しません。 CalculationTypeCode= @ASSIGN_Source/CalculationTypeCode"
            )
        )
        (iterator_session
            ASSIGN_CalculationResultAmount    "&AsDecimal:{@ASSIGN_Iterator/CalculationResultAmount}{@ASSIGN_CalcTypeNo/CalculationResultScale}}"
            ASSIGN_CalculationResultBaseAmont  @ASSIGN_Iterator/CalculationResultBaseAmont
            ASSIGN_CalculationRate             @ASSIGN_Iterator/CalculationResultRate
        )
        (mapping
            PEXA_Mapping            @ASSIGN_Source/CalculationTypeNo/CalculationResultCommonMappingNo
            PEXA_Mapping            @ASSIGN_Source/CalculationTypeNo/CalculationSourceFeedbackCommonMappingNo
            CalculatedFlag          CALCED
            CalculatedDatetime      &Now
            CalculatedOperatorNo    @ASSIGN_Role/OperatorNo
            CalculationBaseAmount   @ASSIGN_Iterator/CalculationResultBaseAmont
            CalculationRate         @ASSIGN_Iterator/CalculationResultRate
            CalculationResultAmount @ASSIGN_Iterator/CalculationResultAmount
            CalculationBaseAmount   @ASSIGN_CalculationResultBaseAmont
            CalculationRate         @ASSIGN_CalculationRate
            CalculationResultAmount "[@ASSIGN_CalcTypeNo/CalculationResultSignFlag=PLUS]@ASSIGN_CalculationResultAmount|&Neg:{@ASSIGN_CalculationResultAmount}"		
        )
    ]
)

Updateセクションの詳細はこちらを参照してください。


reflectionセクション

説明 :

SourceモデルからTargetモデルに反映する処理を記述します。

記述例 :

(reflection
    target_model_name           ASSCOMSampleTarget
    source_status_ptype_name    ASSCOMDestStatusFlag
    source_apply_status_value   APPLIED
    source_previous_status_ptype_name   ASSCOMPreviousDestStatusFlag
    source_previous_status_value        CONFIRMED
    sync_aet    false
    ignore_reflection_history    true
    ignore_reflection_rollback   true
    source_feedback_proxy    true
    relection_is_changed     true
    (save
        ASSCOMPreviousSampleTargetName       ASSCOMSampleTargetName
        ASSCOMPreviousSampleTargetBirthday   ASSCOMSampleTargetBirthday
        ASSCOMPreviousSampleTargetAge        ASSCOMSampleTargetAge
        ASSCOMPreviousSampleTargetSexFlag    ASSCOMSampleTargetSexFlag
        ASSCOMSampleTargetPreviousScore      ASSCOMSampleScore
    )
    (mapping
        ASSCOMSampleTargetName          @ASSIGN_Source/ASSCOMSampleName
        ASSCOMSampleTargetBirthday      @ASSIGN_Source/ASSCOMSampleBirthday
        ASSCOMSampleTargetAge           @ASSIGN_Source/ASSCOMSampleAge
        ASSCOMSampleTargetSexFlag       @ASSIGN_Source/ASSCOMSampleSexFlag
        ASSCOMSampleScore               @ASSIGN_Source/ASSCOMSampleScore				
    )
    (cancel_reflection
        force_cancel    false
        previous_status_as_cancel    true
        remove_as_cancel    true
        history_as_cancel   true
        rollback_as_cancel  true
        save_value_unmatch  fatal
        save_value_unmatch_error_code    901
        save_value_unmatch_error_message    "Reflection unmatch"
        cancel_source_proxy_feedback    true
        (unique
        )
        (empty
        )				
    )
)

Reflectionセクションの詳細はこちらを参照してください。



AssignSchema定義全体のサンプル

[assign_schema2
    assign_id            100000
    assign_name          SampleSourceによるAssignment処理
    assign_description   SampleSourceによるAssignment処理
    assign_order_number  100000
    source_model_name    SampleSource
    index_ptype_name     index_ptype_flag
    index_ptype_value    true
    ignore_remove        false
    ignore_rollback      true
    ignore_history       true
    target_year_month    2013/08
    ;target_date          2013/08/01
    source_status_ptype_name             SamapleSourceStatusFlag
    source_apply_status_value            NOT_START
    source_previous_status_ptype_name    SamapleSourcePreviousStatusFlag
    source_previous_status_value         NOT_START
    source_after_status_value            START
    (source_apply_filter
        filter "ParentSampleSourceNo is not null"
    )
    [models_condtion
        model_name    SampleCondition
        operator      and
        exist         exist
        unique        true
        filter "SampleConditionYearMonth = @ASSIGN_Source/SampleSourceYearMonth and SampleConditionFlag = 実施済"
    ]
    (source_feedback
        source_feedback_commit           true
        source_feedback_sync_aet         false
        source_feedback_force            false
        source_feedback_ignore_remove    false
        source_feedback_ignore_rollback  false
        source_feedback_ignore_history   false
        (source_feedback_mapping
            LastSampleSourceHistoryNo    @ASSIGN_Assign/SampleSourceHistoryNo
        )
        model_event_table_name    SampleSourceDestinationEvent
        model_event_unsync        true
    )
    [assign_items
        (destination
            assign_item_name           SampleSourceからSampleDest導出処理
            assign_item_description    SampleSourceからSampleDest導出処理
            assign_item_order_number   100000
            target_model_name          SampleDest
            source_status_ptype_name             SampleSourceDestStatusFlag
            source_apply_status_value            NOT_DESTINATION
            source_previous_status_ptype_name    SampleSourcePreviousDestStatusFlag
            source_previous_status_value         NOT_DESTINATION
            source_after_status_value            DESTINATION
            reentrant    true
            (reentrant_filter
                filter "SamapleDestGenerationFlag = GENERATION"
            )
            sync_aet    true
            commit      true
            model_event_table_name    SampleSourceDestinationEvent
            model_event_unsync        false
            result_session            SampleSessionKey
            result_session_append     true
            (source_dest_apply_filter
                filter    "SampleSourceTargetFlag = TARGET"
            )
            ignore_remove        false
            ignore_rollback      true
            ignore_history       true
            ignore_destination_remove    false
            ignore_destination_rollback   false
            ignore_destination_history    false
            (source_feedback
                (source_feedback_proxy
                    source_feedback_proxy_ptype_name    SorceSampleDestinationNo
                )
                (source_feedback_mapping
                )
                source_feedback_sync_aet    true
                source_feedback_commit      false
            )
            source_proxy    true
            exist_destination_skip    true
            (exist_destination_skip_filter
            	filter "SampleSourceNo = @ASSIGN_Source/SampleSourceNo"
            )
            (destination_init_mapping
                SampleDestPtypeA    @ASSIGN_Source/SampleSourcePtypeA
            )
            [assign
                assign_process_id    DES_10000
                assign_process_name  SampleSourceからSampleDest導出
                (iterator
                    (model
                        model_name         SampleIterator
                        ignore_remove      false
                        ignore_history     true
                        ignore_rokkback    true
                        (search
                            filter "SampleIteratorStatusFlag = 有効"
                            sort    SampleIteratorCode
                        )
                        no_result_or_multiple    SKIP
                        (iterator_filter
                            filter "SampleIteratorSourceNo = @ASSIGN_Source/SampleSourceNo"
                        )
                        (session_filter
                            [models_condition
                                model_name    IteratorCondition
                                operator      and
                                exist         not_exist
                                unique        not_unique
                                filter "IteratorConditionYearMonth = @ASSIGN_Source/SampleSourceYearMonth and IteratorConditionFlag = 実施済"
                            ]
                        )
                        (model_feedback
                            IteratorSampleYearMonth    @ASSIGN_Source/SampleSourceYearMonth
                            model_feedback_sync_aet    false
                            model_eventtable_name      SampleIterator
                            model_event_unsync         true
                        )
                    )
                )
                (prepare_session
                    ASSIGN_TEMP_通し番号    &AsInteger:{0}
                )
                (iterator_session
                    ASSIGN_TEMP_通し番号    &Inc:{@ASSIGN_TEMP_通し番号}
                )
                (mapping
                    SampleDestPtypeB    @ASSIGN_Iterator/SampleIteratorPtypeB
                    SampleDestPtypeC    @ASSIGN_TEMP_通し番号
                )
            ]
            (cascade_source_cancel
                cascade_cancel_to_destination    rollback
                ;source_cancel_apply_filter
                (soouece_cancel_feedback_mapping
                )
            )
            (cascade_rollback
                ignore_source_status    false
                ignore_done_flag        false
                cascade_source_apply_filter
                destination_search_filter
            )
            (cascade_remove
                ignore_history          true
                ignore_rollback         true
                ignore_source_status    false
                ignore_done_flag        false
                cascade_source_apply_filter
                destination_search_filter
            )
            (cascade_history
                ignore_source_status    false
                ignore_done_flag        false
                cascade_source_apply_filter
                destination_search_filter
            )
            (history_and_new
                ignore_source_status    false
                cascade_source_apply_filter
                destination_search_filter
            )
            (cascade_destination_to_source
                source_status_operator_ptype_name    SampleSourceCascadeOperator
                source_status_timestamp_ptype_name   SampleSourceCascadeTime
                source_sync_aet                      true
                reentrant                            true
                (reentrant_filte
                    filter ""
                )
                cascade_destination_rollback         true
                cascade_destination_history          true
                cascade_destination_remove           true
                index_ptype_name
                index_ptype_value
            )
        )
        ,
        (reflection
            assign_item_name           SampleSourceからのReflection処理
            assign_item_description    SampleSourceからのReflection処理
            assign_item_order_number   200000
            target_model_name          SampleReflection
            source_status_ptype_name             SampleSourceReflectStatusFlag
            source_apply_status_value            NOT_REFLECTION
            source_previous_status_ptype_name    SampleSourcePreviousReflectStatusFlag
            source_previous_status_value         NOT_REFLECTION
            source_after_status_value            REFLECTION
            (source_reflect_apply_filter
                filter    "SampleSourceTargetFlag = TARGET"
            )
            commit      true
            sync_aet    true
            reentrant   true
            (reentrant_filter
                filter "SampleReflectionStatusFlag = REFLECTION"
            )
            ignore_reflection_remove    false
            ignore_reflection_history   true
            ignore_reflection_rollback  true
            model_event_table_name    SampleSourceReflectionEvent
            model_event_unsync        true
            reflection_target_unique
            reflection_target_empty
            source_proxy             true
            source_feedback_proxy    false
            (source_feedback
            	source_feedback_commit    false
            	source_feedback_sync_aet  false
            	(source_feedback_mapping
            	   SampleSourceTargetFlag    NOT_TARGET
            	)
            )
            (save
                SampleSourcePreviousTargetName    SampleSourceTargetName
            )
            (reflection_target_search_filter
                filter "SampleReflectionTargetFlag = TARGET"
            )
            (iterator_session
            )
            result_session
            result_session_append
            (reflection_common
                reflection_apply_date
                reflection_apply_datetime
                reflection_check_value
                reflection_unmatch_fatal
                reflection_unmatch_error_code
                reflection_unmatch_error_message
            )
            (session_filter
                [models_condition
                    model_name
                    operator
                    exist
                    unique
                    filter
                ]
            )
            (mapping
            )
            (reflection_target_apply_filter
                filter
            )
            reflection_is_changed    true
            (prepare_session
            )
            (before_condition
            )
            (after_condition
            )
            (cancel_reflection
                force_cancel    false
                previous_status_as_cancel    true
                remove_as_cancel    true
                history_as_cancel    true
                rollback_as_cancel    true
                save_value_unmatch    fatal
                save_value_unmatch_error_code
                save_value_unmatch_error_message
                cancel_source_proxy_feedback
                (unique
                )
                (empty
                )
            )
        )
        ,
        (update
            source_status_ptype_name
            source_apply_status_value
            source_previous_status_ptype_name
            source_previous_status_value
            source_update_apply_filter
            commit
            sync_aet
            reentrant
            (reentrant_filter
            )
            (prepare_session
            )
            (iterator
            )
            (mapping
            )
            (before_condition
            )
            (after_condition
            )
            refresh_before_reentrant
            model_event_table_name
            model_event_unsync
            result_session
            result_session_append
        )
    ]
]


更新情報

  • 最終更新者 : $Author: $
  • 最終更新日時 : $Date:: $
  • バージョン : $Revision: $



Copyright © 2006, Atrris Corporation