REST APIを使用した履行明細の更新および分割
オーダー・ハブの販売オーダーREST APIを使用して、履行明細を改訂せずに複数の販売オーダー間で更新または分割します。
スケジュール属性の更新、品目の代替、または出荷セットからの履行明細の削除を実行できます。 Oracle Order Managementは、変更および分割明細をダウンストリーム履行システムに送信します。
オーダー明細の品目数量の一部のみが倉庫の要求日に使用可能であるとします。 残りの数量は、別の日付または別の倉庫で使用可能であるか、代替品目が使用可能です。 顧客に品目を出荷する際の遅延を減らすには、様々な方法があります。 たとえば、次のことが可能です。
- 明細を明細xおよびyに分割し、明細xのリクエスト日に有効数量を出荷してから、明細yの次の使用可能日に残数量を出荷します。
- 明細を明細xおよびyに分割し、明細xの倉庫から有効数量を出荷し、明細yのリクエスト日に別の倉庫から残りの数量を出荷します。
- 代替品目を出荷します。
オーダー・ハブの販売オーダーREST APIでUpdateSchedulingAttributeRequest操作を使用して、複数の販売オーダーにわたって履行明細を更新できます。また、SplitFulfillmentLineRequest操作を使用して、複数の販売オーダーにわたって履行明細を分割できます。
明細のスケジューリング属性を分割または更新すると、Order Managementによって履行タスクが補正され、更新済明細と分割済明細がダウンストリーム履行システムに送信されます。
更新
UpdateSchedulingAttributeRequestを使用して、履行明細で次の属性を更新できます:
- 予定出荷日
- 予定到着日
- 倉庫
- サプライヤ
- サプライヤ・サイト
- 出荷方法(運送業者、輸送モード、サービス・レベルなど)
- 需要区分
- 項目
- 出荷セット
演習
これらの履行明細があるとします。
販売オーダー | オーダー明細 | 履行明細 | 品目 | 元の品目 | 数量 | 倉庫 | 要求出荷日 | 予定出荷日 | 出荷セット | ステータス | スケジュールの上書き |
---|---|---|---|---|---|---|---|---|---|---|---|
530866 | 1 | 1-1 | AS54888 | 10 | M1 | 7/17/23 | 7/31/23 | 出荷待機中 | No | ||
530866 | 2 | 2-1 | OM-RT-Standard-Item1 | 12 | M1 | 7/17/23 | 7/31/23 | SS1 | 出荷待機中 | No | |
530866 | 3 | 3-1 | OM-RT-Standard-Item4 | 16 | M1 | 7/17/23 | 7/31/23 | SS1 | 出荷待機中 | No | |
530868 | 1 | 1-1 | AS92888 | 11 | M1 | 7/17/23 | 7/31/23 | 出荷待機中 | No |
ノート:
- すべての履行明細のリクエスト出荷日は7/17/23ですが、予定出荷日は7/31/23であるため、すべての明細が予定より遅れます。 ステータスは出荷待ちです。
- 販売オーダー530866には3つの明細があり、オーダー530868には1つの明細があります。
- 明細2-1と明細3-1は出荷セットの一部です。
- すべての明細は、M1倉庫から出荷されます。
顧客を満足させるには、次のことを行います:
- AS54888を、M1ウェアハウス(SCH_STD_02品目)から出荷する準備ができていることがわかっている別の品目に置き換えます。
- 履行明細3-1の品目を個別に出荷できるように、履行明細2-1の品目を出荷セットから削除します。 リクエスト日に出荷するように履行明細3-1のスケジュール日を更新します。
- M2のインベントリが出荷可能であるため、AS92888のウェアハウスをM1からM2に変更します。
これを実行するために使用できるペイロードを次に示します:
ノート
- updateSchedulingAttributeRequest操作を使用して、変更を指定します。 この操作は、ペイロードのOrderエンティティの任意の場所で指定できます。
- FulfillLineIDを、AS54888を含む元の履行明細に設定します。
- ProductNumberを元の履行明細のSCH_STD_02代替品目に設定し、ScheduleArrivalDateTimeおよびScheduleShipDateTimeをリクエスト日に設定します。
- FulfillLineIDを、AS29888を含む元の履行明細に設定します。
- FulfillmentOrganizationCodeをM2に設定し、ScheduleArrivalDateTimeおよびScheduleShipDateTimeをリクエストされた日付に設定します。
- FulfillLineIDを、OM-RT-Standard-Item1品目を含む元の履行明細に設定します。
- OM-RT-Standard-Item1を出荷セットから削除することを示すには、ShipSetNameを
null
に設定します。 - 履行明細3-1でScheduleArrivalDateTimeおよびScheduleShipDateTimeを更新し、リクエスト日にOM-RT-Standard-Item4品目を出荷します。
- ペイロードをインポートし、REST APIレスポンスで成功ステータスを受信したことを確認します。
履行明細のオーケストレーション・プロセスでは、更新した属性を使用して履行タスクの変更を識別し、履行タスクを補正してから、履行明細の更新された属性値を履行システムに送信します。 たとえば、予定日を変更したり、品目を代替したり、出荷セットから履行明細を削除すると、オーダー管理はスケジュール、予約および出荷タスクを補い、Oracle Global Order PromisingおよびOracle Inventory Managementに変更を送信します。
次に、Order Management(オーダー管理)作業領域に移動し、販売オーダーを履行ビューで開いて、変更を確認します。
販売オーダーのステータスは処理中です。 改訂番号がないため、販売オーダー改訂を作成していないことがわかっています。 既存のバージョンのみを更新しました。
- オーダー明細1の品目属性には代替SCH_STD_02品目、当初品目属性にはAS54888品目、予定出荷日には更新済リクエスト日が含まれます。
- 販売オーダー530868のライン1には、スケジュール日付が改訂されたAS92888品目のM2倉庫があります。
- 販売オーダー530866の明細3には、OM-RT-Standard-Item4に設定した改訂日があります。
- 明細2の出荷セット属性が空です。 つまり、OM-RT-Standard-Item1を出荷セットから正常に削除しました。
- ステータス属性に出荷待ちが含まれます。 明細2-1の品目を除くすべての品目は、リクエスト出荷日より後ではなく、リクエスト出荷日に出荷する準備ができています。
- スケジュールの上書き属性にはいが含まれています。 この属性を使用して、履行明細から元の値を上書きしたかどうかを迅速に判断できます。
この設定のniftyデモンストレーションを表示するには、「続きを読み込む」をクリックします。
REST APIの詳細は、「Oracle Supply Chain Management CloudのREST API」にアクセスし、「Order Management→Order Hubの販売オーダー」を展開します。
更新のガイドライン
- 各明細の少なくとも1つのスケジューリング属性について、履行明細および更新された値を含める必要があります。
- オプションとして、スケジューリング属性の更新時または品目の代替時に事由を含めることができます。
- 品目にカバレッジがあり、対象品目を代替する場合は、「製品情報管理」作業領域の代替品目の「カバレッジ契約使用可能」属性が「はい」である必要があります。
構成品目、キットおよび出荷セット
- 構成品目、キットまたは出荷セットの一部である品目をすべて含める必要があり、構成品目、キットまたは出荷セットの一部である各明細のスケジューリング属性に同じ値を使用する必要があります。
- 出荷セットから履行明細を削除する場合は、" "などの空の値を含めるか、履行明細エンティティのShipSetName属性に値
null
を含めます。 - 履行明細を出荷セットから削除するために、履行明細のスケジュールを解除する必要はありません。 たとえば、「出荷待ち」ステータスの明細を出荷セットから削除できます。 ただし、オーダー管理作業領域の履行ビューで「出荷セットから削除」処理を使用する場合は、履行明細を出荷セットから削除する前に、引き続きスケジュール解除する必要があります。
- 履行明細の出荷セットを別の値に変更することはできません。 空の値にのみ変更できます。
- 出荷セットから履行明細を削除するときに、スケジューリング属性を更新できます。 たとえば、予定出荷日、予定到着日、倉庫、出荷方法などを更新できます。
代替
- 明細の品目を代替する場合は、InventoryItemID、ProductNumberまたはProductDescriptionのいずれかの属性で代替品目を指定します。
- 品目を代替するときに、スケジューリング属性を更新できます。 たとえば、予定出荷日、予定到着日、倉庫、出荷方法などを更新できます。
- 代替できるのは標準品目のみです。 構成品目またはキットの構成品目、キットまたは子品目は、代替できません。
- 明細が出荷セット内にある場合、履行明細の品目を代替できません。 かわりに、履行明細を出荷セットから削除し、品目を置き換えることができます。
分割
REST APIを使用して履行明細を分割することもできます。 明細を分割すると、次の利点が得られます:
- 履行明細の分割方法や明細のスケジューリング属性の更新方法を柔軟にします。
- 履行明細を分割するか、明細のスケジューリング属性を更新すると、効率とパフォーマンスが向上します。
- 複数の販売オーダーで履行明細を分割または更新する必要がある場合の使いやすさと効率が向上します。
- 販売オーダーの改訂は避けてください。
これらの履行明細があるとします。
販売オーダー | オーダー明細 | 履行明細 | 品目 | 元の品目 | 数量 | 倉庫 | 要求出荷日 | 予定出荷日 | 出荷セット | ステータス | スケジュールの上書き |
---|---|---|---|---|---|---|---|---|---|---|---|
530883 | 1 | 1-1 | OM-RT-Standard-Item3 | 15 | M1 | 7/17/23 | 7/31/23 | 出荷待機中 | No | ||
530885 | 2 | 1-1 | OM-RT-Standard-Item6 | 18 | M1 | 7/17/23 | 7/31/23 | 出荷待機中 | No |
ノート:
- すべての明細は、M1倉庫から出荷されます。
- 各明細は異なる販売オーダーからのものです。
- M1のリクエスト出荷日はすべての明細で7/17/23ですが、予定出荷日はリクエスト日より後の7/31/23です。
すべての明細が予定より遅れています。 M1はOM-RT-Standard-Item3の数量9のみを持ち、M2は残りの数量を満たすのに十分なインベントリを持ちます。 顧客を満足させるには、次のことを行います:
- OM-RT-Standard-Item3を含む行を2行に分割します。 数量が9の明細をM1から出荷し、残りの数量が6の明細をM2から出荷します。
- OM-RT-Standard-Item6を含む明細を3つの明細に分割し、異なる日付で履行できるようにします。
明細の分割に使用できるペイロードの例を次に示します。
{
"processRequestOfflineAfter": 240,
"splitFulfillmentLineRequest": [
{
"FulfillLineId": 300100599645013,
"ProductNumber": "OM-RT-Standard-Item3",
"OrderedQty": "9",
"FulfillmentOrganizationCode": "M1",
"ScheduleArrivalDateTime": "2023-07-19T23:59:59+00:00",
"ScheduleShipDateTime": "2023-07-17T23:59:59+00:00"
},
{
"SplitFromFlineId": 300100599645013,
"FulfillInstanceId": 1,
"ProductNumber": "OM-RT-Standard-Item3",
"OrderedQty": "6",
"FulfillmentOrganizationCode": "M2",
"ScheduleArrivalDateTime": "2023-07-19T23:59:59+00:00",
"ScheduleShipDateTime": "2023-07-17T23:59:59+00:00"
},
{
"FulfillLineId": 300100599645173,
"ProductNumber": "OM-RT-Standard-Item6",
"OrderedQty": "3",
"FulfillmentOrganizationCode": "M1",
"ScheduleArrivalDateTime": "2023-07-19T23:59:59+00:00",
"ScheduleShipDateTime": "2023-07-17T23:59:59+00:00"
},
{
"SplitFromFlineId": 300100599645173,
"FulfillInstanceId": 1,
"ProductNumber": "OM-RT-Standard-Item6",
"OrderedQty": "7",
"FulfillmentOrganizationCode": "M1",
"ScheduleArrivalDateTime": "2023-07-26T23:59:59+00:00",
"ScheduleShipDateTime": "2023-07-24T23:59:59+00:00"
},
{
"SplitFromFlineId": 300100599645173,
"FulfillInstanceId": 2,
"ProductNumber": "OM-RT-Standard-Item6",
"OrderedQty": "8",
"FulfillmentOrganizationCode": "M1",
"ScheduleArrivalDateTime": "2023-08-02T23:59:59+00:00",
"ScheduleShipDateTime": "2023-07-31T23:59:59+00:00"
}
]
}
ペイロードやOrder Management作業領域での結果など、この例の詳細は、「続きを読み込む」をクリックしてから、デモンストレーションの3:52に進みます。
分割のガイドライン
- 元の履行明細に減量数量を含め、分割明細の残量を含める必要があります。 これらの数量の合計は、元の数量と一致する必要があります。 x行の数量が10で、xをx行とy行に分割するとします。 xおよびyの数量の合計は10である必要があります。
- 履行明細は2つ以上の明細に分割できます。 たとえば、履行明細を4つの明細に分割し、それらの4つの明細ごとに異なる倉庫を割り当てることができます。
- 分割明細のスケジューリング属性の値は、当初明細の値と一致する必要はありません。
- 元の履行明細のスケジューリング属性は、分割時に更新できます。 たとえば、スケジュール日、倉庫、サプライヤなどに対して更新された値を含めることができます。
- REST APIでsplitFulfillmentLineRequest操作を使用する場合は、手動ステップにない場合でも明細を分割できます。 たとえば、「出荷待ち」ステータスの明細を分割できます。 ただし、オーダー管理作業領域の履行ビューで「分割」処理を使用する場合は、履行明細が手動ステップにあることを確認する必要があります。 履行ビューで「有効数量のチェック」処理を使用する場合は、「有効数量のチェック」ダイアログで分割する前に、履行明細を履行ビューからスケジュール解除する必要があります。
- 単一の要求を使用して履行明細を分割し、当初明細の品目を同時に代替することはできません。 かわりに、元の明細の品目を置換する要求を1つ送信し、明細を分割する別の要求を送信します。
- 自分のタスクを作成し、そのタスクで保留サービスを使用する場合、履行明細がタスクの待機ステップにある場合は、履行明細を分割できません。
- splitFulfillmentLineRequestを使用して、在庫トランザクションを含む履行明細を分割することはできません。
- 履行明細を分割し、明細の履行許容範囲が0でなく、分割明細を出荷する場合、Oracle Shippingでは、すべてのオーダー明細の履行明細ですでに出荷した累積数量は考慮されません。 かわりに、出荷では、現在出荷中の分割明細の数量のみが考慮されます。
構成品目、キットおよび出荷セット
- 構成品目またはキットの一部である品目をすべて含める必要があり、構成品目またはキットの一部である各明細のスケジューリング属性に同じ値を使用する必要があります。
- 出荷セット内の履行明細は分割できません。 かわりに、履行明細を出荷セットから削除して分割できます。
- 構成品目またはキットを分割する場合、分割は比例している必要があります。 詳細については、オーダー構成の仕組みを参照してください。
その他の考慮事項
REST APIのsplitFulfillmentLineRequestまたはupdateSchedulingAttributeRequestは、次の場所では使用できません:
- 返品明細、カバレッジまたはサブスクリプション
- 出荷していない品目
- すでに変更中であるか、アクティブな待機ステップにない履行明細です。
- 直接出荷の一部の履行中にオーダー管理が作成した履行明細です。
- 構成品目の残余明細です。 残余の詳細については、「構成品目の履行」を参照してください。
- 「部分出荷における分割オーダー明細の属性の更新」機能にオプト・インする前に送信済の販売オーダーです。
ノート
- 履行明細の更新または分割に失敗した場合、オーダー管理は明細を更新または分割せず、かわりにエラー・ステータスを返します。 要求に複数の履行明細が含まれている場合、一部の明細の更新または分割は成功しますが、他の明細では失敗する場合があります。 オーダー管理は、成功明細の成功ステータスと、失敗した明細のエラー・ステータスを返します。 失敗した明細が構成品目、キットまたは出荷セットの一部である場合、オーダー管理では、構成品目、キットまたは出荷セットの一部である品目は更新または分割されず、かわりにすべての明細でエラーが返されます。
- updateSchedulingAttributeRequestは、更新する履行明細のスケジュールの上書き属性をはいに設定し、splitFulfillmentLineRequestは、元の履行明細および分割明細のはいに設定します。 updateSchedulingAttributeRequestまたはsplitFulfillmentLineRequestを使用すると、Order Managementでは販売オーダーの新規改訂は作成されません。
- processRequestOfflineAfter操作を使用して、履行明細を分割または更新するRESTリクエストを管理できます。 REST APIを使用して履行明細を分割または更新する場合も、保留の場合と同様に機能します。 使用の詳細は、REST APIを使用した保留の適用および解除を参照してください。
- 手動スケジューリング必須ステータスの履行明細でupdateSchedulingAttributeRequestを使用する場合、オーケストレーション・プロセスでスケジューリングを手動タスクとして設定するか、明細のスケジュールを取り消すため、また、RESTペイロードに予定日および倉庫属性、または予定日およびサプライヤとサプライヤ・サイト属性を含めると、Order Managementは履行明細を自動的にスケジュールします。 Order Managementでは、splitFulfillmentLineRequestを使用する場合と同じ動作が適用されます。 たとえば、これらのスケジューリング属性をペイロードに含めると、元の明細と分割明細が自動的にスケジュールされます。
インポートの詳細は、「Order Managementへのオーダーのインポートの概要」を参照してください。
その他の機能
履行明細を他のOracle applicationsと更新または分割することもできます:
- Oracle Global Order Promisingについては、「供給がしきい値に達したときにオーダー明細を分割」および「履行明細の分割または代替」を参照してください。
- Oracleバックログ管理は、再スケジュール中の遅延を減らすためのオーダー明細の分割機能を参照してください。 詳細は、「続きを読み込む」をクリックしてください。
権限
オーダー・ハブREST APIの販売オーダーでupdateSchedulingAttributeRequestを使用するには、次の権限が必要です:
- RESTサービスを使用した販売オーダーの作成(FOM_SALES_ORDER_REST_POST_PRIV)
- オーケストレーション・オーダー履行明細属性の変更(DOO_MODIFY_ORCHESTRATION_ORDER_FULFILLMENT_LINE_ATTRIBUTES_PRIV)
オーダー・ハブREST APIの販売オーダーでsplitFulfillmentLineRequestを使用するには、次の権限が必要です:
- RESTサービスを使用した販売オーダーの作成(FOM_SALES_ORDER_REST_POST_PRIV)
- 分割オーケストレーション・オーダー履行明細(DOO_SPLIT_ORCHESTRATION_ORDER_FULFILLMENT_LINE_PRIV)