Power Automate Dataverseのリレーションをつなぐ/解除する方法|行IDとODataIDの違い

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を使ってサーバとブラウザでデータをやり取りするためのプロトコル。
この値をブラウザで開くと、画像のようにレコードの情報を返してくれることがわかる。

Power Automateからリレーションを張るときはこの「OData ID」も使用する。

アクション「行を関連付ける」を使用してリレーションをつなぐ

まずはこの「食事履歴」レコードと「ねこ」レコードをつないでみる。
アクション「行を関連付ける」では、[テーブル名]と[行ID]に「親テーブル」とその「行ID」を、[関連付け]には「子テーブルのOData ID」を設定する。
フローを実行すると無事動作し、
リレーションが張られる。

アクション「行の関連付けを解除する」を使用してリレーションを解除する

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

アクション「行を更新する」を使用してリレーションをつなぐ

アクション「行を更新する」でもリレーションをつなぐことは可能で、子テーブルの値を更新しつつリレーションも張りたい、というときはこちらの方が便利。

「行を更新する」アクションを子テーブルに対して使用し、親テーブルの参照列にリレーションを張りたい親レコードの「OData ID」を設定する。
アクションが成功し、リレーションが張られる。

アクション「新しい行を追加する」も同様にリレーションの設定が可能なので、レコードを作成しつつリレーションを張ることも可能。

アクション「行を更新する」を使用してリレーションを解除する

「行を更新する」アクションを使用してリレーションを解除することも一応可能。

「行を更新する」アクションを子テーブルに対して使用し、親テーブルの参照列に「null」を指定してあげると、
アクションが成功し、リレーションが解除される。

ただ、この「nullを設定する」構築を新しいデザイナーでやると、
なぜかアクションが失敗する。。

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

タイトルとURLをコピーしました