Dataverse ローコード プラグインを使用する (プレビュー)

[このトピックはプレリリース ドキュメントであり、変更されることがあります。]

Microsoft Dataverse は、ローコード プラグインによって、より効率的なデータ アーキテクチャを実現し、クライアント側のワークロードを軽減するための強力なソリューションを提供します。これらのプラグインは、Dataverse 内で特定のコマンド セットを実行する再利用可能なリアルタイム ワークフローであり、サーバー側で実行され、パーソナライズされたイベント ハンドラーによってトリガーされます。

重要

  • これはプレビュー機能です。
  • プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能を公式リリースの前に使用できるようにすることで、顧客が一足先にアクセスし、そこからフィードバックを得ることができます。

従来、プラグインは .NET Framework アセンブリにコンパイルされたカスタム クラスとして作成され、Dataverse 内にアップロードされて登録されていました。 しかし、ローコード プラグインの導入により、最小限のコーディングで、あるいはコーディングをまったく必要とせず、手動で登録することなく、これらのイベント ハンドラーを作成できます。

ローコード プラグインは Dataverse データベース内に保存され、Power Apps と Power Automate にシームレスに統合できます。 ワークフローの動作は Power Fx の式言語を使用して定義され、Dataverse コネクタを使用して Power Platform ビジネス データや外部データ ソースに直接接続できます。 ローコード プラグインを使用すると、作成者は最小限のコーディングの専門知識で複雑なワークフローを迅速に構築でき、その結果、より合理的で効率的なデータ アーキテクチャを実現できます。

サーバー側ロジックの利点

サーバー側ビジネス ロジックを定義すると、次のようないくつかの利点があります:

  • セキュリティの強化。 サーバー側ロジックはサーバー上で実行されるため、機密データやプロセスへの不正アクセスを防ぐことができます。
  • パフォーマンスの向上。 ビジネス ロジックをサーバー上で実行することにより、クライアントとサーバー間で転送する必要があるデータの量を減らすことができ、処理時間が短縮されます。
  • 一貫性と信頼性。 サーバー側ロジックは、ビジネス ルールがすべてのクライアントに一貫して適用されることを保証し、エラーや不整合のリスクを軽減します。
  • メンテナンスとアップグレードが容易に。 ビジネス ロジックをサーバーに一元化することで、複数のクライアントを更新する必要がなく、1 か所で変更を行えるため、メンテナンスや更新が容易になります。
  • スケーラビリティ。 サーバー側ロジックはクライアント側ロジックよりも簡単に拡張でき、パフォーマンスが向上し、より大きなワークロードを処理できます。

ローコード プラグイン

Dataverse でサポートされているローコード プラグインには 2 種類あります:

タイプ トリガー パラメーターのサポート サポート対象 スコープ
即時 手動で実行 はい グローバルとテーブル
自動 Dataverse テーブル イベント いいえ テーブル

すべてのローコード プラグインには、次の共通のプロパティがあります:

Property Description
表示名称 人間が判読できるプラグインの名前。 一度作成すると変更できません。
件名 プラグインの内部名。 これは、コードおよびデータベース操作のコンポーネントを識別するためにプラットフォームによって使用されます。 一度作成すると変更できません。
Description プラグインに関する追加のコンテキスト (目的、動作、またはその他の重要な詳細) を提供するために使用されます。
ソリューション コンポーネントをグループ化し、他の環境にエクスポートするために使用されます。 ソリューション の詳細をご覧ください。
これは、Power Fx の式言語を使用して定義された、アクションまたは計算を実行するために使用できるカスタム関数です。 Power Fx は、Power Apps キャンバス アプリで使用される式言語であり、ローコード プラグインで使用できるように拡張されています。詳細については、サポートされている機能 を参照してください。

インスタント ローコード プラグインは、ユーザーが手動でトリガーするカスタム コード ロジックです。 カスタム入出力パラメーターを使用できます。

固有のプロパティ:

Property Description
範囲 プラグインを特定のテーブルに関連付けるために使用されます。 テーブル (エンティティとして表示) またはグローバルのいずれかに設定できます。テーブル (エンティティ) スコープはプラグインが特定のテーブル レコードのコンテキストでトリガーされることを意味し、グローバル スコープは操作がテーブルに関連付けられていないことを意味します (詳細)。
Parameters パラメーターを使用すると、プラグインとプラグインを実行するコンテキストの間で情報を受け渡すことができ、さまざまな状況で再利用できるビジネス ロジックを設計しやすくなります。

入力パラメーター は、プラグインにデータを提供するために使用され、Power Fx の式で指定したさまざまな値を渡すことで関数の動作を制御できます。

出力パラメーター は、関数またはメソッドの結果を取得してプログラムでさらに使用できるようにします。

サポート対象データ型:
  • ブール型
  • String
  • 浮動
  • 10 進法
  • DateTime
  • 整数

キャンバス アプリから、または Power Automate クラウド フローで統合する方法の詳細: ローコード プラグインを統合する

プラグインのアクセス許可

設計時

Power Platform 環境でシステム カスタマイザーまたはシステム管理者のセキュリティ ロール メンバーシップを持つ作成者は、その環境にあるすべてのプラグインにアクセスできます。 カスタム セキュリティ ロールを使用して、ローコード プラグインへのアクセスを制限できます。

実行時間

プラグインが呼び出されると、呼び出したユーザーのコンテキストでプラグイン定義に含まれるテーブル データ (式の一部であるテーブル、またはテーブルが自動プラグインの設定に関連付けられている場合) にアクセスします。

つながり

セキュリティ ロール を使用すると、プラグイン内のコネクタ アクセスを組織内の特定のユーザー セットに制限できます。 作成、読み取り、更新、または削除の権限を持つロールを指定します。

ローコード プラグインを作成するための前提条件

注意

Dataverse ローコード プラグインを有効にする一連の更新プログラムを展開中です。 これらのローコード プラグインは、Power Platform カスタム ページ機能 に基づいて構築されたユーザー インターフェイスを使用します。 これらの更新プログラムの一環として、システム メンテナンス アカウントを使用して環境に展開しています。 状況によっては、これらのアカウントが 非常用アカウント として表示されるという予期せぬ副作用が発生することがあります。 この動作をできるだけ早く修正するよう取り組んでいます。 その間は、次のアプリが Power Platform 管理センターに表示される可能性があります:

  • Dataverse Accelerator アプリ – <モデル駆動型アプリ>、グローバル管理者アカウントによって作成されます
  • Dataverse アクション ページ - <キャンバス アプリ>。これはローコード プラグインが構築されるカスタム ページで、グローバル管理者アカウントに関連付けられたユーザー名で作成されます。
  • 概要ページ - <キャンバス アプリ>。これはローコード プラグインが構築されるカスタム ページで、グローバル管理者アカウントに関連付けられたユーザー名で作成されます。
  • Power Platform 環境におけるシステム管理者またはシステム カスタマイザーのセキュリティロール メンバーシップ。
  • Dataverse アクセラレータ アプリへのアクセス。

ヒント

2023 年 10 月 1 日より、すべての新しい環境には Dataverse アクセラレータ アプリが自動的にインストールされます。 すでに Dataverse アクセラレータがインストールされている場合は、Dataverse アクセラレータを手動で更新できます。

Dataverse アクセラレータ を更新する

  1. 手順に従って 環境内のライセンスされたアプリを表示します
  2. Dataverse Accelerator がすでにインストールされており、アップデートが利用可能な場合は、項目の横の表にその旨が示されています。
  3. Dataverse Accelerator を選択し、コマンド バーで 更新 を選択します。

ヒント

Microsoft - Power CAT パブリッシャーの アプリの自動更新 を有効にして、利用可能な場合にアップデートを自動的に受信します (2023 年 10 月 1 日より後に作成された新しい環境には必要ありません)。

注意

以前にオプションの コネクタ用ローコード プラグイン ソリューションをインストールしている場合は、2023 年 6 月 29 日より後に更新すると、そのソリューションは自動的に削除されます。 これらの機能はメイン ソリューションで利用できるようになります。

インスタント ローコード プラグインを作成する

  1. Dataverse アクセラレータ アプリを再生します。
  2. インスタント プラグインの作成 カードを選択します。 インスタント プラグインの作成カード
  3. 表示名 を入力します。
  4. 必要に応じて、パラメーターを定義します:
    • 新しい入力パラメーター または 新しい出力パラメーター を選択し、ラベルとデータ型を入力します。
    • 必要に応じて、さらに入力および出力パラメーターを追加します。
  5. エディターに Power Fx の式を入力します。
    • 式の入力パラメーターをラベル名で参照します。
    • 出力パラメーターは、{ Out: "Return value" } のように中括弧内で参照する必要があります。
    • Filter() や LookUp() などのデータ収集関数を使用して Dataverse テーブルを参照します。
    • スコープがエンティティに設定されている場合は、ThisRecord を使用して、ThisRecord.'Account Name' などのプラグイン実行に関連付けられたテーブル行の列値にアクセスします。

    ヒント

    ボックスで intellisense に注意してください。 赤の下線部は無効です。 黄色の波線は、ロジックが委任制限の影響を受ける可能性があることを意味します。 委任可能な関数 を使用して、委任の問題を回避します。

  6. 必要に応じて、詳細オプション を展開して、ソリューションスコープ、または 説明 を修正します。
  7. 保存 を選択します。
  8. インスタント ローコード プラグインをテストします

: 2 つの整数の合計を計算します。

  • 2 つの入力パラメーター XY (両方とも整数型) と 1 つの出力パラメーター Z (文字列型) を作成します。
  • 次の数式を使用します: {Z: X + Y }

Dataverse アクセラレータ アプリのインスタント プラグインの例

自動ローコード プラグインを作成する

  1. Dataverse アクセラレータ アプリを再生します。
  2. 自動プラグインの作成 カードを選択します。 自動プラグインの作成カード
  3. 次の値を指定します。
    • 名前: インスタント プラグインの名前 (入力検証 など) を入力します。
    • テーブル: アカウント など、プラグインを関連付けるテーブルを選択します。
    • 行がある場合にこのプラグイン ルールを実行。 プラグインを呼び出すデータ イベントを指定します。
  4. エディターに Power Fx の式を入力します。
    • Filter() や LookUp() などのデータ収集関数を使用して Dataverse テーブルを参照します。
    • ThisRecord を使用して、ThisRecord.'Account Name' などのプラグイン実行に関連付けられたテーブル行の列値にアクセスします。
  5. 必要に応じて、詳細オプション を展開して、プラグインが保存されている ステージ (実行する必要がある場合) と ソリューション を修正します。
  6. 保存を選択します。
  7. 自動化されたローコード プラグインをテストします

ローコード プラグインで Power Platform コネクタを使用する

Power Platform コネクタをローコード プラグインで使用すると、SQL Server、Salesforce、SharePoint などの Dataverse 以外のシステムからのデータや機能を、複雑なコーディングやカスタム開発を必要とせずに簡単に統合できます。

ローコード プラグインでコネクタを使用するための前提条件

ローコード プラグインでコネクタ アクションを使用する

コネクタカスタム コネクタ をローコード プラグインの Power Fx の式から簡単に使用できます。

  1. 使用するコネクタへの接続を作成します。
  2. Dataverse 環境で接続への 接続参照を追加 します。
  3. ローコード プラグインの Power Fx 式エディターで、接続参照の名前 (表示名ではなく、new_connectorName のような接頭辞とアンダースコアが付いた内部名) を入力します。
  4. Intellisense には、利用可能なアクションが表示されます。 必要なアクションを選択し、必須パラメーターを入力します。

ローコード プラグインでコネクタを使用する前に、コネクタの ドキュメント を確認して、入力および出力パラメーターが正しく渡されていることを確認します。

詳細:

注意

  • 現時点では、すべてのコネクタ アクションがサポートされているわけではありません。
  • プラグインの式から Dataverse テーブルに接続するために Dataverse コネクタを使用しないでください。 代わりに、ネイティブの Power Fx 関数を使用してコレクションを操作します: Filter、Search、LookUpPatchCollect、および Set。ここでは、列はグローバル変数として扱われます。

ローコード プラグインをテストする

インスタント プラグインをテストする

  1. ホーム画面 で、リストからインスタント プラグインを選択し、コマンド バーの テスト を選択します。 保存後にコマンド バーのインスタント プラグイン エディターからこの画面にアクセスすることもできます。 ローコード プラグインのテストを選択する

  2. ローコード プラグインで定義されている入力パラメータの値を指定し、実行 を選択します。 実行を選択してローコード プラグインをテストする

応答を確認します。

ヒント

出力パラメーターを使用して、予想される動作と結果を検証します。 それ以外の場合は、テスト時に成功または失敗のみが表示されます。

自動プラグインをテストする

データ イベントを呼び出して自動プラグインをテストします。 式で定義された予想される変更を検証して、プラグインが正常に実行されたかどうかを確認します。

ヒント

プレビュー中に、Power Apps でテーブル エディタを使用して、関連するデータ イベントを呼び出すことができます。

  1. Power Appsにサインインし、テーブル に移動して、プラグイン テーブルを選択します。
  2. コマンド バーで編集を選択します。
  3. このビューから直接行を作成、更新、または削除します。 または、行を選択して既定のフォームで行を開き、コマンド バーの フォームを使用して行を編集 を選択します。

ローコード プラグイン統合する

キャンバス アプリまたはカスタム ページからインスタント プラグインを呼び出す

  1. Dataverse アクセラレータ アプリで:
    1. リストでインスタント プラグインを選択します。
    2. コマンド バーで コード スニペットのコピー を選択します。 インスタンスのローコード プラグインを呼び出す
    3. コピーした数式をテキスト エディターまたはメモ帳 (簡単に参照できる場所) に貼り付けて保存します。
  2. Power Apps の場合
    1. Power Apps studio でキャンバス アプリ (またはカスタム ページ) を作成または編集します。
    2. 左側のナビゲーションの データ ソース タブで、+ 新しいデータ ソース を選択し、Dataverse コネクタから 環境 オプションを検索します。
    3. 次のコンポーネントをキャンバスに挿入します:
    • テキストまたは数値の テキスト入力、ブール値の トグル など、各パラメーターのデータ型に対応する入力コントロールを追加します。
    • プラグインのスコープがテーブルにバインドされている場合は、同じテーブルに関連付けられたコンボ ボックスを追加して、入力を選択できるようにします。
    • ボタン を追加してプラグインを呼び出します。
  3. コピーしたプラグインの式をボタンの OnSelect プロパティに貼り付けます。
  4. 各入力パラメーター Value をマップして、対応する入力コントロールを参照します:
    • 式が Environment.new_CalculateSum({ X: Value, Y: Value }); の場合、次のように書き換えることができます: Environment.new_CalculateSum({ X: TextInput1.Text, Y: TextInput2.Text });
    • 式がバインドされている場合は、Environment をテーブル表示名に置き換え、プラグインにアクセスします。
  5. 出力パラメーターがローコード プラグインに定義されている場合:
    1. Set() または UpdateContext() の式で応答をキャプチャします: Set( ActionResult, Environments.CalculateSum({ X: TextInput1.Text, Y: TextInput2.Text }) );。 変数をラベルに表示します。 あるいは、Notify() の式を使用して、通知にデータを表示します。
  6. アプリを再生し、コマンド バーでコマンドを選択してローコード プラグインを実行します。

キャンバス アプリで Power Fx から直接 Dataverse アクションを呼び出す 方法について詳細をご確認ください。

Power Automate クラウド フローからインスタント プラグインを呼び出す

  1. クラウド フローで、Microsoft Dataverse コネクタから新しいアクションを追加します。
  2. バインドしていないアクションを実行する または バインド済みアクションを実行する というアクションを選択します。
  3. プラグイン (接頭辞付きで固有の名前を持つ) を選択します。
  4. すべての入力パラメータ (存在する場合) に値を指定します。

Dataverse Web APIからインスタント プラグインを呼び出す

Web API ドキュメントからカスタム API を呼び出す非バウンド アクション または テーブルにバインドされた関数 セクションの手順に従います (プラグインの適切なスコープに応じて)。

ヘルプ + サポートに問い合わせる

Dataverse Accelerator ソリューションのインストールやローコード プラグインに関する問題、受信したエラーなどについては、ヘルプ + サポート エクスペリエンス を使用し、次の情報を記載してください:

  • 問題の種類 - Dataverse Web API および SDK
  • 問題のサブタイプ - Dataverse 用アクセラレータ キット

作成できるローコード プラグインの例

ローコード プラグインの作成方法の例については、Dataverse ローコード プラグインの例 (プレビュー) を参照してください

制限

  • 既存のキャンバス アプリ内の新しいプラグインにアクセスするには、環境言語オブジェクトを再追加する必要があります。 環境テーブル データ ソースを既存のキャンバス アプリに追加した後に作成されたプラグインについては、Power Fx 環境言語オブジェクトを削除して再追加する必要があります。 そうすれば、更新されたプラグインのリストがアクションとして表示されます。

  • Intellisense では、式のテーブルを参照する場合、自動プラグインで明示的な表記が必要です。 [@Accounts] のように、(Accounts ではなく) 角かっこと @ 記号 を用いた、次の曖昧さ回避構文を使用します。

  • ネスト化されたサポート。 プラグインは、Power Fx 式から Microsoft が公開したファーストパーティーのアクションを呼び出すことしかできません。

  • Collect のシナリオには Patch が必要なものもあります。 一部、Collect() が機能しないシナリオがあります。 回避策は、以下の列の入力例に示すように Patch() を使用することです。 自動化プラグインを作成する場合は、Power Fx 式で参照される各テーブルに @ を追加します。

    Patch(Faxes,
        Collect(Faxes, { Subject : "Sub1" } ),
        { Regarding : First(Accounts) }
    )
    
  • ローコード プラグインがコネクタとやり取りし、DLP が使用されている場合、管理者は DLP を使用した接続の作成をブロックできます。 ただし、Dataverse 環境内の既存の接続参照は引き続き機能します。 管理者がコネクタとのローコード プラグインのやり取りをすべてブロックする必要がある場合は、組織設定 Allowconnectorsonpowerfxactions を無効にすることができます。 この設定はデフォルトで有効になっており、通常の SDK メソッド (WebAPI、SDK、PowerShell など) によって無効にすることができます。 次のように、ローコード インスタント プラグインを使用してこれを無効にできます:

    Patch(Organizations, First(Organizations), { 'Enable connectors on power fx actions.': 'Enable connectors on power fx actions. (Organizations)'.No })
    
  • コネクタを使用するプラグインは、特定のフィールドからの結果のみを出力できます。 このため、コネクタ応答からの特定のプリミティブ値を出力値にマップする必要があります。

カスタム コネクタの制限があるローコード プラグイン

カスタム コネクタを備えたローコード プラグインがある場合は、接続参照またはフローの前に、最初にカスタム コネクタをインポートする必要があります。

ご利用環境で、カスタム コネクターがソリューションに含まれていない場合は、カスタム コネクターのみを含む別のソリューションをインポートしてください。 このインポートは、実際のソリューションをインポートする前に実行してください。 これを最初にする必要があります。なぜなら、その他のソリューション コンポーネントをインポートできる前に、Azure は事前にカスタム コネクタを登録する必要があるからです。

カスタム コネクタとフローを含むソリューションをインポートすると、Azure は、接続参照またはフローの登録中にカスタム コネクタを登録できなくなります。 これは、以前は別のソリューションにインポートされていなかったカスタム コネクタの接続参照にも当てはまります。 Azure がカスタム コネクタを登録していない場合、インポートは失敗するか、インポートを開始できません。

詳細: ソリューションでのカスタム コネクタの作成: 既知の制限事項

参照

ローコード プラグイン Power Fx (プレビュー)

Power Apps の Dataverse ローコード プラグインで事前構築済みプロンプトを使用する