フレックスフィールドでの時間の一時停止
ビジネス・パートナが見積を提供できる時間を90日に制限する必要があるとします。
オーダー管理作業領域を使用して見積の失効日を指定できるように、Quoteという名前のコンテキストとquoteexpirationという名前のセグメントを持つ拡張可能フレックスフィールドをすでに設定しています。
失効見積セグメントで指定された日時で失効する一時停止タスクを作成できます。 このセグメントは、拡張可能フレックスフィールドの見積コンテキストに存在します。
作成するルールを次に示します。
ルール |
説明 |
---|---|
90日間一時停止 |
条件なしで90日間一時停止します。 |
見積が失効するまで一時停止 |
失効見積セグメントで指定された日時で失効するタスクの一時停止。 このセグメントは、拡張可能フレックスフィールドの見積コンテキストに存在します。 見積が失効するまで一時停止すると、90日間一時停止が上書きされます。 |
最初のルール
これが最初のルールです。
ノート
コード |
説明 |
---|---|
優先度が高 |
他のルールを実行する前に、必ずこのルールを実行してください。 |
|
ヘッダー変数を宣言し、DooSeededOrchestrationRulesメソッドのDOOHeaderオブジェクトからヘッダーに値をロードします。 DOOHeaderには、オーダー・ヘッダー属性とその値が含まれます。 このIf文は、すべての条件でルールを実行する必要があるため、条件付きロジックを含んでいません。 |
|
SAC変数の新しいインスタンスを作成し、DooSeededOrchestrationRulesメソッドでSacResultタイプに設定します。 |
|
オーダー・ヘッダーのsacResultオブジェクトの値を、SACに含まれる値に設定します。 |
|
IF文に、再評価する必要がある条件が含まれていません。 |
|
一時停止のタイプをタイマーとして指定します。 |
|
現在の日付を取得し、90日間追加して、結果をオーダー・ヘッダーのsacResultオブジェクトのwaitDateTimeパラメータに格納します。 waitDateTimeが発生するまで、ルールは一時停止を解放しません。 |
GetAdjustedDate関数
GetAdjustedDate関数で使用できるパラメータを次に示します。
-
「最初のパラメータ」。 日付、日付変数、または現在の日付の場合は空のままにします。
-
「2番目のパラメータ」。 日数 整数または小数を使用します(12時間は0.5など)。
GetAdjustedDateは、最初のパラメータに日数を追加し、結果を日時として返します。
分または時間を追加するには、2番目のパラメータを分数で表します。
フォーマット |
例 |
---|---|
分数* 1 / (24 * 60)。 |
30分を追加するには、 |
時間数* 1 / 24。 |
5時間を追加するには、 |
2番目のルール
2番目のルールのIf文を次に示します。
ノート
コード |
説明 |
---|---|
|
90日間一時停止ルールを実行した後は、必ずこのルールを実行してください。 |
|
If文のすべての条件がtrueの場合は、90日の一時停止ルールを上書きします。 |
|
ヘッダー変数を宣言し、DooSeededOrchestrationRulesメソッドのDOOHeaderオブジェクトからヘッダーに値をロードします。 DOOHeaderには、オーダー・ヘッダー属性とその値が含まれます。 |
|
Fline (履行明細)変数を宣言し、DooSeededOrchestrationRulesメソッドのDOOFlineオブジェクトから値をFlineにロードします。 DOOFline (分散オーダー・オーケストレーション履行明細)には、履行明細属性とその値が含まれます。 |
|
fline変数をルール言語(RL)ディクショナリに宣言し、flineの値をchildFLinesに含まれる値に設定します。 この条件により、オーケストレーション・プロセス・インスタンスが処理している親販売オーダーの子履行明細が明細変数に含まれていることが確認されます。 また、変数をディクショナリに正しく宣言します。 |
|
flineEFF変数を宣言し、オブジェクトFlexContextの値をこの変数に格納します。 DooSeededOrchestrationRulesメソッドにはFlexContextが含まれていることに注意してください。 |
|
flineEFF変数に値が含まれている場合にのみ、次のANDに進みます。 |
|
flineEFFが履行明細の拡張可能フレックスフィールドを参照する場合にのみ、次のANDに進みます。 オーダー・ヘッダーの拡張可能フレックスフィールドを参照するには、fline.flexContextsのかわりにheader.flexContextsを使用します。 |
|
コンテキストに値が含まれている場合にのみ、次のANDに進みます。 |
|
コンテキストが文字列Quoteと等しい場合にのみ、次のANDに進みます。 |
|
オーダー入力スペシャリストがフレックスフィールドに値を入力した場合にのみ、THEN文に進みます。 |
次に、2番目のルールのThen文を示します。
ノート
コード |
説明 |
---|---|
|
タイマーを使用するようにSacResultを設定します。 |
|
タイマーが失効したときに条件を再評価しないでください。 このルールはタイマーに従って評価されません。 かわりに、見積失効日が生じるまで待機するため、再評価は必要ありません。 日付の新しい値を含む改訂を発行すると、ルールによって日時が再評価され、この新しい時間が報酬の一部として設定されます。 |
|
オーダー・ヘッダーのsacResultルール・セットのwaitDateTime変数を、オーダー入力スペシャリストがフレックスフィールドに入力した値に設定します。 |
拡張可能フレックスフィールドでのビジネス・ルールの使用方法について学習します。 詳細は、「オーダー管理での拡張可能フレックスフィールドの設定の概要」を参照してください。
フレックスフィールドを使用する別の例
フレックスフィールドの値に従って一時停止する例を次に示します。