はじめに
よく勤怠入れ忘れて怒られてるまとっちです。
もう怒られたくないです。
この記事の対象者
- 勤怠をよく忘れる人
- PowerAutomateからkintoneレコードを追加+更新したい人
- PowerAutomateからの質問に対して、Teamsで入力・選択させたい人
背景
この1年間、月2~3のペースで勤怠忘れをしてました。
「次は気を付けます」って言って、次の日に勤怠忘れる人なので、システム化します。
作ったシステム
システムの流れ
① PowerAutomateで月~金の9:30に定期実行
② Teamsのアダプティブカードで本日のToDo入力と勤務形態を選択
③ kintoneの勤怠アプリにレコード追加+ステータスを稼働中に更新
詳細設定
以降に詳細設定を説明しておりますが、kintone勤怠アプリにレコードを登録するために、今回自分が作った仕様をベースにしているので、一部不要な項目もあります。
新しいフローで、スケジュール済みクラウドフローを選んで、月~金9:30で設定する。
アクションで、Teamsアダプティブカードの月日表示の値・kintoneの出勤時刻の値を作る。
アクションで、Teamsアダプティブカードの曜日表示の値を作る。
曜日の作り方
前のアクションで作った日本時間を使って、下記の通り関数を設定する。
if(equals(dayOfWeek(body('日本時間')), 0), '日',
if(equals(dayOfWeek(body('日本時間')), 1), '月',
if(equals(dayOfWeek(body('日本時間')), 2), '火',
if(equals(dayOfWeek(body('日本時間')), 3), '水',
if(equals(dayOfWeek(body('日本時間')), 4), '木',
if(equals(dayOfWeek(body('日本時間')), 5), '金',
if(equals(dayOfWeek(body('日本時間')), 6), '土', '')
)
)
)
)
)
)
※ あとで気付いたのですが、アダプティブカードの選択結果のようにスイッチで曜日を条件分岐させた方が、視覚的に分かりやすいフローになるかなと思いました。
アダプティブカードの作り方
JSONで作る必要があります。アダプティブカードデザイナーにJSONを入力すれば、どんな感じのアダプティブカードが表示されるか見ることができます。
以下、自分が作ったアダプティブカードのJSONです。参考にしてください。
※前のアクションで作った月日と曜日を使ってます。
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "@{body('月日')}(@{variables('曜日')})の出勤"
},
{
"type": "Image",
"url": "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgucdpWPL4khu8aOKtZKvhl1WGJI6zM-18YBrkorHwaSpIoArZYTRYmKYdph2SD5IPgOzQzX_dsvO8k4GruTrpwwEYa5T0MZ0fze9vT3oa2bV0OxfmjRe3YOhtGQhOcBlAvuy4sD4H3hfBO/s400/skip_businessman.png",
"size": "Large",
"horizontalAlignment": "Center"
},
{
"type": "Input.Text",
"id": "userInput",
"placeholder": "本日やることを記載",
"isMultiline": true
}
],
"actions": [
{
"type": "Action.Submit",
"title": "オフィス出勤",
"data": { "workType": "Office" }
},
{
"type": "Action.Submit",
"title": "在宅勤務",
"data": { "workType": "Home" }
},
{
"type": "Action.Submit",
"title": "働きたくないでござる",
"data": { "workType": "Holiday" }
}
],
"horizontalAlignment": "Center",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2"
}
アダプティブカードの選択結果で条件分岐して、kintoneの勤務形態の値を作る。
勤務形態が休暇以外の時は、後続のkintone操作フローに進む。
kintoneの勤怠アプリにレコードを追加する(ここまでのアクションの値を使う)。
HTTPリクエストで、追加したレコードのステータスを稼働中に更新する。
kintoneレコード更新のHTTPリクエストの作り方
詳しくは、cybozu developer network「1 件のレコードのステータスを更新する」を見て設定をしてください。
以下、自分が作った設定です。参考にしてください。
URL:https://(ドメイン名).cybozu.com/k/v1/record/status.json
Method:PUT
Headers:X-Cybozu-API-Token → (勤怠アプリのAPIトークン)
Content-Type → application/json
Body:
{
"app": (アプリID),
"id": @{outputs('アプリにレコードを追加')?['body/id']},
"action": "(ステータス更新のアクション名)",
"assignee": "(作業者に設定するユーザーのログイン名)"
}
できあがったシステム
おわりに
これでもう怒られなくて済みます。