供給同期の透明性

Inventory Visibility は、大量の供給同期要求を毎日処理します。これらの要求のほとんどは、出荷ノードまたはアイテム、あるいはその両方から発信されます。 インベントリーの同期化処理は計算に時間がかかり、処理時間が長くなります。 そのため、履行管理者は、要求の状況を可視化し、ネットワーク・インベントリーが正確であることを確認することができます。

Inventory Visibility には、トランザクション ID とサプライ同期要求の状況を追跡する機能が用意されています。 同期要求が行われると、API は対応するサプライ同期トランザクション ID を返します。この ID を使用して、要求の状況と詳細を見つけることができます。

供給同期透過性機能によって提供されるさまざまなレベルの機能は、以下のとおりです。

  • サプライ・シンク・トランザクション・ステータス (v1/supplies/transaction/{supplySyncTransactionId}/status)
  • 同期トランザクション記録の供給 (v1/supplies/transaction/{supplySyncTransactionId}/records)
  • 供給履歴 (v1/supplies/history)。

複数の同期要求の包括的なビューを提供するために、履行管理者は供給同期バッチ処理を使用できます。 この機能により、1 つ以上の提供同期要求を単一のバッチ ID で参照できるようになり、正常に処理されたレコード数に関する洞察が得られます。 また、失敗したレコードを取得して再処理することもできます。

  • 同期バッチ処理 (/v1/supplies) を指定します。
  • 同期トランザクション検索 (v1/supplies/transaction/status) を指定します。

供給同期ワークフローの例

履行管理者が ITEM001 の複数の同期要求を NODE01ITEM100 にプッシュするシナリオを考えてみます。 ITEM001-ITEM010ITEM011-ITEM020などの単一ノードに対して、10 個の固有のアイテムを使用して 10 個の供給同期要求が行われると想定します。 要求ごとに、履行管理者は同じ batchIdを適用します。 標準の供給同期要求とは別に、供給同期 API (/v1/supplies) は、応答ペイロードで supplySyncTransactionId を返すようになりました。これは、更新の状況をトレースするために使用できます。

{
  "supplySyncTransactionId": "d088bba7-8d08-4d87-885a-fb24323b1cg9",
  "batchId": "a014bba7-8d08-4d87-885a-fb24323b1cf8"
}

その後、履行管理者は、サプライ同期トランザクション状況 API (v1/supplies/transaction/{supplySyncTransactionId}/status) を使用して、単一要求 [ITEM001-ITEM010] の全体的な状況を確認し、推定完了時刻と各状況のレコード数を表示することができます。

供給同期トランザクション・レコード (v1/supplies/transaction/{supplySyncTransactionId}/records) を使用して、供給同期の元の要求入力を確認することもできます。 各レコードのステータスも、レコードがイベントによってパブリッシュされているかどうかを確認するための詳細とともに提供されます。 イベントが無効になっている場合、 published 属性は常に false です。

履行管理者は、トランザクション ID を使用して個々の同期要求を確認できます。 ただし、トランザクション ID を忘れた場合は、供給同期トランザクション検索を使用できます。 サプライ同期トランザクション検索 API (v1/supplies/transaction/status) は、一定期間にわたって、または batchIdによって、トランザクションを見つけることができます。 応答は、 supplySyncTransactionIdとともに、一致する複数のトランザクション状況レコードで構成されます。

いずれかの供給同期レコードが失敗した場合、履行管理者は、供給履歴 API (v1/supplies/history) を使用して sourceTs 値および updatedTs 値を検証し、個々のレコードを再同期する必要があるかスキップする必要があるかを判別することができます。

供給の透明性をアクティブ化し、バッチ ID に要求を関連付ける手順

サプライ同期の一部として recordTransaction クエリー・パラメーターを設定することにより、サプライ同期の透過性トラッキングをアクティブにすることができます。 供給同期要求を受け入れると、システムは自動的に supplySyncTransactionIdを生成します。これを使用して、要求の状況と詳細を識別できます。 1 つ以上の提供同期要求を単一のバッチに関連付けるために使用できる 3 つの照会パラメーターは、以下のとおりです。

  • batchId -現在の要求を、システムによって生成された既存の batchId に関連付けます。
  • newBatch -新規バッチを開始する場合は true に設定されます。 システムは、トランザクションに対して新しい固有の batchId を生成します。
  • endOfBatch -この要求がバッチの終わりであることを示します。これにより、すべてのレコードが処理されたときに状況を完了にすることができます。
表 1. 同期 API 照会パラメーターを指定してください
名前 説明
newBatch 新規バッチを開始するには、true に設定します。 システムは自動的に batchIdを生成します。 true (デフォルトは false)。
batchId このトランザクションを、一致する batchIdを持つ既存のバッチに関連付けます。 システム生成 UUID。 [UUID.randomUUID()]
endOfBatch バッチの終了を宣言します。 true (デフォルトは false)。
recordTransaction 供給同期透過性トラッキングをアクティブにします。 これは、単一トランザクションまたはバッチとして使用できます。 バッチ・ユース・ケースでは、 newBatch 照会パラメーターとともに recordTransaction=true を渡す必要があります。 同じバッチに関連付けられているすべての子は、透過性トラッキングの対象として自動的に考慮されます。 true (デフォルトは false)
例を示します。
/{tenantId}/v1/supplies?recordTransaction=true&newBatch=true
/{tenantId}/v1/supplies?recordTransaction=true&batchId=a014bba7-8d08-4d87-885a-fb24323b1cf8
/{tenantId}/v1/supplies?recordTransaction=true&endOfBatch=true&batchId=a014bba7-8d08-4d87-885a-fb24323b1cf8
提供同期応答ペイロードのサンプル。
{
  "supplySyncTransactionId": "d088bba7-8d08-4d87-885a-fb24323b1cg9",
  "batchId": "a014bba7-8d08-4d87-885a-fb24323b1cf8"
}
注: バッチで受け入れられた最初のトランザクションは、親トランザクションと見なされます。
バッチに複数の要求を追加することにより、すべての同期プロセスにわたる包括的なビューが得られます。 これは、倉庫での 単一の在庫取得ジョブ から生じる複数の同期要求の全体的なステータスを確認できるため、有益です。

同期トランザクション状況の提供

トランザクション状況 API は、供給同期トランザクション状況の概略を提供します。 状況を表示するには、有効な supplySyncTransactionIdを指定する必要があります。 この API は、実行依頼されたタイム・スタンプ、推定完了期間、および完了タイム・スタンプを提供します。 推定完了期間は、同期プロセス全体が完了すると予想される時刻と、エラーが発生したかどうかを確認できる時刻を示します。 estimatedCompletionTime 状況は、ジョブが COMPLETED または EXCEPTION 状況でない場合に返されます。

トランザクションは、以下のいずれかのステータスになります。
  • QUEUED
  • IN_PROGRESS
  • EXCEPTION -実行中に 1 つ以上の例外が発生した場合。
  • COMPLETED
  • DELAYED -推定完了時刻より後にジョブが完了したとき。
同期処理中の任意の時点で、この API を使用して、リストされている各カテゴリーに該当するレコード・カウントを確認できます。
  • submitted -システムによって受け入れられたか、キューで待機しているレコードの数。
  • changed: 更新されたレコードの数。
  • unchanged: 在庫値が同一または古いためにスキップされたレコードの数。
  • failed: システムによる処理に失敗したレコードの数。失敗の原因として、無効な入力またはシステム・エラーが考えられます。
  • published - Supply.Change イベントを介して正常にパブリッシュされたレコードの数。 テナントでイベント・パブリッシュが有効になっていない場合、この数は 0 のままになります。
parent 」属性が最初に受け入れられたトランザクションである場合は、出力に表示されます。
注: データ・リフレッシュ・レートは 15 分です。

同期トランザクション・レコードの提供

この API を使用すると、トランザクションの一部として元の供給同期要求入力を検索することができ、結果をレコード状態 [SUBMITTED, CHANGED, UNCHANGED, FAILED] でフィルターに掛け、状態 [true] でパブリッシュすることができます。

各供給同期トランザクション・レコードは、その処理状態で許可されているシステムによって受け入れられた要求入力を表します。

この機能を使用すると、レコード内にある元の要求入力を使用して、 FAILED 状態のすべてのレコードを見つけることができます。 その後、新しい供給同期ジョブを再実行依頼して、誤りのあるレコードを訂正した後に供給レコードを再処理することができます。
注: データ・リフレッシュ・レートは 15 分です。

供給履歴

供給同期トランザクション・レコード API を使用して元のレコードを取得できる一方で、供給同期中に供給調整を行うことができる場合があります。 供給更新履歴 API は、システム上で最後に更新された供給レコードの真の値を返します。

この API は、ユーザー入力によって提供された sourceTS 、および供給レコードが最後に変更されたときのタイム・スタンプである updatedTsとともに、供給レコードの詳細を返します。 どちらの属性を使用しても、調整要求または同期要求を最初にシステムに対して行うかどうかを決定することができます。

同期トランザクション検索の提供

同期トランザクション状況およびレコードの提供 API を使用するには、 supplySyncTransactionIdを指定する必要があります。 ID の値が見つからない場合は、トランザクション検索 API を使用して、一致する supplySyncTransactionId または batchIdを見つけることができます。

検索では、これらのオプションによる照会がサポートされます。
  • submitted timestamp range -要求がユーザーによって送信された時刻。
  • completed timestamp range -トランザクションが完了された時刻。
  • status: [QUEUED, IN_PROGRESS, COMPLETED, EXCEPTION, DELAYED].
  • batchId
  • parent -すべてのトランザクションの親またはバッチの最初の要求を見つけます。