ペーパーレスファックスの構築 (2) - Plannerのタスクを作成する



# 準備
## SharePointライブラリの準備
SharePointの適当なところにドキュメントライブラリを作成します。
Teamsからも参照できるよう、チームサイトの中に作っておくのがよいと思います。
作成したドキュメントライブラリには、あとからPlannerのタスクとの関連付けができるよう、PlannerタスクのIDを格納する列を作っておきます。（下図の「関連アイテムID」列。内部名RelatedItemId）
列のタイプは一行テキストです。

![2022-07-02_18h13_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/b715c35f-6653-b2d1-b0b6-f756af016b6c.png)
アクセス権は必要に応じて設定してください。

## Plannerのプランを作成
Plannerのプランを作成しておきます。
ドキュメントライブラリ同様、ファックスを共有するチーム内に作っておけばよいでしょう。
Teamsのタブを追加して作成するのが手っ取り早いかと思います。
![2022-07-02_18h21_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/cc505992-c8a6-4729-ce2d-fb99664a3d7a.png)

プランの中のバケットは、デフォルトのTo Doバケットをそのまま利用して、ほかのバケットは追加しなくても構わないです。
私は、他のサービスへ転送した場合に、転送されたことが確認できるよう、転送済みタスクのバケットを作成しています。

# フロー
## 概要
Plannerのタスクを作成するフローは、条件分岐もなくループもない、いたってシンプルなものです。
![2022-07-02_18h09_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/3a0d5860-0680-ee4b-abff-eb7f4a05bc83.png)

## ステップ
### SharePointに保存されたFAX受信文書の情報を取得する
![2022-07-02_20h44_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/4f309580-1630-6c3a-75d0-9e785845604c.png)

FAX受信文書を受信してSharePointに保存されたらフローを走らせるので、「フォルダー内にファイルが作成されたとき」トリガーを使用します。
ついでにメタデータも取得しておきます。

### 保存されたファイルの判定
![2022-07-02_20h50_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/05b5cbf0-af5a-1ca8-3757-2288d7e4fc2d.png)

PDFファイルでない場合はここで終了します。
専用フォルダなので、複合機から送られたPDF以外は入ることは基本的にはありませんが、ドラッグアンドドロップでファイルを保存することは可能なので、一応つけています。
なければないで構わないし、もっと複雑な条件を付ければつけたで構いません。

拡張子でPDFかどうかを判定するので、endsWith関数でファイル名の末尾を調べます。
~~~
endsWith(body('パスによるファイル_メタデータの取得')?['Name'],'.PDF')
~~~

### 「受信日時」変数の初期化
受信日時からファイル名が生成されるので、これを利用して受信日時を変数に設定します。
SharePointに保存された日時だと若干タイムラグがあるので、ファイル名にしていますが、気にしなければ「パスによるファイル メタデータの取得」アクションのLastModifiedから設定しても構わないです。
ここで設定した「受信日時」変数は、Plannerのタスク名にするぐらいなので、わざわざ変数にしなくても構いません。

### タスクを作成
![2022-07-02_21h08_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/d17d9a21-5cdb-8dd8-f1b6-bcba8da9da8d.png)
Plannerのタスクを作成します。
タイトルは先ほどの「受信日時」変数の値を設定。
開始と期限は「パスによるファイル メタデータの取得」のLastModifiedから設定します。
期限は７日後としているので、以下の計算式が入っています。
~~~
addDays(body('パスによるファイル_メタデータの取得')?['LastModified'],7)
~~~
タスクの詳細を更新する前に、タスクの作成が完了するのを待つよう、念のため５秒のウェイトを掛けています。

### タスクにファイルを添付
Plannerのタスクにファイルを添付するには、「タスクの詳細の更新」アクションで行います。
![2022-07-02_21h15_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/4e16371e-af1a-fb3a-dc2e-0cb309b273ee.png)
タスクIDには、「タスクを作成する」アクションのIDを入れ、適当に説明を付けます。
添付ファイルはその下の「参照設定」で行います。
- エイリアス：ファイル名
- リソースリンク：ドキュメントライブラリに保存されたファイルのフルパス
- 参照の種類：ファイルの種類

（Plannerに表示されるカードとの対応はこんな感じ？）
![2022-07-02_21h23_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/66b8ad8a-e332-2781-f2f2-c8b825c46a25.png)

### PlannerのタスクIDを、ドキュメントライブラリに記録
![2022-07-02_21h27_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244231/91012c06-9b0a-6674-7efd-f8290b9b52d8.png)
「ファイルのプロパティの更新」アクションで、「関連アイテムID」列に作成したPlannerのタスクのＩＤを格納します。

# まとめ
ファックスのペーパーレス化は、ペーパーレス化するだけなら複合機の機能だけで簡単にできると思いますが、その後の処理をどうするか、ということでPlannerを使った方法の紹介でした。
これだけだと、FAXが入ったことが分かりませんが、当社では総務の担当者が定期的に確認して、ファックスの送信先の担当者に割り当てるようにしています。
FAXが入ったらすぐにわかるようにするのであれば、Teamsに投稿するなり、PlannerのタスクにFAXの確認担当者を最初に割り当てるなりすれば、通知されるようになります。
当社では、複合機のビープ音でFAXが来たことがわかるので、あえて通知する仕組みは付けていません。

次回は、ファックス受信文書のクリーンアップのフローを取り上げる予定です。