目次
はじめに
本記事を見つけて頂き、ありがとうございますm(_ _)m
本記事では、Power Automate(web) + Forms + Onedrive + Excel online で作る勤怠入力システムのPower Automateの部分についてです。
ナンバリングとしては本記事が最後です。
フロー
図の通りです。
(もっとスッキリ、きれいな並びがあるかもです)
フロー詳細
フロー図より降順で解説します。
①新しい応答が送信されるとき
②応答の詳細の取得
③作成
substring(outputs('応答の詳細を取得する')?['body/responder'], 2, 4)
- 上記のsubstring関数は、所定の位置よりカウントされる文字を抽出します。
- 今回は「ユーザー名の3文字目から4文字を取得」しています。
- 本記事ではMicrosoftアカウントを「ABxxxx@onmicrosoft.com」設定しています。そのためAB「xxxx」@...つまり社員番号を取得しています。
- 「3文字なのに2」なのは「1文字目=0」となっているためです。
- また、「outputs('応答の詳細を取得する')?['body/responder']」は「動的値の responsder's email」 のことです。
④フォルダ内のファイル検索
⑤タイムゾーンの変換
⑥IDの初期化(変数を初期化する)
- ④で検索したファイルのID(文字が不規則に羅列されているパス)を格納する変数を作成します。
- 変数に格納しなくても大丈夫そうですが、各アクションで生成されるものが文字列か数字(整数or実数)なのかよく分からないので、関数を用いて確実かつ都合のいいように変換します。
- 図のように設定ください。
⑦IDの設定(変数の設定)
⑧テーブル名の初期化・⑨テーブル名の設定
- ⑩でテーブルを選択する項目があるので、テーブル名を格納する変数を初期化し、設定します。
- ⑩において入力するファイルが決まっていればテーブルの選択が可能なのですが、今回は「動的=決まっていない」ので入力が可能である変数をねじ込みます。変数だけど固定値、偽変数と呼んでます。
⑩表に行を追加
-
⑦をより編集するタイムシート及びテーブルを選択します。
-
テーブル欄が「カスタム値」となっていますが、中身は関数です。選択し、鉛筆マークをクリックすると動的な値を入れることができます。
-
テーブルが定まっていない場合、挿入したい列(項目)をAutomateが参照してくれません。なので当て振りを行います。
- 記入方法は以下の通りです。
{
"列名1":動的な値 or 固定値,
・
・
・
"列名n":動的な値 or 固定値,
}
以上で、automateは完成です。
まとめ
今回はAutomateについての内容となりました。今回で記事は終了となります。少しでも参考になれば嬉しいです。
また、本内容に限らず一度に全体を作成し動かそうとすると上手くいかないことがあるので、トリガーを手動にし一部のみを動かすフローを作りテストすることをオススメします。
余談
OnederiveとSharepointの違い
OnedriveとSharepointのファイル・フォルダ検索は仕様が異なります。Onedriveは階層を深堀りした検索が行えるのですが、Shrepointはできませんでした。
ID(パス)の仕様が異なるそうで、そのせいでSharepointでは位置フォルダ内でしか検索が行なえませんでした。使い方によっては問題はないと思いますが、個人フォルダをつくりその中のファイルを検索した場合をSharepointでは行えないのでご注意ください。
※もし、実は可能であれば詳しい方がいましたらご教授頂けると助かります。
automateの処理時間
Excelに使用されている関数に左右されます。一度に多くの方が利用するとなれば様々な関数を変えて実験することをオススメします。(本フローは30秒ほどかかります。)
特にFilter関数を用いた場合ですと、なんとタイムアウトしました...。(式の作り方にもよりますが)