Power Automate で稟議書を実装してみた1 (GUI で環境準備編)

## 経緯
弊社に Power Platform にも強いエンジニアがいる(というか案件まわしている)のですが、俺もちょっとやってみたいなっと思い、SharePoint Online と Power Automate (旧 Microsoft Flow) で稟議書っぽいのを実装してみました

## 雑な仕様

* 実際に承認を行う**承認者**と、申請がきていることをメールで通知する**確認者**がいる
* 承認者全員がアクション後、**「承認者が○人以上なら次の処理に進む」**というような処理ができる
* 「回覧経路の人のみ申請されたアイテムが閲覧可能」とかいう仕様は入れない (今回試したいことと違うので)

[![](https://1bed.allright.life/wp-content/uploads/2020/04/blog0-300x283.png)](https://1bed.allright.life/wp-content/uploads/2020/04/blog0.png)

## 今回諦めた仕様

承認時に「○人中、△人が承認した時点で次の処理に進む」という仕様は、Power Automate の繰り返し処理と相性が悪そうだったので諦めました

いい感じでできる方法があったら教えて下さい&#x1f64f;


## 用意した SharePoint Online 環境

### サイト

| サイトの種類 | サイト名 | 言語の種類 | タイムゾーン |
| --- | --- | --- | --- |
| コミュニケーションサイト | ExampleWorkflow | 日本語 | (UTC+09:00) 大阪、札幌、東京 |

作成されると、次の URL でサイトが作成されます 

> https://&lt;your-organization-name&gt;.sharepoint.com/sites/ExampleWorkflow

### サイト内に作成したリスト

#### グループマスタ

承認経路に設定するグループのマスタ

リストの設定

| リスト名 | 内部名 | リストの種類 |
| --- | --- | --- |
| グループマスタ | GroupMaster | カスタムリスト |

列の設定

| 表示名 | 内部列名 | 列の種類 | 備考 |
| --- | --- | --- | --- |
| グループ名 | Title | 1 行テキスト | 既存列のタイトルの表示名を変更 |
| 承認者 | ApprovalUsers | ユーザーまたはグループ | 複数選択あり、ユーザーのみ |
| 確認者 | ConfirmUsers | ユーザーまたはグループ | 複数選択あり、ユーザーのみ |


作成されると、次の URL でリストが作成されます
> https://&lt;your-organization-name&gt;.sharepoint.com/sites/ExampleWorkflow/Lists/GroupMaster


#### 承認経路マスタ

グループを並べて、承認経路を設定する

リストの設定

| リスト名 | 内部名 | リストの種類 |
| --- | --- | --- |
| 承認経路マスタ | ApprovalPathMaster | カスタムリスト |

列の設定

| 表示名 | 内部列名 | 列の種類 | 備考 |
| --- | --- | --- | --- |
| 承認経路名 | Title | 1 行テキスト | 既存列のタイトルの表示名を変更 |
| 経路1 | Path1 | 参照 | 参照先はグループマスタ |
| 経路2 | Path2 | 参照 | 参照先はグループマスタ |
| 経路3 | Path3 | 参照 | 参照先はグループマスタ |
| 経路4 | Path4 | 参照 | 参照先はグループマスタ |
| 経路5 | Path5 | 参照 | 参照先はグループマスタ |
| 経路1の必要承認数 | Path1Approvals | 数値 |  |
| 経路2の必要承認数 | Path2Approvals | 数値 |  |
| 経路3の必要承認数 | Path3Approvals | 数値 |  |
| 経路4の必要承認数 | Path4Approvals | 数値 |  |
| 経路5の必要承認数 | Path5Approvals | 数値 |  |

作成されると、次の URL でリストが作成されます
> https://&lt;your-organization-name&gt;.sharepoint.com/sites/ExampleWorkflow/Lists/ApprovalPathMaster

#### 申請ワークフロー

ワークフローを実際に実行するリスト

本来なら、色々とガッツリ作り込むキモの部分だと思うが、今回はあくまでワークフローを作ってみるだけなので簡単なリストとする

リストの設定

| リスト名 | 内部名 | リストの種類 |
| --- | --- | --- |
| 申請ワークフロー | Apply | カスタムリスト |

列の設定

| 表示列名 | 内部列名 | 列の種類 | 備考 |
| --- | --- | --- | --- |
| 申請タイトル | Title | 1行テキスト | 既存列のタイトルの表示名を変更 |
| ステータス | Status | 1行テキスト |  |
| 承認経路 | ApprovalPath | 参照 | 参照先は承認経路マスタ |
| 申請文 | Body | 複数行テキスト | 拡張リッチテキスト |
| 経路1承認 | Path1Accept | 数値 | |
| 経路2承認 | Path2Accept | 数値 | |
| 経路3承認 | Path3Accept | 数値 | |
| 経路4承認 | Path4Accept | 数値 | |
| 経路5承認 | Path5Accept | 数値 | |
| 経路1否認 | Path1Reject | 数値 | |
| 経路2否認 | Path2Reject | 数値 | |
| 経路3否認 | Path3Reject | 数値 | |
| 経路4否認 | Path4Reject | 数値 | |
| 経路5否認 | Path5Reject | 数値 | |
| 経路1コメント | Path1Comment | 複数行テキスト | 書式なしテキスト |
| 経路2コメント | Path2Comment | 複数行テキスト | 書式なしテキスト |
| 経路3コメント | Path3Comment | 複数行テキスト | 書式なしテキスト |
| 経路4コメント | Path4Comment | 複数行テキスト | 書式なしテキスト |
| 経路5コメント | Path5Comment | 複数行テキスト | 書式なしテキスト |
| ログ | Log | 複数行テキスト | 書式なしテキスト |

作成されると、次の URL でリストが作成されます
> https://&lt;your-organization-name&gt;.sharepoint.com/sites/ExampleWorkflow/Lists/Apply

## 内部名とは？

SharePoint をやっている人には常識に近いのですが、SharePoint でリストや列を作る時に、一度半角英数字で登録して、後から日本語などに変更することで、内部列名を半角英数字で作成します

こうすることで、PowerShell や C# 、REST API などで扱いやすくなります


例えば、最初に日本語で列名を作成すると

[![](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-1-300x165.png)](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-1.png)

列名が読めない...

[![](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-2-300x107.png)](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-2.png)

最初に半角英字で作成してみると

[![](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-3-300x171.png)](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-3.png)

列名が入力したままになるので、この状態で列名を日本語に変更すれば OK

[![](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-4-300x121.png)](https://1bed.allright.life/wp-content/uploads/2020/04/blog1-4.png)

## 考察

とりあえず入れ物を作りましたが、何度も作り直して試す時に面倒ですし、ミスも起きそうですので、次回はこれらを SharePoint PnP PowerShell というコマンドラインから作成してみます

## 関連記事

自分のためのメモに近い記事なのですが、長いのでインデックスつけます

* Power Automate で稟議書を実装してみた1 (GUI で環境準備編)
* [Power Automate で稟議書を実装してみた2 (CUI で環境準備編)](https://qiita.com/miyamiya/items/9d28749ed9bdec8a6cee)
* [Power Automate で稟議書を実装してみた3 (Power Automate 編1)](https://qiita.com/miyamiya/items/35ca2d1cd05bc77396ce)
* [Power Automate で稟議書を実装してみた4 (Power Automate 編2)](https://qiita.com/miyamiya/items/1ef9cab407499a64477e)
* [Power Automate で稟議書を実装してみた5 (Power Automate 編3)](https://qiita.com/miyamiya/items/3b60c57653e20a7a6ff0)
* [Power Automate で稟議書を実装してみた6 (Power Automate 編4)](https://qiita.com/miyamiya/items/5f5a81b16901ed9e61cc)