2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerAutomateで実行者の予定表を操作する

Last updated at Posted at 2021-09-06

結論

  • Outlookの「イベントの作成」やTeamsの「会議の作成」に失敗する場合・・
  • まず、カレンダーの取得アクションでフロー実行者のカレンダー一覧を取得しておき、
    そこから抽出したカレンダーIDをイベントの作成アクションの予定表IDに設定する。
  • あとは実行者の接続情報を使って実行するとうまくいく。

image.png
image.png

問題

  • イベントの作成アクションで他人の予定表に登録したいときがあります。
  • 普通にドロップダウンからカレンダーを選択すると、フローの作成者本人が実行する場合は動きます。

ただしフローを他人に実行させ、他人の予定表に登録しようとするとエラーになります。

原因

ドロップダウンにはフロー作成者のカレンダーIDが設定されており、選択するとフローにそのIDが埋め込まれてしまうことが原因。

image.png

その様子はコードのプレビューで確認できる。
image.png

解説

前提

フロー実行者の接続情報を使用する必要があるため、インスタントフローである必要があります。
トリガーとしてはSharePointの選択アイテムから実行するものか、PowerAppsボタンなどから実行します。
PowerAppsV2を使用する場合はOutlookコネクタが実行者の接続を使用する設定か確認します。

フロー

カレンダーの取得アクションで実行者のカレンダー一覧を取得します。
その出力オブジェクト配列になるため、アレイのフィルター処理でnameがCalendarとなるものを抽出します。(ODataクエリ)
環境によっては「予定表」になっている場合もあるようです。
image.png

出力の一例
image.png

任意で、フィルターした配列の要素数をチェックしてエラー処理などを行います。
image.png

あとは配列の1要素目のidを抜き出し、
その出力をイベントの作成アクションの予定表IDにカスタム値としてセットします。
image.png

あとがき

うまくいかなくて困っている人を見かけたので共有しておきます。
PowerAppsだとカレンダーIDが選択できないので、先にIDを取得してセットしてって手順が当たり前なのですが、Automateだと躓いてしまいますね。

OutlookコネクタでPower Appsから直接呼び出す方法は以下の記事が分かりやすいです。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?