鍋綿ブログ

C#・SharePoint・SharePoint Framework・Office365を中心に扱うブログです。

SharePointでFlowを利用した承認ワークフローを構築する

SharePointで承認ワークフローといえば、SharePoint Designerで作る昔ながらの「ワークフロー」機能で実現することが多かったのですが、いい加減モダン機能に切り替えたくなりました。
そこでFlowを利用して承認ワークフローが構築できるか試してみたところ、割といい感じでしたので紹介します。

 

 

よくある要件

承認ワークフローにありがちな要件として以下があるかと思います。すべて実現可能です。

  • 多段階承認

2段階、3段階と承認を重ねていく業務はよくありますね。Flowで実現可能です。

  • 複数人での承認

2人以上に承認を求め、1人でも承認したら~ とか 全員が承認したら ~ という処理もFlowで実現可能です。

  • 承認段階による編集制御

承認中にアイテムを編集 / 削除されたら困ります。従来は権限制御でなんとかしていたのですが、権限管理や処理内容が非常に煩雑でした。PowerAppsを利用して、アイテムの列によって編集可否を切り替えることで実現可能でした。但しPowerAppsなのでモダン表示が前提です。

  • モバイル端末での承認 / 却下

Flowで承認依頼を行うと、承認者にメールが送信されます。そのメールに承認 / 却下ボタンが付いているので、メールが見られればモバイル端末でも承認 / 却下が可能です。素晴らしい!

構築してみた内容の紹介

リスト

ユーザーは、リストにアイテムを新規登録することで承認依頼を開始します。

f:id:micknabewata:20180819084243j:plain

リストに用意した列

非常に簡単ですが、以下の列を用意しました。

  • タイトル(1行テキスト)
  • 1次承認者(ユーザーまたはグループ)
  • 2次承認者(ユーザーまたはグループ)
  • 備考(1行テキスト)
  • 編集不可メッセージ(1行テキスト)
  • 承認ステータス(選択肢)

「編集不可メッセージ」は、編集可否の制御とユーザーへのメッセージ表示を兼ねた役割を担わせる列として作成しました。後述のPowerAppsで利用しています。

「承認ステータス」は、現在の承認状況をユーザーに伝えるために作成した列です。

PowerApps

リストのリボンから「Power Apps」ボタンをクリックすると、Power Appsが起動します。この時点でモダン表示の標準機能と同じ状態のアプリが出来上がっているので、一通り列を揃えてからアプリを作成するほうが楽です。(もちろん、後から列を追加することもできます。)

このアプリで「規則」を作成し、「編集不可メッセージ」列に値が入っている場合に編集ができないようにしました。

f:id:micknabewata:20180819085337j:plain

「編集不可メッセージ非表示」規則の設定

ついでに、新規登録画面に「承認ステータス」が要らなかったので、こちらも「規則」の設定で非表示にしました。

f:id:micknabewata:20180819085746j:plain

「承認ステータス表示」規則の設定

これで承認中は編集ができなくなり、アイテム詳細画面とアイテム編集画面に承認ステータスと編集不可メッセージとが表示されるようになりました。

f:id:micknabewata:20180819090032j:plain

編集画面には行けるが、入力が一切できない状態

Flow

FlowはSharePointの「項目が作成されたとき」をトリガーに、「Approval」や「項目の編集」アクションを組み合わせて作成しました。2次承認まで作成したのでFlowが長くなってしまい、画像が貼り切れません。すみません。。。結果だけ貼っておきます。

f:id:micknabewata:20180819091000j:plain

承認者に届くメール

承認者にはこんな感じのメールが届きます。ApproveボタンかRejectボタンをクリックするとコメントを入力することができます。

f:id:micknabewata:20180819091218j:plain

承認 / 却下によって承認ステータスを変えている

承認されたか却下されたか、またその時のコメントがどうだったかなどは、Flowで結果を取得できます。その内容をSharePointリストに保存して承認ステータスが分かるようにしています。

終わりに

モダン表示を前提とするならば、SharePoint Designerで作成するワークフローよりもFlowのほうが良さそうです。
特に編集可否の制御をPower Appsで行える点と、承認 / 却下をメールに記載されたボタンで行える点がスマートですね。