依存関係の一時停止のユースケース
このユース・ケースでは、オーケストレーション・プロセスを調整して、出荷日が異なる場合でも、販売オーダーに含まれるすべての履行明細をオーダー管理が請求するようにします。
オーケストレーション・プロセスでは、同じ一連のステップを使用して各履行明細を処理しますが、これらの明細は同期されない場合があります。
学区が600冊の新規履歴帳の販売オーダーを発行し、オーダー管理がすべての帳簿を出荷した後にのみ販売オーダーの請求書を受け取ることを要求するとします。
オーケストレーション・プロセスで異なる倉庫から台帳を取得する必要があるとします。
-
履行明細1はシアトルの倉庫から80冊の本を取得
-
履行ライン2では、デンバー倉庫から400冊の本を取得
-
履行明細3はシカゴの倉庫から120冊の本を取得
履行明細を処理し、履行がすべての明細を出荷するまで一時停止し、処理を再開して明細を請求に送信するオーケストレーション・プロセスを設定します。
ステップの概要
-
オーケストレーション・プロセスを設定します。
-
1番目のルールを作成します。
-
2番目のルールのIf文を作成します。
-
2番目のルールのThen文を作成します。
簡潔にするために、このトピックに出力される画面では、ルール・ディクショナリの結果とヘッダーは割り当てられませんが、その結果を割り当てる必要があります。 詳細は、「オーケストレーション・プロセスを一時停止するためのガイドライン」の「結果の割当」サブトピックを参照してください。
このトピックではサンプル値を使用します。 ビジネス要件によっては、別の値が必要になる場合があります。
バックグラウンドの詳細:
-
一時停止タスクに設定するプロパティについては、「オーケストレーション・プロセスの一時停止の概要」を参照してください。
-
ビジネス・ルールについては、「オーダー管理でのビジネス・ルールの使用の概要」を参照してください。
オーケストレーション・プロセスの設定
この設定を行う方法を説明する例を表示します。 詳細は、「イベントが発生するまでオーケストレーション・プロセスを一時停止」を参照してください。
-
新しいオーケストレーション・プロセスを作成し、ヘッダーを設定します。
-
オーケストレーション・プロセス・ステップを追加します。
-
スケジュール
-
予約
-
出荷
-
出荷の待機
-
一時停止
-
請求書
-
請求の待機
-
最初のルールの作成
ビジネス・ルールを作成します。
ノート
コード |
説明 |
---|---|
|
ビジネス・ルールで使用できる事前定義済ルールを含むディクショナリ。 |
|
販売オーダー・ヘッダーに関する詳細を格納するDooSeededOrchestrationRulesディクショナリ内のオブジェクト。 |
|
DooSeededOrchestrationRulesディクショナリに新しいオブジェクトとしてDOOHeaderを割り当てます。 この割当てによって、ルール全体でオブジェクトが使用可能になります。 |
|
DooSeededOrchestrationRulesディクショナリ内のルール・セット。 これには、開始後条件の結果の処理方法を指定するために使用できるイベントおよび変数が含まれます。 |
|
SacResultに設定できる値。 |
|
SacResultの値をSACに設定します。 |
|
SacResultのプロパティ。sacTypeには、オーケストレーション・プロセスを一時停止するか解放するかを決定するためにルールで使用される値が格納されます。 |
|
sacTypeの値。 sacTypeにIMMEDIATEが含まれている場合、ルールは一時停止タスクをただちに解放します。 |
|
sacTypeをSAC_TYPE_IMMEDIATEに設定します。 |
1番目のルールを作成します。
-
一時停止ステップの一時停止ルール列で、「ルールの追加」をクリックします。
「条件の後に開始」ダイアログで、「ルールの追加」→「プロパティ」をクリックし、値を設定します。
属性
値
名前
依存休止のデフォルト・ルール
説明
依存関係が解決されるまでオーケストレーション・プロセスを一時停止するデフォルト・ルール。
Priority
最高
拡張モード
チェック・マークが含まれます。
-
Ifの下のフィールドに、
Header
などの別名を入力します。 -
Is Aの右側のフィールドで、DooSeededOrchestrationRules.DOOHeaderを選択します。
-
右の値の横にある「下向き矢印」をクリックし、「テストの削除」をクリックします。
テストを削除すると、ルールは常にThen領域に含まれるアクションを適用します。
-
Then領域で「追加処理」をクリックし、「新規割当て」をクリックします。
-
「ターゲットの選択」をクリックし、DooSeededOrchestrationRules.SacResultをクリックします。
-
等号(=)の左側にあるフィールドに、
SAC
と入力します。 -
等号(=)の右側にあるフィールドで、「式値」をクリックします。
-
「条件ブラウザ」ダイアログで、DooSeededOrchestrationRulesを展開し、SacResultを展開し、「新規」をクリックして、OKをクリックします。
-
「処理の追加」>「割当」をクリックします。
-
「ターゲットの選択」をクリックし、Header.sacResultをクリックします。
-
等号(=)の右側にあるフィールドに、
SAC
と入力します。 -
「処理の追加」>「割当」をクリックします。
-
「ターゲットの選択」をクリックし、Header.sacResult.sacTypeをクリックします。
-
等号(=)の右側にあるフィールドで、「式値」をクリックします。
-
「条件ブラウザ」ダイアログで、DooSeededOrchestrationRulesを展開し、SacResultを展開し、SAC_TYPE_IMMEDIATEをクリックして、OKをクリックします。
-
「検証」をクリックし、「保存」をクリックします。
2番目のルールのIf文の作成
このルールを作成します。
すべての履行明細で実績出荷日がNULLでない場合は、一時停止タスクをリリースします。
最初に、If文を作成します。
説明
コード |
説明 |
---|---|
|
履行システムが1つの明細を除くすべての明細を出荷した場合でも、すべての出荷済明細を一時停止します。 |
|
複数のオーケストレーション・プロセスが販売オーダーの履行明細を処理する場合に、複数のオーケストレーション・プロセス間で調整します。 |
|
履行ラインが出荷されていないかどうかを確認します。 オーケストレーションの開始時にactualShipDateがnullです。 オーケストレーションは、品目を出荷するときにactualShipDateを値に設定します。 |
2番目のルールのIf文を作成します。
-
一時停止ステップの一時停止ルール列で、「ルールの追加」をクリックします。
「Start After条件」ダイアログで、作成したルールを縮小します。
-
「ルールの追加>プロパティ」をクリックし、値を設定します。
属性
値
名前
一時停止依存関係のルール
説明
依存関係が解決されるまでオーケストレーション・プロセスを一時停止するルール。
Priority
中
拡張モード
チェック・マークが含まれます。
ツリー・モード
チェック・マークが含まれます。
-
ルートをDooSeededOrchestrationRules.DOOHeaderに設定します。
-
If領域のIs Aの左側にあるフィールドで、デフォルト値を
OrderHeader
などの別名で置き換えます。 -
右の値の右側にある「下向き矢印」をクリックし、「テストの削除」をクリックします。
-
If文の右側にある「パターンの追加」をクリックします。
-
空のフィールドの右側にある「丸カッコで囲まれたパターン」をクリックし、「周辺」をクリックします。
-
ANDの下の値リストで、
At least one
をクリックします。 -
左側のフィールドの
At least one
に、FLine
と入力します。 -
Is Aの右側のフィールドで、OrderHeader/allFLinesIntheOrderを選択します。
-
テストの追加の横にある「下向き矢印」をクリックし、「簡易テスト」をクリックします。
-
「左の値」をクリックします。
-
条件ブラウザで、FLineを展開し、actualShipDateをクリックし、OKをクリックします。
-
「右値」をクリックします。
-
条件ブラウザで、nullをクリックし、OKをクリックします。
2番目のルールのThen文の作成
Then文を作成します。
これらのプロパティの詳細は、「オーケストレーション・プロセスの一時停止の概要」を参照してください。
2番目のルールのThen文を作成します。
-
Then領域で、Add Actionの横にある「下向き矢印」をクリックし、「割当」をクリックします。
-
「ターゲットの選択」をクリックし、OrderHeader.sacResult.eventNameをクリックします。
-
「式値」をクリックします。
-
条件ブラウザで、DooSeededOrchestrationRulesを展開し、SacResultを展開し、SAC_SYSTEM_EVENT_IPC_PAUSEを選択して、OKをクリックします。
このステップでは、フローがすべての履行明細を出荷してからリリースするまで履行明細を評価するルールを設定します。
Interprocess
通信(IPC
)は、イベントに従って一時停止を実装します。 -
アクションの追加の横にある「下向き矢印」をクリックし、「割当」をクリックします。
-
「ターゲットの選択」をクリックし、OrderHeader.sacResult.reevaluateFlagをクリックします。
-
等号(=)の右側にあるフィールドに、
"Y"
と入力します。二重引用符を含める必要があります。
-
アクションの追加の横にある「下向き矢印」をクリックし、「割当」をクリックします。
-
「ターゲットの選択」をクリックし、OrderHeader.sacResult.sacTypeをクリックします。
-
同じ行で「式値」をクリックします。
-
条件ブラウザで、DooSeededOrchestrationRulesを展開し、SacResultを展開し、SAC_TYPE_EVENTをクリックして、OKをクリックします。
-
「検証」をクリックし、「保存」をクリックします。