拡張を使用できない場合にビジネス・ルールを使用
オーダー管理拡張が要件を満たさない場合は、ビジネス・ルールを作成します。
たとえば、販売オーダーの改訂時にオーダー管理拡張を使用してScheduleShipDate属性を更新することはできません。
ScheduleShipDate属性の値を、オーダー改訂の作成時にRequestShipDate属性に含まれる値に設定する必要があるとします。
設定のサマリー
-
変換後ルールを作成します。
-
設定をテストします。
変換後ルールの作成
ルールが実行時にどのように機能するかを次に示します。
演習
-
「設定および保守」作業領域に移動してから、タスクに移動します。
-
オファリング: オーダー管理
-
機能領域: オーダー
-
タスク: 変換後デフォルト・ルールの管理
-
-
「変換後デフォルト・ルールの管理」ページで、新しいルールを作成します。
-
「拡張モード」オプションにチェックマークを追加します。
-
If領域で、条件を設定します。
コード
説明
header is a PosttransformationRules.HeaderVO
ヘッダー変数をPosttransformationRulesディクショナリに宣言します。
オーケストレーション・プロセスが現在処理しているオーダー・ヘッダーの属性の値をヘッダー仮想オブジェクト(VO)から取得し、ヘッダー変数に格納します。
line is a PosttransformationRules.LineVO
行変数をPosttransformationRulesディクショナリに宣言します。
オーケストレーション・プロセスが現在処理しているオーダー明細の属性の値を明細仮想オブジェクト(VO)から取得し、明細変数に格納します。
header.OrderLine isn't null
オーダー明細に値が含まれていることを確認してください。
header.OrderLine RL.contains line
OrderLine変数をルール言語(RL)ディクショナリに宣言し、OrderLineの値をライン変数に含まれる値に設定します。
この条件により、OrderLine変数が、オーケストレーション・プロセスが現在処理している履行明細を参照するようになります。 また、変数をディクショナリに正しく宣言します。
これを使用して、現在のオーケストレーション・プロセス・インスタンスが処理している明細のみでなく、販売オーダーのすべての明細を確認します。
fline is a PosttransformationRules.FulfillLineVO
fline変数をPosttransformationRulesディクショナリに宣言します。
オーケストレーション・プロセスが現在処理している履行明細の属性の値を履行明細の仮想オブジェクト(VO)から取得し、それらを明細変数に格納します。
line.OrderFulfillLine isn't null
line.OrderFulfillLineファクトに値が含まれていることを確認してください。
line.OrderFulfillLine RL.contains fline
line.OrderFulfillLineファクトにfline変数のデータが含まれていることを確認します。
header.ChangeVersionNumber isn't 1
販売オーダーを改訂する場合にのみ、Then取引明細書に進みます。
オーダー・ヘッダーのChangeVersionNumber属性が1の場合、販売オーダーは改訂ではありません。
-
Then領域で、Assignアクションを追加します。
コード
説明
fline.ScheduleShipDate = fline.RequestShipDate
fline変数のScheduleShipDate属性の値を、fline変数に含まれるRequestShipDate属性の値に設定します。
-
「保存>リリース」をクリックします。
ビジネス・ルールの作成方法の詳細は、「オーダー管理でのビジネス・ルールの使用の概要」を参照してください。
設定のテスト
-
オーダー管理作業領域に移動し、作成して販売オーダーを発行します。
属性
値
ビジネス・ユニット
Vision Operations
オーダー番号が521702であるとします。
-
販売オーダー521702を修正してから、改訂を発行してください。
-
「オーダー」ページで、「履行明細」をクリックします。
-
オーダー明細で、予定出荷日属性の値を確認します。
-
属性領域で、「供給詳細」をクリックします。
-
リクエスト出荷日属性の値を確認し、予定出荷日と一致することを確認します。
たとえば:
REST APIの使用
ビジネス・ルールまたは拡張を使用して予定出荷日を設定しない場合は、salesOrdersForOrderHub REST APIでパッチ処理を使用できます。 たとえば:
{
"lines":[
{
"SourceTransactionLineId": "1",
"SourceTransactionScheduleId": "1",
"OverrideScheduleDateFlag": true,
"ScheduleShipDate": "2019-10-25T05:59:59+00:00",
"ShippingInstructions":"REST NEW TEST",
"RequestedFulfillmentOrganizationCode": "M1"
}
]
}
詳細と例については、「Oracle Supply Chain Management CloudのREST API」に移動し、Order Managementを展開して、「オーダー・ハブの販売オーダー> 1つの販売オーダーの更新」をクリックします。