LoginSignup
5
4

Power Appsで日付から祝日判定する

Posted at

はじめに

インターネットでPower Appsによる祝日判定の方法が意外と出ていなかった印象なので、投稿することにしました。
Power Automateによる祝日判定は、かなり見かけましたが、Power Automateで出来ることは、Power Appsから直接できるケースもあります。

仮説検証方法の一例として見ていただければ幸いです。

まずはPower Appsを準備

データからOffice 365 Outlookを追加しましょう。

image.png

判定する日付を選択するコントロールを用意

  • 一例として載せているだけであって、必須ではありません

image.png

Power Automateの方法から類推してみる

さて、前述のとおり、祝日判定はPower Automateの分は多く出てきます。
方法は下記の通り。

イベントのカレンダー ビューの取得 (V3)

image.png

イベントのカレンダー ビューの取得 (V3) のアクションを使って、開始時刻から終了時刻のイベントを拾っています。

上記の設定では戻り値はこの通り。

image.png

勤労感謝の日がでますね。

やっていることは単純です。
ではPower Appsで直接こちらを実行するには、どのようにしたらよいでしょうか?

パラメーターに注目する

アクションの実行に必要な材料はパラメーターです。

image.png

まずは赤線の未加工入力の表示をクリックしてみましょう。

image.png

アクションに必要な材料が列挙されていることがわかります。
見切れているcalendarId日本の祝日を表すIDと理解できますね。

あとは開始時刻と終了時刻と見て取れます。

Power Appsで再現する。

DatePickerCanvas1が、モダンコントロールの日付ピッカーです。
DatePickerCanvas1.SelectedDateで、選択した日付が取得できます。

image.png

👆は、日付ピッカーに合わせて祝日名を出力するアプリ。
DatePickerCanvas1.SelectedDateDate型のデータなので、文字列に変換します。
強引に変換したケースが下記の例です。

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!

5
4
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
5
4