はじめに
私は、7月に初めてPowerAutomateの存在を知り、会社の業務の一環として取り扱っています。
始めたばかりでまだ自分でトリガーやアクションを考えることが難しいため、
既存記事を参考に様々なフローを作成しています。
既存の記事をもとにフローの作成を進めていく上で、
個人的に躓いた箇所・わかりにくかった箇所を解説とともに発信しようと思います。
取り扱うフロー
「予定表から今日の予定を取得して、Teamsに投稿 OR Teamsのチャットにて通知する」というフローを作成しました。これは、その日の打ち合わせ等の予定が毎朝表としてに変換して送られてくるものです。
1日の予定を一目見て再確認することができます。
フローの全体像
躓いた点
- 変数の初期化(1つ目)
- 変換後の時間
- 一番最後のTeams通知のアクション
- テーブルの前に付けるメッセージ本文中の値(substring(…))
1.変数の初期化1(Initialize variable)
このアクションは、タイトル通り「変数の初期化」を行うもので、ここでいう「変数」とは「年月日」のことを指しています。
変数addDays()の中身は、「body('Convert_time_zone'),-1,'yyyy-MM-dd')」となります。
真ん中に記載されている「-1」という数字は、一日前を指すためであり、このように初期化することにより、示したい予定の日付を正確に表示することができます。
2.変換後の時間
このように変換後の時間(Convert time zone)がこのフローに3個含まれており、それと連動するように「変換後の時間」も3か所存在します。
その際当てはめるConvert time zoneを間違えないように気を付けなければなりません。
当てはめ方は決して難しいものではなく、出てきた順番にConvert time zoneを入れれば問題ありません。
もしこれを間違った箇所に入力してしまうと、予定表のテーブルの時刻が正しく反映されなくなります。
特に注意が必要なのは、Apply to each に含まれているAppend to string variable 2の「変換後の時間」の値です。それぞれ予定の開始時刻と終了時刻となります。
3.Teams通知アクション
このアクションは、今までのアクションで受け取ったOutlookのスケジュールをテーブル化し、自分で指定したメッセージとともにTeams上で通知するものであり、そのメッセージを予定当日の年月日とします。
この年月日の表示方法として変数"substring"を使用し、値にConvert time zoneを入力することで日付を表示させています。
実際の入力値:菅川の
substring(body('Convert_time_zone'),0,4)年
substring(body('Convert_time_zone'),5,2)月
substring(body('Convert_time_zone'),8,2)日
の予定
ここで私が躓いたのが、()内の二つの数字です。
入力されている2個の数字は、西暦の年月日の一番初めを0とおいたとき、何番目の数字までを含んで表示させたいかという意味を持っています。
例)2023/09/26のうち、2023のみを表示させたい場合、
先頭の数字は0番目・最後尾の数字は3番目となる。
しかし、()内の2つ目の数字を3にすると、202までしか表示されない。
これは、指定した項番の値は含まれないためである。
つまり、2つ目の数字を4(番目)とすることで2023を全て表示できる。
おわりに
今回は、既存記事を参考にフローを作成した際、自分が特に目立って躓いた点・時間を費やした点を挙げて解説を書いてみました。
ほぼプログラミング経験がないことから、初心者の方にもわかりやすい解説となっているのではないかと思います。
ぜひ参考にしてみてください。