フルフィルメント プロバイダーの作成
このトピックでは、Microsoft Dynamics 365 Intelligent Order Management でフルフィルメント プロバイダーを作成するために必要な手順を説明します。
新しいプロバイダーの定義を作成する
新しいプロバイダーの定義を作成するには、次の手順を実行します。
- プロバイダー> カタログに移動します。
- 新規プロバイダー定義を選択します。
- 表示名 に、 「IOMLabFulfillmentProvider」 と入力します。
- 論理名 に、 「msdyn_IOMLabFulfillmentProvider」 と入力します。
- 説明 に「IOM ラボのフルフィルメント プロバイダー」と入力します。
- ロゴ に、「IOMLab.png」 を選択します。
- サービス タイプに、「Fulfillment」と入力します。
- 保存して終了を選択します。
ソリューションにプロバイダーの定義を追加する
ソリューションにプロバイダーの定義を追加するには、以下の手順で行います。
- Power App 作成者ポータル に移動し、新しく作成されたソリューション IOMLabProviders に移動します。
- 既存の追加 > IOM プロバイダー定義を選択します。
- IOMLabFulfillmentProvider を選択し、追加を選択してソリューションを追加します。
フルフィルメントのペイロードを Outlook に送信するプロバイダ アクションの作成
フルフィルメントのペイロードを Outlook に送信するプロバイダ アクションを作成するには、以下の手順に従います。
Power App Maker のポータルにアクセスし、ソリューションに移動します。
既定のソリューションを開きます。
新規 を選択します。
クラウド フローを選択し、「IOM Lab send to Fulfillment (Outlook)」 という名前をつけます。
トリガー タイプとして HTTP トリガーを選択する
- Power Automate トリガーを定義します。 これは通常、Webhook トリガー (推奨)、コネクタ トリガー、または Dataverse 挿入トリガーである HTTP エンドポイントです。 トリガーは、外部サービスが Intelligent Order Management に送信するデータを持っている場合に発生します。
HTTP トリガーで使用する JSON スキーマを、次に定義します。
{ "type": "object", "properties": { "text": { "title": "ProviderActionExecutionEventId", "type": "string", "x-ms-dynamically-added": true, "description": "Please enter your input", "x-ms-content-hint": "TEXT" }, "text_1": { "title": "EntityRecordId", "type": "string", "x-ms-dynamically-added": true, "description": "Please enter your input", "x-ms-content-hint": "TEXT" } }, "required": [ "text", "text_1" ] }
試行のスコープ追加します。
試行 スコープ内で、次のアンバウンド アクションの実行アクションを追加します:
- ProviderActionExecutionEventId: 動的コンテンツ配下で、ProviderActionExecutionEventId を選択します。
-
PowerAutomateRunId: 式に次を指定します:
workflow()['run']?['name']
。
ID で行を取得する アクションを追加し、次の操作を行います:
- テーブル名 に、「Fulfillment Orders」と入力します。
- 行 ID に、動的コンテンツの配下で EntityRecordId を選択します。
次のように Outlook.com から 電子メールを送信するアクションを追加します。 いくつかのメール コネクタが表示されますが、先に設定した Outlook.com を選択してください。
- 宛先 の行では、"placeholder@placeholder.com" がプレースホルダ テキストとして使用されます。 これは、後の手順でプロバイダ パラメータと置き換えることになります。
- 件名行の 「名前」 は、動的コンテンツ配下のフルフィルメント注文の取得の手順で取得されます。
- 本文に、次の式を指定します:
outputs('Get_fulfillment_order')['body']
リスト行 のアクションを追加するには、次のようにします:
- テーブル名 に、「Fulfillment Order Products」と入力します。
- Xml クエリの取り込み に、次を入力します:
<fetch> <entity name="msdyn_fulfillmentorderdetail"> <all-attributes /> <filter> <condition attribute="msdyn_fulfillmentid" operator="eq" value="@{triggerBody()['text_1']}"/> </filter> </entity> </fetch>
以下のように、メールの送信アクションを持つ、それぞれに適用コントロールを追加します:
- 値行は、動的コンテンツ 配下のフルフィルメント注文明細の取得の手順から取得されます。
- 名前行は、動的コンテンツ 配下のフルフィルメント注文明細の取得の手順から取得されます。
- 現在の項目は、動的コンテンツから選択されます。
ループ内で、配列変数に追加 アクションを以下のように追加します:
- 名前 に、「ProcessedFulfillmentOrderLines」を入力します。
- 値には、動的コンテンツ配下のフィルメント明細 ID を選択します。
ループ内で、さらに配列変数に追加 アクションを以下のように追加します:
- 名前 に、「ProcessedSalesOrderLines」を入力します。
- 値には、動的コンテンツ配下の営業明細 ID を選択します。
タイトル バー を 選択して、試行スコープを折りたたみます。
新規手順を選択し、「キャッチ」 という名前の別のスコープを追加します。
キャッチ スコープで、省略記号 ("...") を選択し、実行後の構成を選択して、以下のように構成します:
- 失敗 チェック ボックスをオンにします。
- タイムアウトのチェック ボックスをオンにします。
キャッチスコープで、アクションの追加 を選択し、変数の設定アクションを追加し、名前を 「実行結果に失敗」とします。
プロパティを次のように構成します:
- 名前 に、「ExecutionResult」を入力します。
- 値に、「false」と入力します。
新規手順を選択し、"Finally" という名前の別のスコープを追加します。
Finally スコープで、省略記号 ("...") を選択し、実行後の構成 を選択して、以下のように構成します:
- 正常に終了 チェック ボックスをオンにします。
- タイムアウトのチェック ボックスをオンにします。
- スキップされた チェック ボックスをオンにします。
- タイムアウトのチェック ボックスをオンにします。
Finally スコープで、"条件" ステップを追加し、ExecutionResult 変数を次のように true と比較します:
- 最初のフィールドで、ExecutionResult 変数を選択します。
- 2 番目のフィールドで、次と等しい を選択します。
- 3 番目のフィールドで、true を選択します。
はいの分岐で、 子フローの実行 アクションを追加し、「処理されたフルフィルメント注文明細行の業務イベントの発生」 と名前を変更します。
プロパティを次のように構成します:
- 子フリーで、「IOM ビジネスイベントの立ち上げ」 と入力します。
- BusinessEventDefinitionId に、063d85c8-60a4-eb11-9443-000d3a313675 と入力します。
- EntityRecordIdに、次の式を指定します:
string(variables('ProcessedFulfillmentOrderLines'))
はいの分岐で、 追加の子フローの実行 アクションを追加し、「販売注文の集約イベントの発生」 と名前を変更します。
プロパティを次のように構成します:
- LineBusinessEventDefinitionId に、ccf64002-61a4-eb11-9443-000d3a313675 と入力します。
- LineRecordIdで、次の式を指定します:
string(variables('ProcessedSalesOrderLines'))
。 - OrderBusinessEventDefinitionId に、48688716-61a4-eb11-9443-000d3a313675 と入力します。
条件の手順を折りたたみます。
アンバウンド アクションの実行アクションを追加します:
- アクション名に、「CompleteProviderActionExecution」と入力します。
- ExecutionResultには、動的コンテンツから ExecutionResult 変数を選択します。
- ProviderActionExecutionEventId で、 動的コンテンツ配下で、ProviderActionExecutionEventId を選択します。
保存を選択します。
Outlook のプロバイダー定義に、プロバイダー定義のロジック定義を追加する
Outlook のプロバイダー定義にプロバイダ定義のロジック定義を追加するには、以下の手順で行います。
- プロバイダー> カタログに移動します。
- 新たに作成した IOMLabFulfillmentProvider を選択します。
- メニュー バーで編集を選択します。
- ロジック定義タブを選択します。
- + 新規 IOM プロバイダー定義ロジックの定義を選択します。
- 表示名 には、「IOM ラボ フルフィルメントへの送信 (Outlook)」を入力します。
- 論理名 に、 「msdyn_LabSentToFulfillmentOutlook」 と入力します。
- プロバイダー定義に、「IOMLabFulfillmentProvider」と入力します。
- ロジックタイプに、「プロバイダー アクション」と入力します。
- ワークフロー名 に、「IOM ラボ フルフィルメントへの送信 (Outlook)」を入力します。
- タイムアウト分に、「2」と入力します。
- 最大再試行回数に、「3」と入力します。
- 説明 に、「IOM ラボ フルフィルメントへの送信 (Outlook)」を入力します。
- アクション タイプ には、、「フルフィルメントへの送信」を入力します。
- 保存を選択します。 これにより、メッセージ ハンドラー クラウドフローの JSON 表現が生成され、クライアント データフィールドが入力されます。
- プレースホルダーのメールを、以下のようにプロバイダーのパラメーターに置き換えます:
- クライアント データ フィールドのテキスト ブロック をコピーし、メモ帳に貼り付けます。
- テキスト ブロックで "placeholder@placeholder.com" を検索し、"{{IOMLabOutboundFulfillmentEmail}}" と置き換えます。
- 変更したテキスト ブロックを、クライアント データ フィールド にコピーしなおします。
- 保存して終了を選択します。
- 接続を選択します。 Microsoft Dataverse と Outlook.com の両方の接続参照定義が表示されます。
Outlook の IOMLabProviders ソリューションに、プロバイダー定義のロジック定義を追加する
Outlook の IOMLabProviders ソリューションにプロバイダ定義のロジック定義を追加するには、以下の手順で行います。
- Power App 作成者ポータル に移動し、新しく作成されたソリューション IOMLabProviders に移動します。
- 既存の追加 > IOM プロバイダー定義のロジック定義を選択します。
- IOM Lab フルフィルメントへの送信 (Outlook) を選択し、追加を選択してソリューションを追加します。
IOMLabProviders ソリューションへのプロバイダー定義接続参照の追加
IOMLabProviders ソリューションにプロバイダー定義の接続参照を追加するには、以下の手順に従います。
- Power App 作成者ポータル に移動し、新しく作成されたソリューション IOMLabProviders に移動します。
- 既存の追加 > IOM プロバイダー定義の接続参照を選択します。
- Microsoft Dataverse と Outlook.com プロバイダー定義の接続参照の両方を選択し、追加を選択してソリューションに追加します。
フルフィルメントのペイロードを RequestBin に送信するプロバイダ アクションの作成
フルフィルメントのペイロードを RequestBin に送信するプロバイダ アクションを作成するには、以下の手順に従います。
Power App Maker のポータルにアクセスし、ソリューションに移動します。
既定のソリューションを開きます。
新規 を選択します。
クラウド フローを選択し、「IOM Lab フルフィルメントに送信 (RequestBin)」 という名前をつけます。
トリガー タイプに、手動でフローをトリガーを選択し、次の操作を実行します:
- 入力の追加を選択し、テキストを選択し、最初のフィールドに 「ProviderActionExecutionEventId」 と入力します。
- 入力の追加を選択し、テキストを選択し、最初のフィールドに 「EntityRecordId」 と入力します。
変数の初期化アクションを作成します:
- 名前 に、「ExecutionResult」を入力します。
- タイプに、ブール値を選択します。
- 値に、「true」と入力します。
2 番目の変数の初期化アクションを作成します:
- 名前 に、「ProcessedSaleOrderLines」を入力します。
- タイプに、配列を選択します。
3 番目の変数の初期化アクションを作成します:
- 名前 に、「ProcessedFulfillmentOrderLines」を入力します。
- タイプに、配列を選択します。
試行のスコープ追加します。
試行 スコープ内で、次のアンバウンド アクションの実行アクションを追加します:
- ProviderActionExecutionEventId: 動的コンテンツ配下で、ProviderActionExecutionEventId を選択します。
-
PowerAutomateRunId: 式に次を指定します:
workflow()['run']?['name']
。
ID で行を取得する アクションを追加し、次のように構成します:
- テーブル名 に、「Fulfillment Orders」と入力します。
- 行 ID に、動的コンテンツの配下で EntityRecordId を選択します。
RequestBin コネクターから、次のようにフルフィルメント注文アクションを追加します。
- 本文に、動的コンテンツから本文を選択します。
リスト行 のアクションを追加するには、次のようにします:
- テーブル名 に、「Fulfillment Order Products」と入力します。
- Xml クエリの取り込み に、次を入力します:
<fetch> <entity name="msdyn_fulfillmentorderdetail"> <all-attributes /> <filter> <condition attribute="msdyn_fulfillmentid" operator="eq" value="@{triggerBody()['text_1']}"/> </filter> </entity> </fetch>
RequestBin 接続から、以下のように フルフィルメント注文明細の作成 アクションを持つ「それぞれに適用」コントロールを追加します:
- 値行は、動的コンテンツ 配下のフルフィルメント注文明細の取得の手順から取得されます。
- 現在の項目は、動的コンテンツから選択されます。
ループ内で、配列変数に追加 アクションを以下のように追加します:
- 名前 に、「ProcessedFulfillmentOrderLines」を入力します。
- 値には、動的コンテンツ配下のフィルメント明細 ID を選択します。
ループ内で、さらに配列変数に追加 アクションを以下のように追加します:
- 名前 に、「ProcessedSalesOrderLines」を入力します。
- 値には、動的コンテンツ配下の営業明細 ID を選択します。
タイトル バー を 選択して、試行スコープを折りたたみます。
新規手順を選択し、「キャッチ」 という名前を変更した別のスコープを追加します。
キャッチ スコープで、省略記号 ("...") を選択し、実行後の構成を選択して、以下のように構成します:
- 失敗 チェック ボックスをオンにします。
- タイムアウトのチェック ボックスをオンにします。
キャッチスコープで、アクションの追加 を選択し、変数の設定アクションを追加し、名前を 「実行結果に失敗」とします。
プロパティを次のように構成します:
- 名前 に、「ExecutionResult」を入力します。
- 値に、「false」と入力します。
新規手順を選択し、"Finally" という名前を変更した別のスコープを追加します。
Finally スコープで、省略記号 ("...") を選択し、実行後の構成 を選択して、以下のように構成します:
- 正常に終了 チェック ボックスをオンにします。
- タイムアウトのチェック ボックスをオンにします。
- スキップされた チェック ボックスをオンにします。
- タイムアウトのチェック ボックスをオンにします。
Finally スコープで、"条件" ステップを追加し、ExecutionResult 変数を次のように 「true」 と比較します:
- 最初のフィールドで、ExecutionResult 変数を選択します。
- 2 番目のフィールドで、次と等しい を選択します。
- 3 番目のフィールドで、true を選択します。
はいの分岐で、 子フローの実行 アクションを追加し、「処理されたフルフィルメント注文明細行の業務イベントの発生」 と名前を変更します。
プロパティを次のように構成します:
- 子フリーで、「IOM ビジネスイベントの立ち上げ」 と入力します。
- BusinessEventDefinitionId に、063d85c8-60a4-eb11-9443-000d3a313675 と入力します。
- EntityRecordIdに、次の式を指定します:
string(variables('ProcessedFulfillmentOrderLines'))
はいの分岐で、 追加の子フローの実行 アクションを追加し、「販売注文の集約イベントの発生」 と名前を変更します。
プロパティを次のように構成します:
- LineBusinessEventDefinitionId に、ccf64002-61a4-eb11-9443-000d3a313675 と入力します。
- LineRecordIdで、次の式を指定します:
string(variables('ProcessedSalesOrderLines'))
。 - OrderBusinessEventDefinitionId に、48688716-61a4-eb11-9443-000d3a313675 と入力します。
条件の手順を折りたたみます。
アンバウンド アクションの実行アクションを追加します:
- アクション名に、「CompleteProviderActionExecution」と入力します。
- ExecutionResultには、動的コンテンツから ExecutionResult 変数を選択します。
- ProviderActionExecutionEventId で、 動的コンテンツ配下で、ProviderActionExecutionEventId を選択します。
保存を選択します。
プロバイダー定義に、プロバイダー定義のロジック定義を追加する (RequestBin)
RequestBin のプロバイダー定義にプロバイダ定義のロジック定義を追加するには、以下の手順で行います。
- プロバイダー> カタログに移動します。
- 新たに作成した IOMLabFulfillmentProvider を選択します。
- メニュー バーで編集を選択します。
- ロジック定義タブを選択します。
- + 新規 IOM プロバイダー定義ロジックの定義を選択します。
- 表示名 には、「IOM ラボ フルフィルメントへの送信 (RequestBin)」を入力します。
- 論理名 に、 「msdyn_LabSentToFulfillmentRequestBin」 と入力します。
- プロバイダー定義に、「IOMLabFulfillmentProvider」と入力します。
- ロジックタイプに、「プロバイダー アクション」と入力します。
- ワークフロー名 には、「IOM ラボ フルフィルメントへの送信 (RequestBin)」を入力します。
- タイムアウト分に、「2」と入力します。
- 最大再試行回数に、「3」と入力します。
- 説明 に、「IOM ラボ フルフィルメントへの送信 (RequestBin)」を入力します。
- アクション タイプ には、、「フルフィルメントへの送信」を入力します。
- 保存を選択します。 これにより、メッセージ ハンドラー クラウドフローの JSON 表現が生成され、クライアント データフィールドが入力されます。
- 保存して終了を選択します。
- 接続を選択します。 Microsoft Dataverse、Outlook.com、RequestBin接続参照定義が表示されます。
プロバイダー定義にプロバイダー定義のパラメーターを追加する
プロバイダー定義のパラメーターをプロバイダ定義に追加するには、以下の手順で行います。
- パラメーターを選択します。
- + 新しい IOM プロバイダー定義のパラメーターを選択します。
- 表示名 に、 「IOMLAbOutboundFulfillmentEmail」 と入力します。
- データ型に、「テキスト」と入力します。
- プロバイダー定義に、「IOMLabFulfillmentProvider」と入力します。
- キー に、 「IOMLabOutboundFulfillmentEmail」 と入力します。
- 論理名 に、 「msdyn_IOMLabOutboundFulfillmentEmail」 と入力します。
- 必須であるに、「はい」と入力します。
- 保存して終了を選択します。
IOMLabProviders ソリューションに、プロバイダー定義のロジック定義を追加する (RequestBin)
RequestBin の IOMLabProviders ソリューションにプロバイダ定義のロジック定義を追加するには、以下の手順で行います。
- Power App 作成者ポータル に移動し、新しく作成されたソリューション IOMLabProviders に移動します。
- 既存の追加 > IOM プロバイダー定義のロジック定義を選択します。
- IOM Lab フルフィルメントへの送信 (RequestBin) を選択し、追加を選択してソリューションを追加します。
IOMLabProviders ソリューションへのプロバイダー定義接続参照の追加
IOMLabProviders ソリューションにプロバイダー定義の接続参照を追加するには、以下の手順に従います。
- Power App 作成者ポータル に移動し、新しく作成されたソリューション IOMLabProviders に移動します。
- 既存の追加 > IOM プロバイダー定義の接続参照を選択します。
- RequestBin を選択し、追加を選択してソリューションを追加します。
IOMLabProviders ソリューションへのプロバイダー定義パラメーターの追加
IOMLabProviders ソリューションをプロバイダ定義に追加するには、以下の手順で行います。
- Power App 作成者ポータル に移動し、新しく作成されたソリューション IOMLabProviders に移動します。
- 既存の > IOM プロバイダー定義のパラメーターを選択します。
- IOMLabOutboundFulfillmentEmail を選択し、追加を選択してソリューションを追加します。
クイック スタート ラボの次のステップ: ソリューションのエクスポート