はじめに
インターネットでPower Apps
による祝日判定の方法が意外と出ていなかった印象なので、投稿することにしました。
Power Automate
による祝日判定は、かなり見かけましたが、Power Automateで出来ることは、Power Appsから直接できるケースもあります。
仮説検証方法の一例として見ていただければ幸いです。
まずはPower Appsを準備
データ
からOffice 365 Outlook
を追加しましょう。
判定する日付を選択するコントロールを用意
- 一例として載せているだけであって、必須ではありません
Power Automateの方法から類推してみる
さて、前述のとおり、祝日判定はPower Automate
の分は多く出てきます。
方法は下記の通り。
イベントのカレンダー ビューの取得 (V3)
イベントのカレンダー ビューの取得 (V3) のアクションを使って、開始時刻から終了時刻のイベントを拾っています。
上記の設定では戻り値はこの通り。
勤労感謝の日がでますね。
やっていることは単純です。
ではPower Appsで直接こちらを実行するには、どのようにしたらよいでしょうか?
パラメーターに注目する
アクションの実行に必要な材料はパラメーター
です。
まずは赤線
の未加工入力の表示をクリックしてみましょう。
アクションに必要な材料が列挙されていることがわかります。
見切れているcalendarId
が日本の祝日
を表すIDと理解できますね。
あとは開始時刻と終了時刻と見て取れます。
Power Appsで再現する。
DatePickerCanvas1
が、モダンコントロールの日付ピッカーです。
DatePickerCanvas1.SelectedDate
で、選択した日付が取得できます。
👆は、日付ピッカーに合わせて祝日名を出力するアプリ。
DatePickerCanvas1.SelectedDate
はDate型
のデータなので、文字列に変換します。
強引に変換したケースが下記の例です。
First(
Office365Outlook.GetEventsCalendarViewV3(
"AAMkADBiYTQzZDYzLWQ4NzMtNDI4Yy05MzM5LTJmZGQ3OWViZDcxNQBGAAAAAADfGay5QuF-RaPDhnhQhBiwBwDkSCYyPiA9RbDtjRLFGs9eAAAAAAEGAADkSCYyPiA9RbDtjRLFGs9eAAATWTqBAAA=",
Text(DatePickerCanvas1.SelectedDate,"yyyy-mm-dd") & "T00:00:00",
Text(DatePickerCanvas1.SelectedDate,"yyyy-mm-dd") & "T00:00:00"
).value
).subject
戻り値が、テーブル(配列のような考え方)になるので、First
関数で先頭の値を取得しましょう。
Firstによって最初のレコードが取得できるので、そこから値をとればOK!!
subject
がイベント名ですね!
Power AutomateからPower Appsの応用方法を調べてみよう!
Power Automateで出来ることは直接Power Appsで出来るケースがあります。
大切なのは自分で仮説を立てて検証してみることです。
Good night!