イベントで一時停止するユースケース
将来のある時点で新しいブックをリリースするパブリッシャの場合、および企業が公開する前にゴールドの顧客にそのブックをオーダーする機会を提供する必要があるとします。 ユーザーは
次のルールを作成します:
-
顧客がGoldの場合、オーケストレーション・プロセスを一時停止します。
-
顧客がゴールドでない場合は、一時停止タスクをスキップします。
設定の概要
-
オーケストレーション・プロセスを作成します。
-
オーケストレーション・プロセス・ステップを追加します。
-
最初のルールのIf文を作成します。
-
最初のルールのThen文を作成します。
-
2番目のルールを作成します。
-
オーケストレーション・プロセスをデプロイします。 詳細は、「オーケストレーション・プロセスのデプロイ」を参照してください。
このトピックではサンプル値を使用します。 ビジネス要件によっては、別の値が必要になる場合があります。
簡潔にするために、このトピックに出力される画面では、ルール・ディクショナリの結果とヘッダーは割り当てられませんが、その結果を割り当てる必要があります。 詳細は、「オーケストレーション・プロセスを一時停止するためのガイドライン」の「結果の割当」サブトピックを参照してください。
詳細はこちら。
-
一時停止タスクについて、このトピックで設定したプロパティについて学習します。 詳細は、「オーケストレーション・プロセスの一時停止の概要」を参照してください。
-
これらのビジネス・ルールについてさらに学習します。 詳細は、「オーダー管理でのビジネス・ルールの使用の概要」を参照してください。
オーケストレーション・プロセスの作成
-
「設定および保守」作業領域に移動してから、タスクに移動します。
-
オファリング: オーダー管理
-
機能領域: オーダー
-
タスク: オーケストレーション・プロセス定義の管理
-
-
「オーケストレーション・プロセス定義の管理」ページで、「処理」>「作成」をクリックします。
-
「オーケストレーション・プロセス定義の作成」ページで値を設定し、「保存」をクリックします。
属性
値
プロセス名
Pause_for_Gold
プロセス表示名
Pause_for_Gold
プロセス区分
出荷オーダー区分
セット
共通セット
オーケストレーション・プロセス・ステップの追加
これらのステップを追加します。
演習
-
「ステップ定義」タブで、「処理」>「行の追加」をクリックします。
-
値を設定し、「保存」をクリックします。
属性
値
ステップ名
商品のスケジュール
ステップ・タイプ
サービス
タスク
スケジュール
サービス
スケジューリングの作成
-
さらにステップを追加します。 ステップ1と2を繰り返します。 次の値を使用します。
-
予約の作成
-
出荷の作成
-
出荷通知の待機
-
請求書の作成
-
請求書の待機
ノート
-
すべてのステップのステップ・タイプ属性をサービスに設定します。
-
ステップの動作を反映するように他の属性を設定します。
たとえば、予約の作成ステップで、次の値を設定します。
属性
値
ステップ・タイプ
サービス
タスク
予約
サービス
在庫予約の作成
-
待機ステップごとに終了基準属性を設定していることを確認してください。 たとえば、出荷通知の待機ステップの終了基準を出荷済に設定します。
-
-
一時停止ステップを追加します。 予約の作成ステップをクリックし、「行の追加」をクリックして新しい行の値を設定し、「保存」をクリックします。
属性
値
ステップ名
一時停止
ステップ・タイプ
サービス
タスク
一時停止
サービス
一時停止プロセス
最初のルールのif文の作成
開始後条件を作成します。 この条件によって、顧客がゴールドかどうかが決まります。
このIf文を作成します。
説明
-
DOOFLineは、DooSeededOrchestrationRulesディクショナリの関数です。
-
DOOは、オーダー・オーケストレーションの以前の名前である、分散オーダー・オーケストレーションの略称です。
-
FLineは、履行明細の略称です。
-
demandClassCodeは、履行明細属性です。 この属性には、Gold、Silver、Bronzeなどの顧客区分が格納されます。
-
isn't
は、demandClassCodeにGoldが含まれているかどうかを決定します。 -
詳細は、「オーケストレーション・プロセスを一時停止するためのガイドライン」を参照してください。
最初のルールのIf文を作成します。
-
ルールを作成します。
-
一時停止ステップの一時停止ルール列で、「ルールのクリック」をクリックします。
-
「Start After条件」ダイアログで、「ルールの追加」をクリックし、
Rule 1
をPause for Gold Customers
に置き換えます。 -
「プロパティ」をクリックし、詳細モードにチェック・マークを追加します。
-
-
確認するディクショナリとファクトを指定します。
-
IF領域のIs Aの左側にあるウィンドウで、
header
と入力します。 -
ウィンドウをIs Aの右側をDooSeededOrchestrationRules.DOOHeaderに設定します。
-
「パターンの追加」をクリックします。
-
Is Aの左側のウィンドウで、
FLine
と入力します。 -
ウィンドウをIs Aの右側をDooSeededOrchestrationRules.DOOFLineに設定します。
-
-
履行明細のみを評価するようにしてください。
-
FLineで、「テストの追加」をクリックします。
-
「左の値」をクリックします。
-
条件ブラウザで、「ヘッダー」を展開し、ChildFLinesをクリックし、OKをクリックします。
-
Isを「次を含む」に変更します。
-
「右値」をクリックします。
-
条件ブラウザで、FLineをクリックし、OKをクリックします。
-
-
テストしようとしている属性が空でないことを確認してください。
-
追加したテストの右端にある「下向き矢印」をクリックし、「簡易テスト」をクリックします。
-
表示された新しい行で、「左の値」をクリックします。
-
条件ブラウザで、FLineを展開します。
FLineの下の各値が履行明細属性を参照していることに注意してください。
-
demandClassCodeをクリックし、OKをクリック
-
IsをIsn'tに変更します。
-
「右値」をクリックします。
-
条件ブラウザで、nullをクリックし、OKをクリックします。
-
-
顧客がゴールドかどうかを判断します。
-
追加したテストの右端にある「下向き矢印」をクリックし、「簡易テスト」をクリックします。
-
表示された新しい行で、「左の値」をクリックします。
-
条件ブラウザで、FLineを展開します。
-
demandClassCodeをクリックし、OKをクリックします。
-
右の値ウィンドウで、
"Gold"
と入力します。引用符( " ")を含める必要があります。
-
最初のルールのThen文の作成
このThen文を作成します。
簡潔にするために、この画面印刷にはイベントの値全体が含まれていません。
最初のルールのThen文を作成します。
-
Then領域で、「処理の追加」>「割当」をクリックします。
-
「ターゲットの選択」をクリックし、header.SacResultをクリックします。
-
等号( =)の右側のウィンドウで、この値を入力します。
( eventName:"Gold Preorders", reevaluateFlag:"N",sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT )
説明
-
eventNameは、一時停止タスクのステータスを追跡するために使用できる変数です。 オーダー管理作業領域では、ユーザーがオーケストレーション・プロセスの管理ページからアクセスできるオーケストレーション・プロセスのオーケストレーション・プラン・タブのガント・チャートなど、ステータス詳細を表示する場所に入力したテキストが使用されます。 この例では、イベントGold Preordersを使用します。
-
reevaluateFlag:"N"
は、このルールを再評価しないことを指定します。 -
sac
は、「条件の後に開始」の略称です。 -
sacType
は、開始後条件に使用するディクショナリ、ルール・セットおよびイベントを指定します。 -
DooSeededOrchestrationRules
は、ビジネス・ルールで使用できる事前定義済ルールを含むディクショナリです。 -
DooSeededOrchestrationRulesのルール・セットです。 これには、開始後条件の結果の処理方法を指定するために使用できるイベントおよび変数が含まれます。
-
EVENT
は、SacResultのイベントです。 ビジネス・イベントを使用することを指定します。 -
一時停止タイプがEVENTの場合、オーケストレーション・プロセスはイベントが発生するまで一時停止します。
-
オーケストレーション・プロセスの属性はこのイベントを参照しますが、webサービスでも使用できます。 他のパラメータを使用して一時停止タスクを解放することもできます。 このイベントは、Oracle Middlewareのイベント・フレームワークが使用するイベントとは関係ありません。
-
二重引用符( " ")を含める必要があります。
-
-
「保存」をクリックします。
2番目のルールの作成
このルールを作成します。
演習
-
一時停止ステップの一時停止ルール列で、「ルールのクリック」をクリックします。
-
「ルール・セット」の一時停止ダイアログで、Gold Customersの一時停止の左側にあるチェック・ボックスにチェック・マークを追加します。
-
「切り取り/貼り付け」をクリックします。
-
ダイアログの下部までスクロールし、貼り付けによって追加されたルールを確認します。
-
この新しいルールにこれらの変更を加えます。
この値を置換
この値
ゴールド顧客のために一時停止
ゴールドではない顧客のスキップ
FLine.demandClassCodeは「ゴールド」です
FLine.demandClassCode isn't "Gold"
header.sacResult = ( eventName:"Gold Preorders", reevaluateFlag:"N",sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT )
header.sacResult = ( eventName:"Gold Preorders", ( reevaluateFlag:"N", sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_IMMEDIATE )
条件IMMEDIATEの後に開始すると一時停止タスクが終了し、オーケストレーション・プロセスが次のステップに進むことができます。
-
「保存」をクリックします。
-
「オーケストレーション・プロセス定義の編集」ページで、「保存」をクリックします。