SharePoint と Power Automate で稟議書を実装してみたメモ 1

2020/05/07

経緯

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

雑な仕様

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

今回諦めた仕様

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

いい感じでできる方法があったら教えて下さい🙏

用意した SharePoint Online 環境

サイト

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

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

https://<your-organization-name>.sharepoint.com/sites/ExampleWorkflow

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

グループマスタ

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

リストの設定

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

列の設定

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

作成されると、次の URL でリストが作成されます

https://<your-organization-name>.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://<your-organization-name>.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://<your-organization-name>.sharepoint.com/sites/ExampleWorkflow/Lists/Apply

内部名とは?

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

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

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

列名が読めない…

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

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

次回予告

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