初心者向け｜Microsoft Flowを使ってみる（5）メールの添付ファイル（ZIP)を自動ダウンロード＆自動展開する

#はじめに
- Microsoft Flowを使ったシンプルなフローの作り方をまとめていきます。
- これからFlowにチャレンジしてみようと考えている初心者向けです。
- この説明は他の投稿（3）添付ファイルの自動保存、（4）ZIPの自動展開　を合体させたフローです。

 参考：初心者向け｜Microsoft Flowを使ってみる（3）メールの添付ファイルをOneDriveに自動保存する
 https://qiita.com/Baru/items/34a0cf46db3b4b8c2ff0

 参考：初心者向け｜Microsoft Flowを使ってみる（4）フォルダにZIPが置かれたら、自動的に展開（解凍）する
 https://qiita.com/Baru/items/e099b4addbf754ed04b8

#設計

##このフローの利用シーン
毎日、自動配信メールが届きます。
メールには前日の売上データ（ZIP）が添付されています。このデータの取り込み（保存＆展開）を自動化します。

##このフローの目的
ルーチン業務を自動化し、リソースを分析等の他の業務に割り当てる。

#フローの作り方

##作業時間
10～15分

##（1）Flowの上部メニューで「マイフロー」→「一から作成」を選ぶ
![flow3.png](https://qiita-image-store.s3.amazonaws.com/0/242229/a0169ef7-6465-cbb6-14b7-aa8a74e2fa3a.png)

##（2）「多数のコネクタやトリガーを検索する」を選ぶ
![flow4.png](https://qiita-image-store.s3.amazonaws.com/0/242229/70fd6061-87cc-5987-9225-e4b611fcc2f8.png)

##（3）フロー名を設定。トリガーを選ぶ
![flowE1.png](https://qiita-image-store.s3.amazonaws.com/0/242229/6922b7e9-73a0-6ae0-f597-18c76850668e.png)


**フロー名**
分かりやすい名前を付けてください。

**トリガー**
行動の起点を設定します。

(a)自動納品されるメールが届いたら、
(b)添付ファイルをダウンロードする。
(C)さらに、ZIPファイルなら展開（解凍）する。
(a)が起点です。トリガーとしては「Office365 Outlook」を選びます。

**「Office365 Outlook - 新しいメールが届いたとき」**
トリガー「Office365 Outlook - 新しいメールが届いたとき」を選んでください。

**「Office365 Outlook - 新しいメールが届いたとき」の詳細**

自動納品メールを特定するルールを入れてください。
今回は、宛先：nouhin@mail.comとします。

添付ファイル：はい
添付ファイルを含める：はい

**「Apply to Eachの追加」**
新しいステップ → さらに追加 →「Apply to Eachの追加」を選びます。

##（4）「Apply to each」の詳細
![flowE2.png](https://qiita-image-store.s3.amazonaws.com/0/242229/48e6381e-430c-ff47-9012-0aebe5b0ff46.png)

**遺残の手順から出力を選択**
「添付ファイル」を選びます。

**アクションの追加**
添付ファイルをOneDrive上にダウンロードします。
コネクタ「OneDrive for Business」を選びます。

##（5）「OneDrive for Business - ファイルの作成」を選ぶ
![flowE3.png](https://qiita-image-store.s3.amazonaws.com/0/242229/11f949eb-2390-247f-7e0d-34495fa3751a.png)

**「OneDrive for Business - ファイルの作成」**
アクションは「OneDrive for Business - ファイルの作成」を選んでください。

**「OneDrive for Business - ファイルの作成」の詳細**

添付ファイルをOneDrive上にダウンロードします。
フォルダーのパス：/download/を指定
ファイル名：名前
ファイル コンテンツ：コンテンツ

**条件の追加**
ダウンロードした上で、ZIPファイルかを確認します。
「条件の追加」を選びます。

##（6）条件の詳細
![flowE4.png](https://qiita-image-store.s3.amazonaws.com/0/242229/39ee7b42-9528-5b9a-080f-3bbe78e2fe24.png)

**条件**
値の選択：表示名
条件：次のもので終わる
値：.zip

**はいの場合**
ZIPファイルの場合、展開（解凍）します。
アクションの追加より「OneDrive for Business」を選びます。

##（7）「OneDrive for Business - フォルダーにアーカイブを展開します」の詳細
![flowE5.png](https://qiita-image-store.s3.amazonaws.com/0/242229/981b8a38-3a87-6d6b-eaa9-52bf1dc5fa73.png)

**「OneDrive for Business - フォルダーにアーカイブを展開します」**
「OneDrive for Business」を選んだら、アクション「OneDrive for Business - フォルダーにアーカイブを展開します」を選びます。

**「OneDrive for Business - フォルダーにアーカイブを展開します」の詳細**
ソース アーカイブ ファイルのパス：~~/download/を指定します。~~ ※「パス」にする
宛先フォルダー パス：今回は「/expand/」と指定しました。
上書きする：はい

※パスにする（追記）
展開するファイルの中に日本語が含まれている場合、エラーになりました。
回避方法として、ソース アーカイブ ファイルのパスの指定を「/download/」から「パス」に変更することで
エラーを回避することができました。



##（8）これで目的の動作は出来上がり
添付ファイルがあったら/download/に保存され、
ZIPファイルだったら/expand/に展開（解凍）されます。


##（9）いいえの場合
（8）までで出来上がっていますが、（9）ではZIPファイル以外が保存されたケースの処理を加えます。

想定されたシナリオでは、ZIPファイルが自動納品される予定でしたが、
イレギュラーはつきものです。
ZIPファイル以外が納品された場合に、スマートフォンにプッシュ通知を送る設定を加えます。

**前提**
iOSアプリまたはAndroidアプリで「Microsoft Flowアプリ」をインストール＆ログインしておく必要があります。
詳しくは「（1）重要な人からメールがきたらスマホにプッシュ通知を送る」を参照。

参考：初心者向け｜Microsoft Flowを使ってみる（1）重要な人からメールがきたらスマホにプッシュ通知を送る
https://qiita.com/Baru/items/27efb4bc20ed875f796c


##（10）いいえの場合のアクション
![flowE6.png](https://qiita-image-store.s3.amazonaws.com/0/242229/ba5825a7-766f-3c61-7d48-04695ca48690.png)

**アクションの追加**
スマートフォンにプッシュ通知を送るため、「Notifications」を選びます。

##（11）「Notifications - Send me a mobile notification」を選ぶ
![flowE7.png](https://qiita-image-store.s3.amazonaws.com/0/242229/5e4f502c-7bda-df4b-bde2-efb2aa354b37.png)


##（12）「Notifications - Send me a mobile notification」の詳細
![flowE8.png](https://qiita-image-store.s3.amazonaws.com/0/242229/4835884a-4f31-ee84-6cd5-fa6fd084018f.png)

Text：メッセージを入れます。

##（13）フローの保存
イレギュラーが発生したらアラートとしてプッシュ通知が届くようになりました。
プッシュ通知のほかにも、メールを送信してもいいかもしれませんね。