インベントリー・スナップショット

Inventory service は、出荷ノードと流通グループの両方のレベルで在庫状況スナップショットの公開を要求するオプションを提供します。

在庫スナップショットは、発行時の使用可能な部品、安全、予約済み、および不足の各数量の現在の在庫数量を提供します。 スナップショットを要求すると、システムは、アイテムとノードのすべての組み合わせの在庫状況をダウンストリーム・システムに公開します。 詳しくは、 新しいイベントフォーマットをご覧ください。

スナップショット・イベントは、 productAvailablitydgAvailabilityChange イベントとほぼ同じである。 主な違いは、スナップショットはユーザーによってのみトリガーされるのに対し、可用性変更イベントはインベントリの更新に基づいてトリガーされることである。

以下のスナップショットを要求できます。
新規イベント
  • 製品在庫状況スナップショット (productAvailabilitySnapshot.v2)
  • ディストリビューション・グループの可用性スナップショット (dgAvailabilitySnapshot.v2)
  • 供給スナップショット (supplySnapshot)
  • 需要スナップショット(demandSnapshot)。
詳しくは、 新しいスナップショットイベントのフォーマットを参照してください。
スナップショットのイベントは、可用性変更イベントとは異なり、ダウンストリーム・システムが異なるハンドラー・ロジックを提供するのに役立ちます。
新規イベント
製品在庫状況スナップショット
Trigger Node Availability by date V2 スナップショット API では、供給と需要がゼロのアイテムが設定可能な日数の間更新されない場合、それらのアイテムはスナップショットから削除されます。 削除期間は availability.removeZeroAvailabilityItemAfterDays インベントリ・テナントの設定 この値は30~7300日(20年)の間でなければならず、この機能を無効にするには 0に設定する。 デフォルト値は730日(2年)。
詳細については、 製品入手可能性スナップショットイベントを参照。
流通グループ・スナップショット
この Trigger Distribution Group Availability by Date V2 Snapshot APIでは、供給量と需要量がゼロのアイテムは、設定可能な期間内に更新されない場合、スナップショットから削除されます。 この期間は availability.removeZeroAvailabilityItemAfterDays インベントリ・テナントの設定で設定できます。
  • 値は30~7,300日(最長20年)、機能を無効にするには 0 でなければならない。
  • デフォルト値は 730日で、2年に相当する。
詳細は、 ディストリビューション・グループのスナップショット・ イベントを参照してください。
スナップショットの提供
供給スナップショットを使用すると、出荷ノードまたは分配グループのコンテキストで現在の供給在庫ピクチャーをエクスポートできます。これは、出荷ノードまたは分配グループ内のすべてのアイテムの供給ピクチャーです。 このスナップショットを開始するには、ターゲットの出荷ノード、在庫タイプ、およびアイテムを指定して PublishAll snapshot API を開始します。
詳細については、「API および供給状況のスナップショットイベント」を参照 Trigger Supply Snapshot してください。
デマンド・スナップショット
需要スナップショットを使用すると、出荷ノードまたは分配グループのコンテキストで現在の需要在庫ピクチャーをエクスポートできます。これは、出荷ノードまたは分配グループ内のすべてのアイテムの需要ピクチャーです。 ターゲットの出荷ノード、在庫タイプ、およびアイテムを指定して PublishAll snapshot API を開始することで、スナップショットを開始できます。
詳細については、「APIおよび需要のスナップショットイベント」を参照 Trigger Demand Snapshot してください。

スナップショットの追加のフィルター基準の指定

ノードおよび分配グループの可用性スナップショットで説明されているように、コンテキスト内で出荷ノードおよび分配グループを定義する必要があります。 システムがシステム内のすべてのアイテムを公開していることを考慮すると、これは有益ではなく、ダウンストリーム・コンシューマーの使用量が増加する可能性があります。

, productClass および unitOfMeasure 属性を itemId、 および V2 ノードと配布グループのスナップショットの V1 両方でフィルタリングオプションとして使用できます。
注: 属性 deliveryMethod は、 ノードおよび配布 V2 グループの可用性スナップショットにのみ適用されます。
たとえば、イベントスナップショットを次のようにフィルタリングし SKU1024 、配信 SHP 方法を指定できます:
{
  "shipNode": "Matrix-Store-001",
  "distributionGroupId": "US_Group",
  "itemId": [ "SKU1024"],
  "productClass": [ "NEW"],
  "unitOfMeasure": ["EACH"],
  "deliveryMethod" : ["SHP"]
}
以下は、 V2 スナップショットトリガーである。
  • v2/configuration/events/productAvailabilitySnapshot.v2/publish_all
  • v2/configuration/events/dgAvailabilitySnapshot.v2/publish_all
注: 以前のバージョンとの互換性のため、 V1 スナップショットトリガー API も同じアイテムフィルターをサポートしています。
詳細については、以下を参照してください。 IBM® Sterling Intelligent Promising API

スナップショット完了状況の処理

スナップショット要求の応答ペイロードで、 JobId を使用して完了状況を照会することができます。
"job": {
  "href": "https://api.watsoncommerce.ibm.com/inventory/{tenantID}/v1/jobs/{jobID}"
}
注: ジョブのタイム completeTs スタンプは、すべてのアイテムのスナップショット生成が完了し、データストアからイベントがステージングされたことを示すにすぎません。 これは、対応するすべてのイベントが、WebhookやCOSなどの下流システムに完全に公開されたことを保証するものではありません。

イベントを見逃さないようにするため、お客様はイベントメッセージのダウンロード completeTs を だけに頼らないでください。 その代わりに、 EOFが検出された後、パイプラインに残っているファイルのアップロードを完了させるための、設定可能なバッファ時間を追加する必要があります。

V2 において、ダウンストリームのコンシューマーは、一意に生成された snapshotId によってスナップショットイベントを識別することができる。 詳細
については、「 新しいイベント形式」 をご覧ください。

この一意の識別子が、進行中の処理タスクを追跡する。

スナップショット・パブリッシングの終了時に、 inventory service は、特定の snapshotId 要求が完了したことを示すファイルの終わり (EOF) イベントをパブリッシュします。 EOF データは、 snapshotIdtenantIdで構成されます。
{
    "type": "dgAvailabilitySnapshot.v2",
    "datacontenttype": "application/json",
    "id": "2a8d36a3-485b-3fc0-bd15-d530625a6ec5",
    "specversion": "1.0",
    "time": "2021-03-10T00:00:00.288Z",
    "data": {
      "tenantId": "tenant1",
      "snapshotId": "ceadcf7a-c82b-4957-b87c-42dc8d62c008"
    }
}

スナップショットのイベントしきい値の検討

デフォルトでは、スナップショット・イベントにはシステム内のすべての項目が含まれます。 スナップショット・イベントのイベントしきい値の考慮事項を適用して、ダウンストリーム・イベント・コンシューマーに不可欠なスナップショットのみをパブリッシュすることができます。 イベントのしきい値の設定に関する詳細については、「 イベントのしきい値 」を参照してください。

ノード・レベルと分配グループ・レベルの両方でスナップショットを要求する場合、 considerEventThreshold=true フラグを使用してイベントしきい値の考慮事項をアクティブ化できます。 アクティブ化されると、システムは、テナント・レベル、アイテム・レベル、ノード・レベル、および分配グループ・レベルで定義されたしきい値レベルを考慮します。 この動作は、可用性変更イベントと同じです。

追加されたオプションとして、スナップショット要求中に数量がゼロのイベントを抑止することができます。これにより、ダウンストリーム・システムは、使用できない項目を更新することで、リソースを使用しなくなります。 イベントを抑止するには、 suppressZeroQty=true フラグを使用します。 有効にすると、値がゼロの手持ちおよび将来の可用性を持つすべてのイベントが省略されます。

ノード可用性スナップショットのサンプル。
{
  "shipNode": "Matrix-Store-001",
  "distributionGroupId": "US_Group",
  "suppressZeroQty": false,
  "considerEventThreshold": false
}