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

適用対象: Azure Logic Apps (従量課金プラン + Standard)

重要

2022 年 8 月 30 日、Common Data Service 2.0 (Microsoft Dataverse (レガシ) とも呼ばれる) のコネクタ操作は、現在の Microsoft Dataverse コネクタに移行されました。 従来の操作には "レガシ" ラベルが付けられますが、現在の操作には "プレビュー" ラベルが付けられます。 現在の Dataverse コネクタは、既存のまたは新しいロジック アプリ ワークフローで使用できます。 下位互換性のために、既存のワークフローは従来の Dataverse コネクタで引き続き動作します。 ただし、これらのワークフローを確認して、迅速に更新してください。

2023 年 10 月以降、レガシ バージョンは新しいワークフローでは使用できなくなりました。 既存のワークフローは引き続き機能しますが、新しいワークフローには現在の Dataverse コネクタの操作を使用する "必要があります"。 レガシ アクションとトリガーについて、シャットダウンの日付のタイムラインが発表されます。 詳細については、「Azure Logic Apps 用 Microsoft Dataverse (レガシ) コネクタは非推奨となり、別のコネクタに置き換えられます」をご覧ください。

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

このガイドでは、新しい潜在顧客行が作成されるたびにタスク行を作成するワークフローの作成方法について説明します。

コネクタのリファレンス

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

前提条件

Dataverse トリガーを追加する

サービスまたはシステムに接続するトリガーまたはアクションを追加しており、既存またはアクティブな接続がない場合、Azure Logic Apps には、接続の種類によって異なる接続情報を提供するように求めるプロンプトが表示されます。次に例を示します。

  • アカウントの資格情報
  • 接続に使う名前
  • サーバーまたはシステムの名前
  • 使用する認証の種類
  • 接続の文字列

この例では、行が追加、更新、または削除されたときにワークフローを開始する Dataverse トリガーを使用します。

Note

Dataverse コネクタには、操作固有のパラメーターとデータベース固有のパラメーターがあります。 たとえば、テーブルを選択すると、そのテーブルで使用できるパラメーターは、他のテーブルとは異なります。

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

  2. デザイナーで、こちらの一般的な手順に従って、When a row is added, modified or deleted (行が追加、変更、または削除された場合) という名前の Microsoft Dataverse トリガーを追加します。

  3. 求められた場合は、Dataverse 環境またはデータベースにサインインします。

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

    トリガーの例については、「行が追加、変更、または削除された場合」を参照してください。

    Screenshot shows Standard workflow designer and example trigger.

  5. 完了したら、ロジック アプリ ワークフローを保存します。 デザイナー ツールバーで、保存を選択します。

  6. 次に、トリガーの起動時にワークフローが実行するアクションを少なくとも 1 つ追加します。 たとえば、Dataverse アクションや、トリガーからの出力に基づいて電子メールを送信するアクションを追加できます。

Dataverse アクションを追加する

サービスまたはシステムに接続するトリガーまたはアクションを追加しており、既存またはアクティブな接続がない場合、Azure Logic Apps には、接続の種類によって異なる接続情報を提供するように求めるプロンプトが表示されます。次に例を示します。

  • アカウントの資格情報
  • 接続に使う名前
  • サーバーまたはシステムの名前
  • 使用する認証の種類
  • 接続の文字列

この例では、データベースに新しい行を追加する Dataverse アクションを使用します。

Note

Dataverse コネクタには、操作固有のパラメーターとデータベース固有のパラメーターがあります。 たとえば、テーブルを選択すると、そのテーブルで使用できるパラメーターは、他のテーブルとは異なります。

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

  2. デザイナーで、こちらの一般的な手順に従って、Add a new row (新しい行を追加する) という名前の Microsoft Dataverse アクションを追加します

  3. 求められた場合は、Dataverse 環境またはデータベースにサインインします。

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

    アクションの例については、「新しい行を追加する」を参照してください。

    Screenshot shows Standard workflow designer and example action.

  5. 完了したら、ロジック アプリ ワークフローを保存します。 デザイナー ツールバーで、保存を選択します。

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

ワークフローのテスト

ワークフローをテストしてトリガーするには、次の手順に従います。

  1. ワークフロー メニューで、 [概要] を選択します。

  2. [概要] ツール バーで、[実行]>[実行] の順に選びます。

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

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

[List rows]\(行の一覧表示\) など、行を返すアクションの場合、指定されたフィルターに基づいて行を返す ODATA クエリを使用できます。 たとえば、アクティブなアカウントの行のみを返すようにアクションを設定できます。 アクションの例の詳細については、「行を一覧にする」を参照してください。

  1. デザイナーのアクションで、[高度なパラメーター] の一覧を開いて、[行のフィルター] プロパティを選択します。

    Screenshot shows Standard workflow and property named Filter rows.

  2. アクションに表示された [行のフィルター] プロパティで、たとえば次のような ODATA クエリ式を入力します。

    statuscode eq 1

    Screenshot shows Standard workflow and property named Filter rows with ODATA query.

$filter システム クエリ オプションの詳細については、Web API 結果のフィルター処理を使用したデータのクエリに関するページを参照してください。

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

[List rows]\(行の一覧表示\) など、行を返すアクションの場合、指定された順序に基づいて行を返す ODATA クエリを使用できます。順序は、アクションが返す行によって異なります。 たとえば、アカウント名で整理された行を返すようにアクションを設定できます。 アクションの例の詳細については、「行を一覧にする」を参照してください。

  1. デザイナーのアクションで、[高度なパラメーター] の一覧を開いて、[並べ替え条件] プロパティを選択します。

    Screenshot shows Standard workflow, a Dataverse action, and Sort By property.

  2. アクションに表示された [並べ替え] プロパティに、並べ替えに使用する列名 (名前など) を入力します。

    Screenshot shows Standard workflow, a Dataverse action, and Sort By property with column name.

$orderby システム クエリ オプションの詳細については、Web API 並べ替え条件を使用したデータのクエリに関するページを参照してください。

フィールドのデータ型

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

Note

Dataverse コネクタには、操作固有のパラメーターとデータベース固有のパラメーターがあります。 たとえば、テーブルを選択すると、そのテーブルで使用できるパラメーターは、他のテーブルとは異なります。

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

フィールド データ型 説明
テキスト フィールド 1 行テキスト 1 行のテキスト、またはテキスト データ型を含む動的コンテンツのいずれかが必要です。たとえば、次のプロパティがこれに該当します。

- 説明
- カテゴリ
整数フィールド 整数 整数、または整数データ型を含む動的コンテンツのいずれかが必要です。たとえば、次のプロパティがこれに該当します。

- 達成率
- 期間
日付フィールド 日付と時刻 MM/DD/YYY 形式の日付、または日付データ型を含む動的コンテンツのいずれかが必要です。たとえば、次のプロパティがこれに該当します。

- 作成日
- [開始日]
- 実際の開始日
- 実際の終了日
- 期限
別のエンティティ行を参照するフィールド 主キー GUID などの行 ID と参照型の両方が必要です。つまり、動的コンテンツ リストの値は機能しません。たとえば、次のプロパティがこれに該当します。

- 所有者: 有効なユーザー ID またはチーム行 ID である必要があります。
- 所有者の種類: 参照型である必要があります。たとえば、それぞれ、systemusersteams となります。

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

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

Tasks テーブルの例で、[Add a new row] \(新しい行の追加\) アクションを使用して、他のエンティティ行 (特にユーザー行とアカウント行) に関連付けられる新しい行を作成するとします。 このアクションでは、関連するプロパティの必要なデータ型と一致する値を使用して、エンティティ行の ID と参照型を指定する必要があります。

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

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

問題のトラブルシューティング

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

Dataverse コネクタは、Dataverse データベース内の callbackregistrations エンティティを使用して、データベース エンティティの変更に関する通知を取得および要求するロジック アプリ ワークフローに関する情報を格納します。 Dataverse 組織をコピーすると、すべての Webhook もコピーされます。 自分の組織にマップされているワークフローを無効にする前にその組織をコピーした場合、コピーされた Webhook も同じロジック アプリ ワークフローをポイントするため、複数の組織から通知を取得することになります。

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

  1. 通知を削除する Dataverse 組織を特定し、その組織にサインインします。

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

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

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

      Note

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

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

      イベントの種類 メッセージの整数
      作成 1
      削除 2
      更新プログラム 3
      CreateOrUpdate 4
      CreateOrDelete 5
      UpdateOrDelete 6
      CreateOrUpdateOrDelete 7

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

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

      Screenshot shows browser window and OData URI in address bar.

      Note

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

    3. 削除するコールバック登録の ID が見つかったら、これらの手順を実行します。

      1. Chrome ブラウザーで Chrome デベロッパー ツールを開きます (キーボード: F12)。

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

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

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

        重要

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

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

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

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

次のステップ