状態フレームワーク アーキテクチャ

重要

このトピックに記載されている一部またはすべての機能は、プレビュー リリースの一部として使用可能です。 コンテンツおよび機能は、変更されることがあります。

この記事では、Microsoft Dynamics 365 Intelligent Order Management の状態フレームワーク アーキテクチャについて説明します。

状態フレームワーク アーキテクチャは、2022 年 10 月リリースで Dynamics 365 Intelligent Order Management に導入された新しい概念です。 状態フレームワークは、エンティティの現在の状態が別の状態に遷移できるかどうかを実行時に確認することで、業務プロセス ルールを検証する方法です。 たとえば、新規 から 進行中 への遷移は、定義されていれば成功しますが、完了 から 進行中 への遷移ではエラーがスローされます。

ユーザーは、固有の状態、ステータス、および遷移を追加できます。 ただし、最初から用意されている定義はカスタマイズできます。

状態フレームワーク データ モデル

状態フレームワーク データ モデルでは、一部の更新プログラムと新しい追加プログラムを現在のデータ モデルに導入します。

次の図は、状態フレームワーク データ モデルに追加されたテーブルを示しています。

State framework data model.

データ モデルへの更新プログラム

エンティティの状態およびステータスの列

状態フレームワークでは、Intelligent Order Management の一部であるエンティティに新しい 2 つの列が導入されます。 これらの列は、ローカライズ可能な 状態 および ステータス 状態フィールドをサポートするために追加されました。 また、状態フレームワークでは、ユーザー インターフェイス (UI) でレコードを編集可能にしない方がよいことを示す新しい ReadOnly フィールドも導入されます。

フィールド Description
状態 状態定義 テーブルで定義されているエンティティの状態。
ステータス エンティティが現在の状態である理由の詳細な説明。
ReadOnly UI でレコードを編集可能にしないほうがよい場合は、値を True に設定します。 それ以外の場合、False に設定します。

データ モデルへの新しい追加プログラム

状態定義テーブル

状態定義 テーブルでは、各エンティティで許容される一連の状態を作成できます。 これらの状態には、各状態のさまざまな動作を示すメタデータを含む関連のプロパティが含まれます。

メモ

状態は、オーケストレーション体験の一部として有効な遷移を判断するために使用されます。

フィールド Description
状態定義 状態のグローバル一意識別子 (GUID)。
関連付けられたエンティティ 状態が属しているエンティティ。
詳細 状態の名前。
状態定義プロパティ 関連付けられているメタデータの検索。
読み取り専用 Trueの値 は、 エンティティに読み取り専用としてマークします。

状態定義理由テーブル

状態定義理由 テーブルには、指定された状態である理由に関する追加の詳細が示されますが、有効な状態遷移を示す一部ではない場合があります。 たとえば、状態は 保留中 ですが、理由が オーダー残 または 事前注文 である場合 があります。

フィールド Description
状態定義理由 ステータスの GUID。
状態 ステータスが関連付けられている状態。
詳細 ステータスの名前/説明。

状態定義プロパティ テーブル

状態定義プロパティ テーブルには、各状態の追加のメタデータが含まれています。

フィールド Description
状態定義プロパティ プロパティの GUID。
タイムラインの位置 UI の 進行状況バー タイムライン コントロールに表示される状態の順序。 (このコントロールは、2022 年 10 月リリースで導入されます。)

状態遷移テーブル

状態遷移 テーブルには、ビジネス イベントが発生した場合に起きる状態遷移の一覧が表示されます。 ビジネス イベントは、現在の状態が許容される状態の場合にのみ状態を設定します。

フィールド Description
状態遷移 状態遷移の GUID。
ビジネス イベント定義 レコードが属しているビジネス イベントを特定するための、ビジネス イベント定義 テーブルの検索。
ソースの状態 遷移元として許容されるソースの状態。
ターゲットの状態 許容されるソース状態から状態が遷移している場合に設定するターゲットの状態。
ターゲットの状態の理由 許容されるソース状態から状態が遷移している場合に設定するターゲットのステータス。

次の表に、このテーブルのデータの例を示します。

ビジネス イベント定義 ソースの状態 ターゲットの状態 ターゲットの状態の理由
手持在庫確認成功 進行中 フルフィルメント進行中 在庫確認成功
手持在庫確認成功 保留中 フルフィルメント進行中 在庫確認成功
手持在庫確認失敗 進行中 保留中 オーダー残の保留

シナリオ

ビジネス イベントの遷移はありません

発生 しているビジネス イベントの 状態遷移 テーブルでレコードが見つからない場合、検証は自動的に成功しますが、状態 または ステータス の値は設定されません。

新しい状態と遷移の追加

新しい状態と遷移を追加するには、次の手順に従います。

  1. 新しい状態定義を追加します。

  2. 必要に応じて、新しい状態定義の理由を追加します。

  3. 新しい状態を追加してから以下の次の手順を行います。

    1. 新しいビジネス イベントに新しい状態遷移を関連付けます。
    2. ソース フィールドに許容するソースを設定します。 許容するソースごとに 1 行追加します。
    3. 状態 フィールドに、ビジネス イベントが発生した場合に設定する状態を設定します。
    4. ステータス フィールドに、ビジネス イベントが発生した場合に設定する理由を設定します。
  4. 必要なプロパティ (ReadOnly または タイムライン) を追加します。