Power Automateを使ってDataverseのレコードの所有者を設定したいとき、ユーザー(チーム)のレコードのGUIDをそのまま指定するだけじゃダメだったので、その方法をメモ。
GUIDをそのまま指定するだけじゃダメっぽい
例えば、こんなテーブルにレコードが作成されたとき、


Power Automateを使って「所有者」列にこのユーザーを設定したいとなったとき、


何かしらの方法(今回は「ユーザー」テーブルの一覧からドメイン名でフィルター)でユーザー情報を取得して、


取得したユーザー情報のGUIDを「所有者」列に入れてあげれば設定できるのかなと思っていたら、


どうもダメっぽい。


少し調べてみると、ユーザーやチームを設定するときはGUIDに加えてプレフィクスが必要らしい。
ユーザーをGUIDで指定したいとき
まず、ユーザーを「所有者」に設定するときは「/systemusers/」プレフィクスが必要。
さっきのフローの「行を更新する」アクションをこんな感じで修正してあげれば(ユーザーGUIDの前に「/systemusers/」を直接書いてあげれば)、


自分のアカウントでレコードを作成しても、


フローが動作して、


「所有者」が変更される!


チームをGUIDで指定したいとき
レコードの「所有者」にはユーザーの他に「所有者チーム」も設定することができて、その際はチームのGUIDに加えて「/teams/」プレフィクスが必要。
例えばさっきのユーザーが所属している「部署1」の所有者チームを「所有者」に設定したい場合、


ユーザーの部署IDも取得するように設定して、


部署IDを取得して、その部署の所有者チームを引っ張ってくる。


そして、「所有者」に「/teams/」プレフィクスとチームのGUIDを設定する。


すると指定した所有者チームが「所有者」列に設定される。


おまけ:所有者にチームを設定しようとしてエラーが発生する場合
所有者にチームを設定しようとしてこんなエラーが出る場合、


これはその所有者チームがテーブルに対して必要な権限(セキュリティロール)を持っていないときに発生するエラーなので、チームに対してそのテーブルへのセキュリティロールを設定してあげる必要がある。
コメント