海外出張とかで、安否確認のために定時で報告させるルールのある組織って結構あると思う。メールで「どこにいます」と送らせて集計するのも面倒だし、かといって何かの安否確認のサービス使うんじゃなく、Office365でやってみるか、というシナリオ。
2019/04/17 タイムゾーンの処理に関連して、一部変更しました。
要件はこんな感じ:
・ユーザーはPC、タブレット、スマートフォン持ってく。
・位置と時刻と誰、をログしたい。
・なるべくならボタンぽちっと、だけをユーザー操作にしたい。
・時刻は日本時間にしたい。
用意するもの:
・Office365のE1以上のライセンス
・Power BIのライセンス、無料版でOK
大まかなステップ:
・データを保持するエクセルファイルを作る
・メールの送信内容を編集
・タイムゾーン書き換え
・エクセルに保存する処理を追加
・地図にプロットする処理
1.データを保持するエクセルファイルを作る
エクセルで、テーブルを作成する。作ったカラムはこれ。
・Email
・DisplayName
・Location
・Latitude
・Longtitude
・Time
・YYYYMMDD
・HHmm
地図表示には緯度経度があれば十分だけど、国情報が欲しいのでLocation入れてる。
作ったら、エクセルファイルは任意のSharepointかOnedriveに保存する。
2.メールの送信内容を編集
メールを、本人と管理者に通知させたい。
また、通知メールに次回クリックするためのURLを入れておきたい。
メールに入れておくと、まだ簡単に探せるから、という理由です。
2-1.Flowを開く→テンプレートから作成→[現在の場所をメールで通知する]をクリック
2-2.メールの宛先を設定する。
宛先は欄は、動的なコンテンツから[ユーザーの電子メール]を選択。
ほかの宛先を追加したい場合は続けて
;xxx@xxx.com;
と追記すればOK。
2-3.件名と本文を設定する。
件名は好きに入力。完全なアドレスと、ユーザー名を入れる。
ここまでで、一度保存する。
2-4.通知メールに次回のクリックするためのリンクを入れる。
マイフローから、先ほど保存したFlowを開いて、編集モードにする。
URLをコピーして、一部パラメータ書き換える。
元のURL
https://japan.flow.microsoft.com/manage/environments/Default-<文字列40文字ぐらい>/flows/<文字列30文字ぐらい>?backUrl=%2Fflows%<文字列40文字ぐらい>%2Fdetails
URLを編集する(?backurlから後ろを削除して、/runに変更する)
https://japan.flow.microsoft.com/manage/environments/Default-<文字列40文字ぐらい>/flows/<文字列30文字ぐらい>/run
正しく設定されていたら、これでフロー実行したらメールが来ます。
3.タイムゾーンの変更
JSTで処理するよう、タイムゾーンをUTCからJSTに変更する処理を入れる。
タイムゾーンの変換 2となっているのですが、この2は無視してください。
3.エクセルに保存する処理を追加
メールで送った内容、エクセルに追加する処理を追加する。
3-1.先ほど2で作成したFlowに、エクセルに書き込む処理を追加する。
Excelで検索→[Excel(Business) Add a row into a table]を選択
20180812 まだプレビューの機能のようです。
3-2.先ほどの1で保存したファイルのテーブルを選択
ロケーション、ライブラリ、ファイル、テーブル、と順番に選択していけばOK
3-3.テーブルの項目を埋めていく(YYYYMMDDとhhmm以外)
EmailとすべきところがUserprincipalnameのままになってるのは読み替えてください…。
3-4.テーブルの項目を埋めていく(YYYYMMDDとhhmm)
先ほど変換したJSTで処理。
YYYYMMDDとhhmmは、式を選択して、それぞれ式を入力。
YYYYMMDD列
formatDateTime('タイムゾーンの変換'),'yyyy-MM-dd')
hhmm列
formatDateTime('タイムゾーンの変換'),'HH:mm')
日本時間に修正する処理は、a-katsumasaさんのこちらの投稿を参考にさせていただき、アレンジしました。ありがとうございます。
Microsoft Flow でFlow作成
ここまでで保存して、テスト。
これでFlowを実行すると、「管理者とユーザーにメールが飛んで」「エクセルに追記」されるようになります。
同じような処理でも、ユーザーの言語設定によってはうまく動作しないケースがあります。
たとえば、動的なコンテンツの追加でも[location.fullAddress]だとダメで[完全なアドレス]ならOKなど。うまくいかない場合は、試してみましょう。
PowerBIへの連携は、後編につづく。