
Power Automateであそぼう
3月中けっこう暇してたので、色々と遊んでました。
つくったもの①アダプティブカードでテレワーク予定日を選択したら、申請メールが飛ぶ
■動作イメージ
1.金曜9時にメンションで通知される → 翌週のテレワーク予定日をカレンダーから選択 → Submit
2.上長に申請メールが飛ぶ。以上。
(「在宅で申請」にはツッコまないでください)
■フロー全体(色々書きこんでます)
■フロー詳細
1で出てくるアダプティブカードの中身はこんなんです。(でも実はこれ、カードデザイナーのサンプルからほとんどそのまま拝借してます。。)
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"body": [
{
"type": "TextBlock",
"text": "@{outputs('処理用:ユーザーの_@メンション_トークンを取得する')?['body/atMention']}, Which day will you work from home?",
"wrap": true
},
{
"type": "Input.Date",
"id": "date1"
},
{
"type": "Input.Date",
"id": "date2"
},
{
"type": "Input.Date",
"id": "date3"
},
{
"type": "Input.Date",
"id": "date4"
},
{
"type": "Input.Date",
"id": "date5"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Submit"
}
]
}
"text": "@{outputs('処理用:ユーザーの_@メンション_トークンを取得する')?['body/atMention']}, Which day will you work from home?",
の部分は、Power Automateの画面上で挿し込んでやりました。
アダプティブカードで選択された日付をそれぞれ、文字列変数date1~5に格納します。
格納された日付を、①メール記載用にフォーマット変換、②曜日を日本語化しつつ、③日付選択欄に何らかの値が入っていればメール送信する、というのが後半部です。
いずれも「値が入っているかを判定→それに応じた後続処理」というような書き方をしたのですが、empty()関数を使いました。
empty(outputs('アクション:アダプティブ_カードを_Teams_チャネルに投稿して応答を待機')?['body/data/date5'])
こんなん。
■できてないこと
たとえ金曜日でも日曜日でも、並べて書いた日付の後ろに入れてるカンマが絶対につく。
日時 :3/23(火), 3/26(金),
ってなる。(金)のうしろのこれ→","。
苦し紛れに、staticな曜日変換といっしょにカンマつけることにしたので。。
formatDateTime(outputs('アクション:アダプティブ_カードを_Teams_チャネルに投稿して応答を待機')?['body/data/date5'], 'MM/dd(火), ')
つくったもの②ボタンでお休み連絡
■動作イメージ
1.ボタンを選ぶ(Power Automateアプリ内)
2.休み区分を選んで[完了]
3.メールが飛ぶ。以上。
「当日朝に、”あー今日無理休もう”」ってなって上司にメールするシーンを想定してるので、当日の日付で申請メールが飛びます。
■フロー全体
■フロー詳細
休み区分をドロップダウンで選べるようにしています。今気づいたけどスペルミスってる。
曜日の日本語化は、例によりstaticに。dayofweek()関数を使いました。
区分によってタイトルやら日時表記が変わってくるので、スイッチ。
■他には
同じような流れで、月の残業申請や電車遅延の申請メール送信をボタン化しました。
とかとか。