10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power AutomateでのDataverseのリレーションシップの使い方【前編】

Last updated at Posted at 2023-03-31

今回は、Power AutomateでDataverseテーブルのリレーションを使用したアクションをご紹介します。

目次

IDで行を取得する
行を関連付ける
行の関連付けを解除する

IDで行を取得する

DataverseではID(主キー)は自動作成されます。このIDが行を特定できる一意識別子となり、この「IDで行を取得する」アクションでその行の情報をすべて取得することができます。
ちなみに、テーブル名と同一名の列に格納されています。

よく使う使い方

このアクションを使用することで、子レコードとの関連付けを参照しながら親レコードを取ってくることができます。
子テーブルでは親テーブルの行のIDのみ保持しているため、子テーブルの他の情報を持ってきたい場合はこのようにIDで行を取得します。

image.png

使用例

子テーブルである「販売注文テーブル」に行の追加、変更があったときにその行の情報をTeamsで通知したいとします。
その販売注文テーブルの検索列「製品情報」に関連付いている、製品テーブルのレコードの値を取ってくるときに「IDで行を取得する」を使います。

「IDで行を取得する」の設定
テーブル名:親テーブル(IDから情報を取りたいテーブル)
行ID:動的なコンテンツの「行が追加、変更、または削除された場合」の「販売注文」テーブルの「製品情報」列で指定された値を指定することで、親テーブルのIDを取得することができます。ここがコツです。

image.png

すると、そのあと動的なコンテンツで、「IDで行を取得する」で取得した、製品テーブルの列を設定することができるようになります。
image.png

行を関連付ける

このアクションは、すでに1対多または多対多のリレーションシップがあるテーブルに対してのみ使用ができるアクションです。
関連テーブルで新しい行を追加した際にこのアクションを使って、レコードの関連付けを行います。
以下の記事で書いた「検索列への値の挿入」と同じ挙動をします。

使用例

まず、このアクションを使う前に、親テーブルのレコードのOdataIDを取得する必要があるため、「IDで行を取得する」アクションで親テーブルのレコードの指定を行います。
今回は製品テーブルを指定します。
[行ID]にはGUIDを入れます。

GUIDはテーブル名と同じ列に保存されてます。

編集不可の列でわかりづらいですが、この列の各レコードをダブルクリックし、Ctrl+Cで値をコピーすることができます。

image.png

その下に「行を関連付ける」アクションを追加し、子テーブルを指定します。
関連付けを行いたいレコードのGUIDを[行ID]に設定します。
[リレーションシップ]項目には親テーブルとのリレーションを選択して下さい。
[関連付け]は動的なコンテンツの「IDで行を取得する」>[Odata ID]を選択します。
(事前にその値を調べておき、URL形式のOdata IDを入力しておくことも可能です。)
image.png

このフローを実行すると、指定したレコードで関連付けが行われます。

image.png

行の関連付けを解除する

行を関連付けるアクションの反対のアクションです。
このアクションで、同様に項目を設定することで指定したレコードで関連付けを解除することできます。

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?