機械翻訳について

変更する販売オーダーを補正

履行タスクによって販売オーダーが変更されたときに修正を行う報酬パターンを作成します。

報酬パターンは、オーケストレーション・プロセス・ステップで作成するルールです。 オーダーの変更時に行う調整を指定します。 報酬パターンの例として、元に戻す、やり直し、更新、取消およびなしがあります。

たとえば、出荷の作成ステップの報酬パターンがやり直しで、ステップが取消サービスと作成サービスをコールするとします。 オーダー管理は、ステップの新規倉庫を含む変更オーダーを受け取ると、取消および作成を再実行します。

コンプライアンス・チェックが終了するまでオーケストレーション・プロセスを一時停止する報酬パターンが必要であるとします。

  • コンプライアンス詳細が変更された場合は、コンプライアンスが完了するまでオーケストレーション・プロセスを一時停止します。

作成するルールを次に示します。

If文の作成

説明

コード

説明

DooSeededOrchestrationRules

オーケストレーション・プロセスの事前定義済ビジネス・ルールのセットを含むディクショナリ。 これを使用して、オブジェクトとその値を格納します。

DOOは、オーダー管理が以前のリリースでオーダー・オーケストレーションに使用した用語である分散オーダー・オーケストレーションを意味します。

DOOHeader

DooSeededOrchestrationRules内のオブジェクト。 これには、販売オーダー・ヘッダーの属性とその値が含まれます。

headerEFF

オーダー・ヘッダーの拡張可能フレックスフィールド。 この例では、コンプライアンス・チェックの詳細を格納する拡張可能フレックスフィールドを定義したとします。

詳細は、「オーダー管理での拡張可能フレックスフィールドの設定の概要」を参照してください。

DooSeededOrchestrationRules.FlexContexts

ディクショナリにFlexContextsを設定します。

FlexContext

拡張可能フレックスフィールドの値を保存するオブジェクト。

ComplianceDetails

コンプライアンス詳細を格納するオブジェクト。

ComplianceInfo

コンプライアンス情報を格納するオブジェクト。

mRuleDecision.CompensationPattern

CompensationPatternは、オブジェクトmRuleDecisionのプロパティです。 CompensationPatternには、このルールが条件の終了に使用する値である文字列UPDATEが格納されます。

次に、ステートメントの仕組みについて説明します。

コード

説明

header is a DooSeededOrchestrationRules.DOOHeader

headerを、ディクショナリDooSeededOrchestrationRulesのオブジェクトDOOHeaderからの値を格納する一時変数として宣言します。

headerを宣言した後にのみ、次のAND文に進みます。

headerEFF is a DooSeededOrchestrationRules.FlexContext

headerEFFを、DooSeededOrchestrationRulesのオブジェクトFlexContextからの値を格納する一時変数として宣言します。

headerEFFを宣言した後にのみ、次のAND文に進みます。

headerEFF isn't null

販売オーダー・ヘッダーの拡張可能フレックスフィールドに値が含まれている場合にのみ、次のAND文に進みます。

この設定では、headerEFFを使用して、属性コンプライアンス詳細をオーダー・ヘッダーに格納する拡張可能フレックスフィールドの値を格納します。 コンプライアンス詳細の値が空の場合、コンプライアンスは不要で、報酬は不要であり、オーケストレーション・プロセスは次のオーケストレーション・プロセス・ステップに進みます。

header.flexContexts RL.contains headerEFF

headerEFFをルール言語(RL)ディクショナリに宣言し、headerEFFの値をflexContextsに含まれる値に設定します。

この条件により、変数をディクショナリに正しく宣言できます。

RLにheaderEFFが含まれている場合にのみ、次のAND文に進みます。

各変数に対してこのテストを行い、宣言が正しいことを確認します。 テストを実行せず、宣言が正しくない場合は、後続のステップでルールが失敗する可能性があります。

headerEFF.context isn't null

オーダー・ヘッダーにコンテキストが定義されていることを確認してください。 contextに値が含まれている場合にのみ、次のAND文に進みます。

headerEFF.context equals ignore case "ComplianceDetails"

この変数のコンプライアンス詳細のコンテキストおよびセグメントを取得します。

contextに文字列ComplianceDetailsが含まれている場合にのみ、次のAND文に進みます。 検査時に大文字と小文字の区別を無視します。

contextに他の値が含まれている場合は、他のプロセスがコンプライアンス・チェックをリクエストしていないことを示します。

headerEFF.attributeChanged("_ComplianceInfo") is true

拡張可能フレックスフィールドの属性ComplianceInfoが変更されていることを確認します。 attributeChangedを使用して、このリビジョンでComplianceInfoの値が異なるかどうかを判断します。

この例には、1行のみを処理する単純なルールが含まれています。 拡張ルールを使用して、複数の明細を処理します。 詳細は、「オーダー管理でのビジネス・ルールの使用の概要」を参照してください。

ステップの概要

  1. If文を作成します。

  2. Then文を作成します。

  3. 一時停止タスクをリリースします。

このトピックではサンプル値を使用します。 ビジネス要件によっては、別の値が必要になる場合があります。

If文の作成

文を作成します。

  • コンプライアンス詳細が変更された場合

やれ。

  1. ルールを作成します。

    • 「設定および保守」作業領域で、タスクに移動します。

      • オファリング: オーダー管理

      • 機能領域: オーダー

      • タスク: オーケストレーション・プロセス定義の管理

    • 「オーケストレーション・プロセス定義の管理」ページで、CallCustomerWhenLargeInvoiceオーケストレーション・プロセスを探し、「処理」>「編集」をクリックします。

      CallCustomerWhenLargeInvoiceを作成する方法について学習します。 詳細は、「オーケストレーション・プロセスへのブランチの追加」を参照してください。

    • 「オーケストレーション・プロセス定義の編集」ページのプロセス詳細領域のステップ定義リストで、「変更管理」をクリックします。

    • 出荷品目行の報酬パターン列で、「ルールのクリック」をクリックします。

    • 「報酬パターン」ダイアログで、「ルールの追加」>「プロパティ」をクリックし、値を設定します。

      属性

      名前

      コンプライアンスが変更されたかどうかの判断

      説明

      コンプライアンスの詳細が変更された場合は、コンプライアンスが完了するまでオーケストレーション・プロセスを一時停止します。

      有効日

      常時

      Priority

      アクティブ

      チェック・マークが含まれます。

      拡張モード

      チェック・マークが含まれます。

      ツリー・モード

      チェック・マークは含まれません。

  2. 変数headerを宣言します。

    • If領域で、Is Aの左側にある「ショー・ウィンドウ」headerと入力します。

    • フィールドをIs Aの右側をDooSeededOrchestrationRules.DOOHeaderに設定します。

  3. 変数headerEFFを宣言します。

    • 「パターンの追加」をクリックします。

    • Is Aの左側のウィンドウで、headerEFFと入力します。

    • フィールドをIs Aの右側をDooSeededOrchestrationRules.DOOHeaderに設定します。

  4. headerEFFに値が含まれていることを確認してください。

    • 「テストの追加」をクリックします。

    • Isの左側のウィンドウで、headerEFFと入力します。

    • Isn'tに変更します。

    • Isn'tの右側にあるフィールドで、「右の値> null > OK」をクリックします。

  5. headerEFFをルール言語(RL)ディクショナリに宣言します。

    • 右の値の右側にある下矢印をクリックし、「簡易テスト」をクリックします。

    • Isの左側のウィンドウで、「左の値」をクリックし、「ヘッダー」を展開してflexContexts > OKをクリックします。

    • RL.containsに変更します。

    • RL.containsの右側にあるフィールドで、「右の値> headerEFF > OK」をクリックします。

  6. contextに値が含まれていることを確認してください。

    • 「簡易テスト」をクリックします。

    • Isの左側にある「左の値」をクリックし、headerEFFを展開してcontext > OKをクリックします。

    • Isn'tに変更します。

    • Isn'tの右側にあるフィールドで、「右の値> null > OK」をクリックします。

  7. contextに文字列ComplianceDetailsが含まれていることを確認してください。

    • 「簡易テスト」をクリックします。

    • Isの左側にある「左の値」をクリックし、headerEFFを展開してcontext > OKをクリックします。

    • 次と等しいに変更すると、大文字小文字は無視されます。

    • 大文字と小文字を区別しないの右側にあるフィールドで、「右値」をクリックし、"ComplianceDetails"と入力してOKをクリックします。

      二重引用符( ")を含めてください。

  8. 拡張可能フレックスフィールドの属性ComplianceInfoが変更されていることを確認します。

    • 「簡易テスト」をクリックします。

    • Isの左側にある「左の値」をクリックし、headerEFFを展開してhasChangesをクリックします。

    • 条件ブラウザのウィンドウで、値を確認します。

      カッコの間に"_ComplianceInfo"を挿入し、OKをクリックします。 たとえば:

      headerEFF.attributeChanged("_ComplianceInfo")

    • 「Is」の右側のウィンドウで、値を入力します。

Then文の作成

コンプライアンスが完了するまでオーケストレーション・プロセスを一時停止する文を作成します。

  1. Then領域で、「処理の追加」>「割当」をクリックします。

  2. 「ターゲットの選択」をクリックし、header.mRuleDecision.compensationPatternをクリックします。

  3. 等号( =)の右側にあるウィンドウで、"UPDATE"と入力します。

    二重引用符を含める必要があります。

  4. 「検証」をクリックし、表示される検証ログにエラーが含まれていないことを確認してから、「保存」をクリックします。

  5. 「オーケストレーション・プロセス定義の編集」ページで、「保存」をクリックします。

日付に従ってタスクを一時停止

このルールは、給与パターンを追加したのと同じステップの一時停止ルール列に追加します。

日付が空の場合にタスクを一時停止

コンプライアンス・チェックが完了すると、オーダー管理によってコンプライアンス完了日が設定されます。 日付が空の場合、コンプライアンス・チェックが完了していないことを示し、ルールは一時停止タスクを解放しません。 たとえば:

  • CompleteCompliancedateが空の場合、コンプライアンス・チェックは実行されません。 待機する必要があることを示すビジネス・イベントを割り当てます。

日付が空である間にタスクを一時停止するルール

ルールで使用されるコードを次に示します。

If header is a DooSeededOrchestrationRules.DOOHeader 
and if headerEFF is a DooSeededOrchestrationRules.FlexContext and 
  headerEFF isn't null and 
  header.flexContexts RL.contains headerEFF and 
  headerEFF.context isn't null and 
  headerEFF.context equals ignore case "ComplianceDetails" and 
  headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate") is null 

then 
  assign header.sacResult.sacType = DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT
  assign header.sacResult.eventName = "Awaiting Compliance Check Completion" 
  assign header.sacResult.reevaluateFlag = "N"

将来の日付で休止

コンプライアンス完了日がオーダー・ヘッダー日付より後になるまで一時停止するルールを作成できます。 たとえば:

  • CompleteCompliancedateがオーダー・ヘッダー日付の後に発生した場合は、コンプライアンス・チェックが実行されます。 一時停止タスクをリリースする準備をします。

一時停止タスクの解放を準備するには、waitDateTimeをコンプライアンス日付に設定します。 waitDateTimeおよびsacResultsの詳細は、「オーケストレーション・プロセスを一時停止するためのガイドライン」を参照してください。

waitDateTimeをコンプライアンス日付に設定するルール

ルールで使用されるコードを次に示します。

If header is a DooSeededOrchestrationRules.DOOHeader 
and if headerEFF is a DooSeededOrchestrationRules.FlexContext and 
  headerEFF isn't null and 
  header.flexContexts RL.contains headerEFF and 
  headerEFF.context isn't null and 
  headerEFF.context equals ignore case "ComplianceDetails" and 
  headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate") isn't null 
  headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate") more than header.current_date

then 
  assign header.sacResult.sacType = DooSeededOrchestrationRules.SacResult.SAC_TYPE_TIMER 
  assign header.sacResult.waitDateTime = headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate")

一時停止タスクのリリース

一時停止タスクをリリースするルールを作成します。 このトピックで以前に設定した拡張可能フレックスフィールドは参照しません。 かわりに、ルールが使用されます。

  • NULL日付の一時停止ルール

  • 将来の日付の一時停止ルール

これは、これらのルールがSacResultに設定した値を使用して、一時停止タスクをリリースするタイミングを決定します。

一時停止タスクをリリースするルールを次に示します。

タスクの一時停止をリリースするルール

このルールで使用するコードを次に示します。

If header is a DooSeededOrchestrationRules.DOOHeader 

then 
  assign new DooSeededOrchestrationRules.sacResult SAC = new DooSeededOrchestrationRules.sacResult()
  assign header.sacResult = SAC
  assign header.sacResult.sacType = DooSeededOrchestrationRules.SacResult.SAC_TYPE_IMMEDIATE
  assign header.sacResult.reevaluateFlag = "N"

このルールは、給与パターンを追加したのと同じステップの一時停止ルール列に追加します。