次の方法で共有


Azure Logic Apps のワークフローから Microsoft Dataverse に接続する

適用対象: Azure Logic Apps (従量課金 + 標準)

Microsoft Dataverse データベースで動作するタスクを自動化するには、Azure Logic Apps のワークフローで Microsoft Dataverse コネクタを使用できます。

たとえば、行の作成、行の更新、その他の操作を実行するワークフローを構築できます。 また、Dataverse データベースから情報を取得し、その出力を他のアクションがワークフローで使用できるようにすることもできます。 たとえば、Dataverse データベースで行が追加、更新、または削除された場合、Office 365 Outlook コネクタを使用して電子メールを送信できます。

Dataverse コネクタは、以前は Common Data Service 2.0 コネクタと呼ばれ、もともと Dynamics 365 コネクタとして知られていました。 Dataverse コネクタを使用して、Microsoft Dataverse for Microsoft Dynamics 365 Sales、Microsoft Dynamics 365 Customer Service、Microsoft Dynamics 365 Field Service、Microsoft Dynamics 365 Customer Insights - Journeys、および Microsoft Dynamics 365 Project Service Automation にアクセスできます。

このガイドでは、Dataverse トリガーまたはアクションをワークフローに追加する方法と、パラメーター オプションがどのように機能するかを示します。

Important

2023 年 10 月以降、新しいワークフローでは現在の Dataverse コネクタ操作を使用する必要があります。 従来の Dataverse コネクタ操作は、新しいワークフローで使用できなくなりました。

旧バージョンとの互換性を維持するために、従来の Dataverse コネクタの操作は、非推奨の発表日から 1 年間、既存のワークフローで機能し続けることができました。 特定のシャットダウン日は存在しませんが、現在のコネクタ操作を使用するように既存のワークフローをすぐに更新してください。 詳細については、「 Azure Logic Apps の Microsoft Dataverse (レガシ) コネクタは非推奨となり、別のコネクタに置き換えられる予定です」を参照してください。

コネクタのリファレンス

操作、制限、その他の詳細など、コネクタの Swagger の説明に基づく技術情報については、 マネージド コネクタのリファレンス ページを参照してください。

[前提条件]

Dataverse トリガーを追加する

従量課金と Standard のどちらのロジック アプリ ワークフローを使用しているかに基づいて、対応する手順に従ってください。

  1. Azure portal で、ロジック アプリ ワークフローをデザイナーで開きます。

  2. 一般的な手順に従って、シナリオに適した Microsoft Dataverse トリガーを追加します。

    次の使用例は、行の 追加、変更、または削除時という名前のトリガーを続行します。

  3. プロンプトで、Dataverse 環境またはデータベースにサインインします。

  4. トリガー情報ボックスに、必要なパラメーター値を指定します。

    次の例は、サンプル トリガーを示しています。

    消費ワークフロー デザイナーと例示されるトリガーのスクリーンショット。

  5. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

  6. 次に、トリガーの起動時にワークフローが実行するアクションを少なくとも 1 つ追加します。

    たとえば、Dataverse アクションや、トリガーからの出力に基づいて電子メールを送信するアクションを追加できます。

Dataverse アクションを追加する

  1. Azure portal で、ロジック アプリ ワークフローをデザイナーで開きます。

  2. 一般的な手順に従って、シナリオに適した Microsoft Dataverse アクションを追加します。

    この例では、[ 新しい行の追加] という名前のアクションを続行します。

  3. プロンプトで、Dataverse 環境またはデータベースにサインインします。

  4. アクション情報ボックスに、必要なパラメーター値を指定します。

    次の例は、サンプル アクションを示しています。

    リソース消費ワークフロー デザイナーとアクションの例を示すスクリーンショット。

  5. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

  6. 必要に応じて、さらにアクションを追加します。

ワークフローのテスト

ワークフローを実行するには、次の手順に従います。

  1. デザイナーのツール バーで、[ 実行>実行] を選択します。

  2. ワークフローを実行するためにトリガーに必要な条件を再現します。

フィルターに基づいて行を返す

行の一覧表示アクションなど、行を返すアクションの場合は、ODATA クエリを使用して、指定したフィルターに基づいて行を返します。 たとえば、アクティブなアカウントの行のみを返すようにアクションを設定します。

  1. デザイナー内のアクションで、詳細パラメーターリストを開き、行のフィルターパラメーターを選択します。

    [行のフィルター] という名前のワークフローとパラメーターを示すスクリーンショット。

  2. アクションに表示される [行のフィルター] パラメーターに、ODATA クエリ式を入力します。次に例を示します。

    statuscode eq 1

    スクリーンショットは、ODATA クエリを使用した行のフィルターという名前の標準ワークフローとパラメーターを示しています。

詳しくは、次のドキュメントをご覧ください。

並べ替え順序に基づいて行を返す

行の一覧表示アクションなど、行を返すアクションの場合は、ODATA クエリを使用して特定のシーケンスの行を返します。 シーケンスは、アクションが返す行によって異なります。 たとえば、アカウント名で整理された行を返すようにアクションを設定できます。

  1. デザイナーのアクションで、[詳細パラメーター] リストを開き、[並べ替え基準] パラメーターを選択します。

    ワークフロー、Dataverse アクション、並べ替えパラメーターを示すスクリーンショット。

  2. アクションに表示される [ 並べ替え] パラメーターに、並べ替えに使用する列名 (名前など) を入力 します

    スクリーンショットは、ワークフロー、Dataverse アクション、および列名を持つ Sort By パラメーターを示しています。

詳しくは、次のドキュメントをご覧ください。

フィールド データ型

トリガーまたはアクションでは、フィールド値のデータ型がフィールドの必要なデータ型と一致する必要があります。 この要件は、値を手動で入力するか、動的コンテンツ リストから値を選択するかに関係なく適用されます。

たとえば、 Tasks という名前のテーブルがあるとします。 このテーブルには、そのテーブルにのみ適用されるフィールドがあり、他のテーブルには独自のフィールドがあります。 Tasks テーブルの例については、次の表に、いくつかのサンプル フィールド型と、それらのフィールドの値に必要なデータ型について説明します。

フィールド データの種類 Description
テキスト フィールド 1 行テキスト 1 行のテキストまたはテキスト データ型を持つ動的コンテンツが必要です。たとえば、次のプロパティが必要です。

- 説明
- カテゴリ
整数フィールド 整数 次のプロパティなど、整数データ型を持つ整数または動的コンテンツが必要です。

- 達成率
- 期間
日付フィールド 日付と時間 MM/DD/YYYY 形式の日付または日付データ型を持つ動的コンテンツが必要です。たとえば、次のプロパティが必要です。

- 作成日
- 開始日
- 実際の開始
- 実際の終了
- 期限
別のエンティティ行を参照するフィールド プライマリキー GUID などの行 ID と参照の種類の両方が必要です。これは、動的コンテンツ リストの値が機能しないことを意味します。たとえば、次のプロパティです。

- 所有者: 有効なユーザー ID またはチーム行 ID である必要があります。
- 所有者の種類: systemusersteamsなどの参照の種類である必要があります。

- 関連: アカウント ID や連絡先行 ID などの有効な行 ID である必要があります。
- 関連の種類: 参照型である必要があります。たとえば、それぞれ、accountscontacts となります。

- 顧客: アカウント ID や連絡先行 ID などの有効な行 ID である必要があります。
- 顧客の種類: accounts または contactsなどのルックアップタイプである必要があります。

タスク テーブルの例では、[新しい行の追加] アクションを使用して、他のエンティティ行 (具体的にはユーザー行とアカウント行) に関連付けられた新しい行を作成するとします。 そのため、このアクションでは、関連するプロパティの予想されるデータ型と一致する値を使用して、それらのエンティティ行の ID と参照の種類を指定する必要があります。

  • ユーザー ID を指定する Owner プロパティと、参照の種類を指定する systemusers プロパティに基づいて、アクションは新しい行を特定のユーザーに関連付けます。

  • 行 ID を指定する [関連] プロパティと、参照の種類を指定する accounts プロパティに基づいて、アクションは新しい行を特定のアカウントに関連付けます。

結果のアクションは次の例のようになります。

スクリーンショットには、ワークフロー コード ビュー、新しい行アクションの追加、ID と参照の種類に関連付けられている新しいタスク行が示されています。

問題解決

複数の環境からの呼び出し

Dataverse コネクタは、Dataverse データベースの callbackregistrations エンティティを使用して、データベース エンティティの変更に関する通知を取得し、必要とするロジック アプリ ワークフローに関する情報を格納します。 Dataverse 組織をコピーすると、すべての Webhook が自動的にコピーされます。 組織にマップされているワークフローを無効にする前に組織をコピーした場合、コピーされた Webhook は同じロジック アプリ ワークフローを指します。 これらのワークフローは、複数の組織から通知を受け取ります。

不要な通知を停止するには、次の手順に従って、それらの通知を送信する callbackregistrations エンティティを組織から削除します。

  1. ** 削除したい通知がある Dataverse 組織を特定して、サインインしてください。

  2. Chrome ブラウザーで、削除するコールバック登録を見つけます。

    1. callbackregistrations エンティティ内のデータを表示できるように、次の OData URI ですべてのコールバック登録の汎用リストを確認します。

      https://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations:

      値が返されない場合は、このエンティティ型を表示するアクセス許可がない場合や、正しい組織にサインインしていない可能性があります。

    2. トリガーするエンティティの論理名 entityname と、ロジック アプリ ワークフロー (メッセージ) に一致する通知イベントをフィルター処理します。 各イベントの種類は、次のようにメッセージ整数にマップされます。

      イベントの種類 メッセージ整数
      Create 1
      削除​​ 2
      Update 3
      作成または更新 4
      作成または削除 5
      更新または削除 6
      作成または更新または削除 (CreateOrUpdateOrDelete) 7

      次の例は、サンプル組織の次の OData URI を使用して、Createという名前のエンティティでnov_validation通知をフィルター処理する方法を示しています。

      https://fabrikam-preprod.crm1.dynamics.com/api/data/v9.0/callbackregistrations?$filter=entityname eq 'nov_validation' and message eq 1

      アドレス バーのブラウザー ウィンドウと OData URI を示すスクリーンショット。

      同じエンティティまたはイベントに対して複数のトリガーが存在する場合は、 createdon 属性や _owninguser_value 属性などの追加のフィルターを使用してリストをフィルター処理できます。 所有者ユーザーの名前が /api/data/v9.0/systemusers({id})の下に表示されます。

    3. 削除するコールバック登録の ID を見つけたら、次の手順に従います。

      1. Chrome ブラウザーで、Chrome 開発者ツール (キーボード: F12) を開きます。

      2. ウィンドウの上部にある [ コンソール ] タブを選択します。

      3. コマンド ライン プロンプトで、次のコマンドを入力します。このコマンドは、指定されたコールバック登録を削除する要求を送信します。

        fetch('http://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations({ID-to-delete})', { method: 'DELETE'})

        Important

        OData または API 応答ページ自体など、非統合クライアント インターフェイス (UCI) ページから要求を行っていることを確認します。 そうしないと、app.js ファイル内のロジックがこの操作に干渉する可能性があります。

    4. コールバック登録が存在しなくなったことを確認するには、コールバック登録の一覧を確認します。

'callbackregistrations' エンティティの重複

Standard ワークフローでは、インスタンスの再割り当てやアプリケーションの再起動などの特定の条件下で、Microsoft Dataverse トリガーによって重複する実行が開始されます。 この重複する実行により、Dataverse データベースに重複する callbackregistrations エンティティが作成されます。 Dataverse トリガーで始まる標準ワークフローを編集する場合は、この callbackregistrations エンティティが重複しているかどうかを確認します。 重複が存在する場合は、重複する callbackregistrations エンティティを手動で削除します。