Dataverseの操作|Power Automate

目次

サンプルで使用するテーブル

このページでは以下2つのテーブル使用します。

  • Parent
  • Child

2つのテーブル間には以下のリレーションを設定しています。

Parent(1)→(N)Child

行IDとOData IDについて

Power AutomateからDataverseのレコードを操作する際、「行ID」または「OData ID」を使用します。

行ID

「行ID」はテーブル作成時に作成される「一意識別子」の列で、レコードを作成すると自動でGUID形式のデータが設定されます。

主にレコードの取得や参照型の列(親テーブル)を操作する際に使用します。

OData ID

OData IDは、Dataverseから該当のレコードの情報を取得するAPIのURIが自動で設定されるプロパティです。

主にレコード間でリレーションを設定する際に使用します。

※ODataについてはこちら

アクション「IDで行を取得する」

「IDで行を取得する」アクションを使用すると、引数「行ID」で指定したレコードを取得できます。

行IDは文字列を直接指定することも、事前のアクションで取得したレコードの情報を使用して指定することも可能です。

事前に取得した子レコードから親レコードを取得する

事前に取得した子レコードから、関連する親レコードの情報を取得する際は、引数「行ID」に「親テーブル名(値)」を指定します。

アクション「行を一覧にする」

アクション「行を一覧にする」を使用すると、指定したテーブルのレコードをリストで取得することができます。

オプションとして引数を指定することも可能です。

  • 列の選択:取得する列を指定できます。全ての列の情報を取得する必要がない場合は、このオプションを使用することでやり取りするデータのサイズを減らすことができます。
  • 行のフィルター:OData形式のフィルター式を記載し、取得する行をフィルターできます。
  • 並べ替え順、行数:取得する行の並べ替えや、取得する最大行数を指定できます。

列に特定の値が入るレコードを列挙するフィルター式

ODataフィルター式を使用することで、特定の列に特定の値が含まれるレコードのみを列挙することができます。

例えばParentテーブルに以下の情報が含まれるとき、

列「Num(物理名「cr861_num」)」が「3」のレコードを取得する式は以下のようなフィルター式になります。

cr861_num eq 3

「eq(イコール)」以外のODataフィルタークエリについてはこちら

親レコードに紐づく子レコードを取得するフィルター式

任意の親レコードに紐づく子レコードを一覧で取得する場合、子テーブルに対し「行を一覧にするアクション」の[行のフィルター]オプションを使用します。

「行を一覧にする」アクションで子レコードを取得した際、以下の列に親レコードのGUIDが格納されています。

_親レコードの論理名_value

そこで任意の親レコードに紐づく子レコードを取得する際は、子テーブルに対し「行を一覧にする」アクションを使用し、フィルタークエリに以下の式を指定します。

_「親テーブルの論理名」_value eq '「列挙したい親レコードのGUID」'

事前のアクションで取得した親レコードに関連する子レコードを取得する際、のフィルター式は以下の式になります。

アクション「行を更新/削除する」

アクション「行を更新/削除する」では対象レコードの「行ID」を指定してレコード操作を行います。

更新アクションを使用してリレーションを設定する

子レコードに対する「更新」アクションで、任意の親レコードにリレーションを設定することができます。

子レコードの「更新」アクションで、親レコードの参照列に対し、対象の親レコードの「Odata ID」を指定します。

更新アクションを使用したリレーションの解除

同様に、子レコードに対して「更新」アクションを使用し、親レコードとのリレーションを解除することも可能です。

子レコードの「更新」アクションで、親レコードの参照列に対しnullを代入することでリレーションは解除されます。

※2024/3/30時点でMicrosoftの仕様(バグ?)により、クラシックデザイナーで生成したフローのみ、更新アクションを使用したリレーションの解除が可能です。(原因不明)

新しいデザイナーで作成したフローでリレーションを解除したい場合は、後の章で紹介する「行の関連付けを解除する」アクションを使用します。

アクション「行を関連付ける」

アクション「行を関連付ける」は、指定した2つのレコード間にリレーションを張るアクションです。

このアクションを使用する際は「行ID」と「Odata ID」の両方を使用します。

  • テーブル名:親テーブルを指定
  • 行ID:親レコードの「行ID」を指定
  • リレーションシップ:子テーブルとのリレーションを選択
  • 関連付け:子テーブルの「Odata ID」を指定

※アクション「行を更新する」、アクション「行を関連付ける」いずれの方法でリレーションを張っても結果に差異はありません。

アクション「行の関連付けを解除する」

アクション「行の関連付けを解除する」は、親子間のリレーションを解除するアクションです。

※パラメータの指定方法はアクション「行を関連付ける」と同様です。

環境をまたぐ操作

「選択した環境から」が先頭につくDataverseのアクションは現在Power Automateを実行している環境以外の環境からデータの取得/更新を行うアクションです。

パラメータとして環境を指定する以外、通常のアクションと使用方法は同じです。

※Power Platformのアプリやフロー、データは環境単位で管理することが多いため、これらのアクションは使用されないことが多いです。

  • URLをコピーしました!

お役立ち資料



資料請求はこちら

資料請求

無料デモアプリはこちら

無料で作成依頼
目次