この記事は、Power Apps Advent Calendar 2023 12月24日担当分の記事です。
こんにちは、たな です。
Qiita Advent Calendarへの参加ということで、Qiitaで記事を書いていこうと思います。
Power Automateはたくさんのコネクタが提供されていることで、さまざまなサービスとコネクタ経由で連携できます。
また、コネクタのおかげでAPIを直接記載することなく、アクションの設定項目の選択肢から選ぶだけで簡単に接続して操作できます。
(一部、コネクタのアクションには、APIを直接記載する必要がある「HTTP要求を送信します」といったアクションも存在します。)
設定時に選択肢に候補が出てこない・多すぎて見つけられない
例えば、SharePointサイトやリストを作った直後で、選択肢の候補に出てこなかったり、あるいは、選択肢が多すぎて、探すのが手間取ったりすることもあります。
そういったときに、「カスタム値の入力」を利用して、直接、サイトURLを入力したといった方もいらっしゃるのではないでしょうか。
この場合は、SharePointサイトのURLを入力場所だとなんとなく分かったりします。
一方でアクションによっては、「カスタム値」の入力に何を入れたらいいのか分からない場合もあります。
SharePointコネクタの「アイテムまたはフォルダーへのアクセス権限の付与」アクションの「ロール」の選択肢の場合
SharePointコネクタの「アイテムまたはフォルダーへのアクセス権限の付与」アクションの「ロール」の選択肢は「Can edit」と「Can view」です。
それぞれ「編集」権限と「閲覧」権限を設定できます。
しかし、SharePointの権限には、ほかの権限も存在します。「投稿」「デザイン」「フルコントロール」などありますよね。
そうすると「カスタム値の入力」で設定することはできないのか?と考えると思います。では、ひょっとして「Can design」とかいける?という考えのもと試してみます。
status:400で「選択したアクセス許可レベルは無効です」というメッセージのエラーとなりました。
「Can design」ではダメでした。(まあ、そうですよね。。。
ではどうしたらいいのか?
まず、「Can edit」に設定した際の実行履歴をみてみます。
「入力」の「ロール」部分の結果は「role:1073741827」と表示されています。
設定した際は、「Can edit」です。
同様に「Can view」を設定すると「role:1073741826」でした。
つまり、「Can edit」という選択肢は、内部的には「role:1073741827」と変換されて動作していることがわかります。
role:XXXXXXXXXX の調べ方
「アイテムまたはフォルダーへのアクセス権限の付与」アクションの「ロール」については、気ままに勉強会 #68 「Power AutomateでSharePointを操る~Part5~」でお話していますが、確認する方法があります。
調べ方については、割愛しますので、登壇時の資料や公式ドキュメントをご確認ください。
登壇時の資料は、Power AutomateでSharePointを操る~Part5~ でご確認ください。
公式ドキュメントは以下となります。
Power Automate を使用してリスト アイテムとファイルのアクセス許可を管理する | Microsoft Learn
また、APIを利用した確認方法を太田さんがブログで一覧を掲載してくださっています。
Power Automate のフローで SharePoint リストアイテムの権限を操作してみる
選択肢にない「デザイン」権限を付与してみる
上記のドキュメントから調べた結果、「デザイン」権限を付与するには「role:1073741828」を設定すればよいことがわかりました。
しっかり、デザイン権限が付与されていることも確認できました。
このように選択にない場合、値として何を設定すべき値がドキュメントに記載されているものもあります。
公式ドキュメントを検索するという手間を惜しまないようにしたいものです。
しかし、明示的に記載が見つけられないものがあります。
(私が見つけられていないだけかもしれないので、公式ドキュメント記載箇所をご存じの方がいれば、ぜひ教えてください。)
一例として、Teamsコネクタに「チャットまたはチャネルでメッセージを投稿する」アクションの実行履歴から推測する場合について、実行履歴を観察してカスタム値の入力に設定する値を推測してみる(後編)」に綴っていこうと思います。
※ 後編の記事の方でも、よかったよ、役に立ったよという方は、こちらのQiitaの記事の方にいいね!をよろしくお願いします。