見出し画像

Power Automateであそぼう

3月中けっこう暇してたので、色々と遊んでました。


つくったもの①アダプティブカードでテレワーク予定日を選択したら、申請メールが飛ぶ

■動作イメージ

1.金曜9時にメンションで通知される → 翌週のテレワーク予定日をカレンダーから選択 → Submit

画像2

2.上長に申請メールが飛ぶ。以上。

(「在宅で申請」にはツッコまないでください)

画像2


■フロー全体(色々書きこんでます)

画像3


■フロー詳細

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の画面上で挿し込んでやりました。

画像4

アダプティブカードで選択された日付をそれぞれ、文字列変数date1~5に格納します。

画像5

格納された日付を、①メール記載用にフォーマット変換、②曜日を日本語化しつつ、③日付選択欄に何らかの値が入っていればメール送信する、というのが後半部です。

いずれも「値が入っているかを判定→それに応じた後続処理」というような書き方をしたのですが、empty()関数を使いました。

empty(outputs('アクション:アダプティブ_カードを_Teams_チャネルに投稿して応答を待機')?['body/data/date5'])

こんなん。

画像6


■できてないこと

たとえ金曜日でも日曜日でも、並べて書いた日付の後ろに入れてるカンマが絶対につく。

日時 :3/23(火), 3/26(金),

ってなる。(金)のうしろのこれ→","。

苦し紛れに、staticな曜日変換といっしょにカンマつけることにしたので。。

formatDateTime(outputs('アクション:アダプティブ_カードを_Teams_チャネルに投稿して応答を待機')?['body/data/date5'], 'MM/dd(火), ')



つくったもの②ボタンでお休み連絡

■動作イメージ

1.ボタンを選ぶ(Power Automateアプリ内)

画像7

2.休み区分を選んで[完了]

画像8

3.メールが飛ぶ。以上。

「当日朝に、”あー今日無理休もう”」ってなって上司にメールするシーンを想定してるので、当日の日付で申請メールが飛びます。


■フロー全体

画像9


■フロー詳細

休み区分をドロップダウンで選べるようにしています。今気づいたけどスペルミスってる。

画像10

曜日の日本語化は、例によりstaticに。dayofweek()関数を使いました。

画像11

区分によってタイトルやら日時表記が変わってくるので、スイッチ。

画像12


■他には

同じような流れで、月の残業申請や電車遅延の申請メール送信をボタン化しました。


とかとか。

この記事が気に入ったらサポートをしてみませんか?