LoginSignup
9
14

More than 1 year has passed since last update.

Microsoft Flowで、[ユーザーがぽちっとしたらメール通知+位置情報送信+Power BIでレポート]する、を作ってみる 前編

Last updated at Posted at 2018-08-12

海外出張とかで、安否確認のために定時で報告させるルールのある組織って結構あると思う。メールで「どこにいます」と送らせて集計するのも面倒だし、かといって何かの安否確認のサービス使うんじゃなく、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を開く→テンプレートから作成→[現在の場所をメールで通知する]をクリック

flow1.JPG

2-2.メールの宛先を設定する。

宛先は欄は、動的なコンテンツから[ユーザーの電子メール]を選択。
ほかの宛先を追加したい場合は続けて

;xxx@xxx.com;

と追記すればOK。

flow2.JPG

2-3.件名と本文を設定する。

件名は好きに入力。完全なアドレスと、ユーザー名を入れる。

flow3.JPG

ここまでで、一度保存する。

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

あとは、メールの本文にHTMLで追加する。
flow4.JPG

正しく設定されていたら、これでフロー実行したらメールが来ます。

3.タイムゾーンの変更

JSTで処理するよう、タイムゾーンをUTCからJSTに変更する処理を入れる。

image.png

タイムゾーンの変換 2となっているのですが、この2は無視してください。

3.エクセルに保存する処理を追加

メールで送った内容、エクセルに追加する処理を追加する。

3-1.先ほど2で作成したFlowに、エクセルに書き込む処理を追加する。

    新しいステップ→アクションの追加
    flow5.JPG

    Excelで検索→[Excel(Business) Add a row into a table]を選択
    20180812 まだプレビューの機能のようです。
flow6.JPG

3-2.先ほどの1で保存したファイルのテーブルを選択
    ロケーション、ライブラリ、ファイル、テーブル、と順番に選択していけばOK
flow7.JPG

3-3.テーブルの項目を埋めていく(YYYYMMDDとhhmm以外)

    「動的なコンテンツを追加する」から選択していけばOK。
    
flow8.JPG

    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など。うまくいかない場合は、試してみましょう。

flow0.JPG

PowerBIへの連携は、後編につづく

9
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
14