Power Automate Dataverseのレコードの「所有者」にチームやユーザーを設定したいとき

Power Automateを使ってDataverseのレコードの所有者を設定したいとき、ユーザー(チーム)のレコードのGUIDをそのまま指定するだけじゃダメだったので、その方法をメモ。

スポンサーリンク

GUIDをそのまま指定するだけじゃダメっぽい

例えば、こんなテーブルにレコードが作成されたとき、
Power Automateを使って「所有者」列にこのユーザーを設定したいとなったとき、
何かしらの方法(今回は「ユーザー」テーブルの一覧からドメイン名でフィルター)でユーザー情報を取得して、
取得したユーザー情報のGUIDを「所有者」列に入れてあげれば設定できるのかなと思っていたら、
どうもダメっぽい。

少し調べてみると、ユーザーやチームを設定するときはGUIDに加えてプレフィクスが必要らしい。

ユーザーをGUIDで指定したいとき

まず、ユーザーを「所有者」に設定するときは「/systemusers/」プレフィクスが必要。

さっきのフローの「行を更新する」アクションをこんな感じで修正してあげれば(ユーザーGUIDの前に「/systemusers/」を直接書いてあげれば)、
自分のアカウントでレコードを作成しても、
フローが動作して、
「所有者」が変更される!

チームをGUIDで指定したいとき

レコードの「所有者」にはユーザーの他に「所有者チーム」も設定することができて、その際はチームのGUIDに加えて「/teams/」プレフィクスが必要。

例えばさっきのユーザーが所属している「部署1」の所有者チームを「所有者」に設定したい場合、
ユーザーの部署IDも取得するように設定して、
部署IDを取得して、その部署の所有者チームを引っ張ってくる。
そして、「所有者」に「/teams/」プレフィクスとチームのGUIDを設定する。
すると指定した所有者チームが「所有者」列に設定される。

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

所有者にチームを設定しようとしてこんなエラーが出る場合、

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

コメント

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