Power AutomateからDataverseのリレーションをつなぐ方法と解除する方法を聞かれたので、メモ。
今回使用するテーブル
今回は「ねこ」テーブル(親)と「食事履歴」テーブル(子)を使って説明。


行IDとOdataID
Dataverseの各レコードをPower Automateで扱う際、「行ID」と「OData ID」という2つのIDが出てくる。
行ID
行IDはテーブルを作成すると自動で作成される「一意識別子」列に入る値のことで、


レコードが作成された際にGUIDが自動で採番される。


主にレコードの取得や編集を行う際に使用する。
OData ID
OData IDはDataverseから該当のレコードの情報を取得するURIのことで、
※「OData」はMicrosoftが作ったHTTPを使ってサーバとブラウザでデータをやり取りするためのプロトコル。

※「OData」はMicrosoftが作ったHTTPを使ってサーバとブラウザでデータをやり取りするためのプロトコル。

この値をブラウザで開くと、画像のようにレコードの情報を返してくれることがわかる。


Power Automateからリレーションを張るときはこの「OData ID」も使用する。
アクション「行を関連付ける」を使用してリレーションをつなぐ
まずはこの「食事履歴」レコードと「ねこ」レコードをつないでみる。


アクション「行を関連付ける」では、[テーブル名]と[行ID]に「親テーブル」とその「行ID」を、[関連付け]には「子テーブルのOData ID」を設定する。


フローを実行すると無事動作し、


リレーションが張られる。


アクション「行の関連付けを解除する」を使用してリレーションを解除する
「行の関連付けを解除する」アクションも設定は同様で、「親テーブルの行ID」と「子テーブルのOData ID」を指定すると、


アクションが成功して、


リレーションが解除される。


アクション「行の更新する」を使用してリレーションをつなぐ
アクション「行の更新する」でもリレーションをつなぐことは可能で、子テーブルの値を更新しつつリレーションも張りたい、というときはこちらの方が便利。
「行の更新する」アクションを子テーブルに対して使用し、親テーブルの参照列にリレーションを張りたい親レコードの「OData ID」を設定する。


アクションが成功し、リレーションが張られる。



※アクション「新しい行を追加する」も同様にリレーションの設定が可能なので、レコードを作成しつつリレーションを張ることも可能。
2025/2/22追記:「行の更新」でリレーションをつなごうとしてエラーが出るときはこちらで直るかも


Power Automate Dataverseのリレーションをアクション「行の更新」で設定する際のエラー解決方法
Power AutomateからDataverseのリレーションを「行の更新」で張ろうとして、エラー『Error identified in Payload provided by the user for Entity』がでたので、対処方...
アクション「行の更新する」を使用してリレーションを解除する
「行の更新する」アクションを使用してリレーションを解除することも一応可能。
「行の更新する」アクションを子テーブルに対して使用し、親テーブルの参照列に「null」を指定してあげると、


アクションが成功し、リレーションが解除される。




ただ、この「nullを設定する」構築を新しいデザイナーでやると、


なぜかアクションが失敗する。。


ということでリレーションの解除は、アクション「行の関連付けを解除する」を使用した方が安定しててよいかも。