REST APIを使用した保留の適用およびリリース
販売オーダーおよび履行明細の保留を適用およびリリースするには、オーダー・ハブの販売オーダーREST APIでapplyHold操作およびreleaseHold操作を使用します。
ガイドライン
保留を適用して解除できます:
- ドラフトまたは発行済販売オーダー
- 単一のリクエスト内の1つ以上の販売オーダーまたは履行明細
- 販売オーダー・エンティティ
- 履行明細エンティティ
「オーダーの表示」ページやOrder Management作業領域の履行ビュー、SOAPサービスを介して適用したヘッダー保留など、他のチャネルを介してオーダー・ヘッダーまたは履行明細に適用した保留をリリースできます。
ノート
- REST APIを使用して、1つ以上の販売オーダーまたは1つ以上の履行明細に保留を適用またはリリースできます。
- REST APIを使用して、販売オーダーの作成時に保留を適用することはできません。 オーダーは、すでにドラフトまたは発行済ステータスである必要があります。
- SOAPサービスを介してオーダー明細に保留を適用した場合、REST APIを使用してリリースすることはできません。
レスポンスを調べて、それが成功したことを確認します。 レスポンスが失敗した場合は、再送信します。 レスポンスにFOM-4515574エラー・コードが含まれている場合は、次のことを確認してください:
- オーダー明細を更新していません。
- オーケストレーション・プロセスは現在待機ステップにあり、明細の処理を試行していません。
- オーダー明細はエラー・ステータスではありません。
詳細は、「Oracle Supply Chain Management CloudのREST API」、「オーダー管理」>「オーダー・ハブの販売オーダー」>「保留」の順に展開します。
詳細は、「販売オーダーの保留の設定のガイドライン」を参照してください。
演習
- 「設定および保守」作業領域に移動し、「タスク」>「検索」をクリックします。
- プロファイル・オプションの管理タスクを検索して開きます。
- 「プロファイル・オプションの管理」ページで、「処理」>「新規」をクリックします。
- 「プロファイル・オプションの作成」ページで値を設定し、「保存して閉じる」をクリックします
属性 値 プロファイル・オプション・コード FOM_NEW_HOLDS_PROCESSING プロファイル表示名 FOM_NEW_HOLDS_PROCESSING アプリケーション オーダー管理 モジュール オーダー管理 SQL検証 select MEANING , LOOKUP_CODE from FND_LOOKUPS where LOOKUP_TYPE='YES_NO'
LOOKUP_TYPEを
'YES_NO'
に設定してください。 他の値に設定しないでください。 - Profile Option Levels(プロファイル・オプション・レベル)領域で、サイト・レベルが使用可能であることを確認します。
- タスクに移動します。
- オファリング: オーダー管理
- 機能領域: オーダー
- タスク: 管理者プロファイル値の管理
- 値を検索します。
属性 値 プロファイル・オプション・コード FOM_NEW_HOLDS_PROCESSING - 検索結果で、値を設定します。
プロファイル・レベル 値 サイト Yes - REST APIペイロードに保留リクエストを追加します。
例
ソース・オーダーAASHIP190404のオーダー・ヘッダーにDOO_SHIP_ALL保留を適用するリクエスト・ペイロードの例を次に示します。
{
"processRequestOfflineAfter":"240",
"holdRequests": [
{
"HoldCode":"DOO_SHIP_ALL",
"HoldComments":"Order On Hold",
"SourceTransactionId":"AASHIP190404",
"SourceTransactionSystem":"GPR"
}
]
}
その保留リクエストからのREST APIレスポンスを次に示します。
"result"
{
"RequestStatus":"SUCCESS",
"SourceTransactionSystem":"GPR"
"SourceTransactionId":"AASHIP190404",
"OrderNumber":"531258",
"SourceTransactionLineId": null,
"FulfillLineId": null,
"HoldCode":"DOO_SHIP_ALL"
}
]
ソース・オーダーAASHIP190404のオーダー・ヘッダーでDOO_SHIP_ALL保留をリリースするリクエスト・ペイロードの例を次に示します。
{
"processRequestOfflineAfter": 240,
"holdRequests": [
{
"SourceTransactionSystem" : "GPR",
"SourceTransactionId": "AASHIP190404",
"HoldCode": "DOO_SHIP_ALL",
"HoldReleaseComments": "Order released from hold",
"HoldReleaseReasonCode": "QAREL"
}
]
}
これがレスポンスです。
{
"result": [
{
"RequestStatus": "SUCCESS",
"SourceTransactionSystem": "GPR",
"SourceTransactionId": "AASHIP190404",
"OrderNumber": "531257",
"SourceTransactionLineId": null,
"FulfillLineId": null,
"HoldCode": "DOO_SHIP_ALL"
}
]
}
SourceTransactionLineId属性
SourceTransactionLineId属性を使用して、行を識別します。
- オーダー・ヘッダーに保留を適用するには、SourceTransactionIdの値を含めますが、SourceTransactionLineIdおよびFulfillLineIdの値は含めません。 Order Managementは、販売オーダーのヘッダーおよびすべての販売オーダー明細に保留を適用します。
- 履行明細に保留を適用または解除するには、オーダー明細エンティティにFulfillLineIdの値を含める必要があります。 オーダー明細エンティティでSourceTransactionLineIdを使用して、オーダー明細のすべての履行明細に保留を適用またはリリースすることもできます。
- REST APIは、SourceTransactionLineIdを参照する履行明細にのみ保留を適用します。
- SourceTransactionLineIdを使用する場合、REST APIは、オーダー明細エンティティの一部である履行明細に対してのみ保留を適用し、オーダー明細エンティティに保留を適用しません。
バックグラウンドでのリクエストの処理
REST APIリクエストにProcessRequestOfflineAfter属性を含めて、コール元のアプリケーションに制御を戻すまでに待機する秒数を指定し、リクエストをバックグラウンドで実行できます。
- REST APIは、ProcessRequestOfflineAfterの設定方法に関係なく、リクエストをすぐに処理します。
- リクエストの進捗をモニターするには、販売オーダーを問い合せる必要があります。
使用できる値は次のとおりです。
ProcessRequestOfflineAfter値 | REST APIの機能 |
---|---|
0 (ゼロ)または -1より小さい任意の値(負の1)。 | バックグラウンドでリクエストをすぐに処理します。 |
-1 (negative 1). | 5分後にタイムアウトし、バックグラウンドでリクエストの処理を続行します。 |
1から240の値。 | 指定した秒数後にタイムアウトし、バックグラウンドでリクエストの処理を続行します。 |
240を超える任意の値。 | 240秒後にタイムアウトし、バックグラウンドでリクエストの処理を続行します。 |
タイムアウト
何らかの理由で保留を適用または解除するREST APIリクエストが240秒後にタイムアウトした場合、次のようなメッセージが表示されることがあります:
Order management is processing your request to apply or release a hold on the sales order. Query for order {ORDER_NO} to monitor your request.
リクエストがタイムアウトした場合、Order Managementはバックグラウンドで処理を続行し、このメッセージをRESTレスポンスで送信します。 このメッセージが表示された場合は、REST APIを使用して販売オーダーを再度問い合せ、リクエストが成功したかどうかを判断します。 正常に完了しない場合は、数分待ってから再試行してください。