REST APIを使用したサプライ・チェーン・オーケストレーションの管理
サプライ・チェーン・オーケストレーションの管理に役立つREST APIを使用します。
供給ソースの取得
社内資材転送ごとに供給ソースを選択および使用する方法に柔軟性を追加します。
availableSupplySources REST APIを使用して、内部資材転送のリクエストを履行できる供給ソースを取得します。 最も効果的に要求を履行できる1つのソースを取得するか、どのぐらい効果的に要求を履行できるかに従ってランク付けされた6つまでのソースのリストを取得します。 各ソースで現在手持の実績数量を取得します。
- findBestAvailableSupplySourceファインダを使用して、最も効果的なソースを取得します。
- findAllAvailableSupplySourcesファインダを使用して、すべての供給ソースのリストを取得します。 このファインダでは、それぞれが要求をどの程度効果的に履行するかに応じてランク付けされた最大6つのソースを取得します。
- 各供給ソースの現在手持の実績数量を取得します。
- データの読取りのみが可能なため、GET操作のみを使用できます。
詳細は、「Oracle Supply Chain Management CloudのREST API」に移動し、availableSupplySourcesを検索します。
エラー・メッセージの改善
REST APIエラー・メッセージに詳細を追加し、それを使用して、REST APIを介してインポートする際に問題のトラブルシューティングおよび修正に必要な時間を短縮します。
REST APIが供給要求の処理時に返す各エラー・メッセージのプリフィクスとして、SupplyOrderReferenceNumber属性およびSupplyOrderReferenceLineNumber属性の値を追加します。 プリフィクスを使用して、要求の問題をトラブルシューティングします。
REST APIから返されるエラー・メッセージの例を次に示します。
{
"title": "Bad Request",
"status": "400",
"o:errorDetails": [
{
"detail": "SupplyOrderReferenceNumber:A190102, SupplyOrderReferenceLineNumber:100, MessageType:ERROR, MessageText: Supply Chain Orchestration can't create the supply order because the destination subinventory code, source subinventory code, or both aren't correct."
},
{
"detail": "SupplyOrderReferenceNumber:A190102, SupplyOrderReferenceLineNumber:100, MessageType:ERROR, MessageText: Supply Chain Orchestration can't create the supply order because the shipment priority isn't correct. Make sure you specify a valid shipment priority in the supply request."
}
]
}
検証に合格した供給リクエスト明細の処理
供給リクエストの作成REST APIのAllowPartialRequestFlag属性を使用して、検証に合格した供給リクエスト明細を処理します。
AllowPartialRequestFlag有効
この値を使用すると、一部の明細が検証に失敗した場合でも、供給リクエストで検証に合格する明細を引き続き履行できます。
AllowPartialRequestFlag EnabledをYに設定すると、REST APIは次のようになります:
- 検証に合格したすべての明細を処理します。
- 検証に合格しない明細は処理されず、エラーとしてマークされます。
- 少なくとも1つの明細が検証に合格した場合、供給オーダーを作成します。 オーダーには、検証に合格した明細のみが含まれます。
検証の場合:
- すべての明細で成功します。 RESTは正常なレスポンスを返します。
- いずれかの行で失敗します。 RESTはエラー・レスポンスを返します。 レスポンスには、成功した行および失敗した行に関するメッセージが含まれます。 失敗した各行のエラーを修正し、ペイロードから成功した行を削除してから、リクエストを送信する必要があります。 成功明細を削除しない場合、REST APIによって、成功明細に必要なより多くの供給が作成される可能性があります。
AllowPartialRequestFlag使用不可
AllowPartialRequestFlag EnabledをNに設定し、供給リクエストのいずれかの明細が検証に合格しない場合、REST API:
- 検証に合格する明細を含め、リクエスト内のすべての明細を否認します。
- 供給オーダーを作成しません。
- 失敗した最初の行のレスポンスにのみ、エラー・メッセージを含めます。 複数の明細が検証に合格しない場合は、個別のRESTリクエストを発行して、各明細のトラブルシューティングと修正を行う必要がある場合があります。 たとえば、5つの明細が検証に合格しない場合、エラーの処理時に5つの個別のRESTリクエストを発行する必要がある場合があります。
REST APIは、すべての明細が検証に合格した場合にのみ供給オーダーを作成します。
AllowPartialRequestFlagのデフォルト値は「N」です。 AllowPartialRequestFlagに値を指定しない場合、またはAllowPartialRequestFlagをまったく含めない場合、インポートではAllowPartialRequestFlagがNであるとみなされます。
例
要求ペイロード:
{
"InterfaceSourceCode": "EXT",
"InterfaceBatchNumber": "akp1_020104",
"SupplyRequestStatus": "NEW",
"SupplyRequestDate": "2022-12-19T11:00:03.503-08:00",
"SupplyOrderSource": "EXT",
"SupplyOrderReferenceNumber": "akp1_020104",
"SupplyOrderReferenceId": 1,
"ProcessRequestFlag": "Y",
"AllowPartialRequestFlag": "Y",
"supplyRequestLines": [
{
"InterfaceBatchNumber": "akp1_020104",
"SupplyOrderReferenceLineNumber": "1",
"SupplyOrderReferenceLineId": 1,
"SourceOrganizationCode": "M11",
...
"DestinationTypeCode": "INVENTORY",
"SupplyType": "TRANSFER",
"distributionDetails": [
{
"DistributionNumber": "-200702"
,
"projectDFF": [
{
"projectId_Display": "BAT-PJCBAT-Proj-04",
"taskId_Display": "1.2"
}
]
}
]
},
{
"InterfaceBatchNumber": "akp1_020104",
"SupplyOrderReferenceLineNumber": "2",
"SupplyOrderReferenceLineId": 2,
...
"DestinationTypeCode": "EXPENSE",
"SupplyType": "BUY"
},
{
"InterfaceBatchNumber": "akp1_020104",
"SupplyOrderReferenceLineNumber": "3",
"SupplyOrderReferenceLineId": 3,
...
"DestinationTypeCode": "INVENTORY",
"SupplyType": "TRANSFER",
"distributionDetails": [
{
"DistributionNumber": "200702"
,
"projectDFF": [
{
"projectId_Display": "BAT-PJCBAT-Proj-04",
"taskId_Display": "1.2"
}
]
}
]
}
]
}
エラー・レスポンス
{
"title": "Bad Request",
"status": "400",
"o:errorDetails": [
{
"detail": "SupplyOrderReferenceNumber:230101, SupplyOrderReferenceLineNumber: 1, MessageType:SUCCESS, MessageText:Line Created Successfully"
},
{
"detail": "SupplyOrderReferenceNumber:230101, SupplyOrderReferenceLineNumber:2, MessageType:ERROR, MessageText:The supply order wasnt created because the destination subinventory code, source subinventory code, or both arent correct.Stores"
},
{
"detail": "SupplyOrderReferenceNumber:230101, SupplyOrderReferenceLineNumber: 3, MessageType:SUCCESS, MessageText:Line Created Successfully"
}
]
}