鷹尾祥(アキラ)のExcel BI ブログ

Excelの革新的機能であるパワーピボット/パワークエリ/DAXについて紹介します。

SharePoint List登録からPower Automateで承認プロセスを開始する

今回の記事は、SharePoint List とPower Automateを組み合わせて、承認ワークフローを作ります。

f:id:modernexcel7:20210328170835p:plain

【承認ワークフローの動作】

承認ワークフローの動作は以下のようになります。
1.依頼者がSharePoint Listのフォームに情報を入力する
2.自動で承認プロセスが開始され、決まった承認者に承認依頼メールが飛ぶ
3.承認者がメール上で回答する
4.承認プロセスが完了し、SharePoint Listの情報がアップデートされる

【承認ワークフローを作るメリット】

なお、SP & PAで承認フローを作るメリットは以下のものが挙げられます。

  • 適合性:自分の環境にあった情報を管理できる
  • 手間:都度メールによるやり取りの手間が省ける
  • 証跡の検索:承認の履歴がデータベース化されているので追跡しやすい
【作るにあたって】

手順は、可能な限りラクに作れることを目標にしました。つまり、技術に強い人だけしか作れないのではなく、普通の人でもこれを見ながらなら作れるよう、3分クッキングを目指しています。

社内や組織の一握り、一つまみのスーパーマンしか作れないものではなく、業務の引継ぎ・継続性を考え、これを見ながらなら普通の人でも作れることを目標にしています。

【技術的なポイント】

SharePoint ListとPower Automateにはそれぞれ独自の癖があるので、そのあたりを上手くわきまえて利用するのがよさそうです。つまり、ある種のベストプラクティスの使い方をする必要があります。

今回の技術的なポイントは以下の通りです。

  • SharePoint Listではフォームの入力の禁止とグリッドビューの禁止で読み取り専用項目を作る
  • Power Automate ではテンプレートを拝借し、一部改造する

SharePoint Listを作成する

まず、データの入力と保存を行うSharePoint Listを作ります。
Listを作るにあたっては、人が入力するデータとPower Automateのみが更新できるデータを別に作る点がポイントです。

リストを作成する

SharePointサイトに移動し、以下のステップで承認依頼リストを作ります。

  • 右上の歯車をクリック ⇒ サイトコンテンツ
  • +新規 ⇒ 空白のリスト ⇒ 名前:承認依頼 ⇒ 「作成」ボタン

f:id:modernexcel7:20210328155147p:plain

リストの項目を追加する

リストに項目を追加していきます。「+列の追加」ではなく「リストの設定」から追加します。

  • 右上の歯車をクリック ⇒ リストの設定 ⇒ 列の作成

f:id:modernexcel7:20210328155404p:plain

ここから「列の作成」をクリックして以下の設定を入力⇒OKを繰り返し、一つずつ列を追加していきます。

Amount

依頼者が承認を依頼する金額です。

  • 列名:Amount
  • この列の情報の種類:数値
  • この列への情報の入力を必須にする:はい
Amount_Approved

リクエストが承認されたときにPower Automateが更新する金額です。

  • 列名:Amount_Approved
  • この列の情報の種類: 数値
Approval

承認のステータスです。
これもリクエストが承認されたときにPower Automateが更新します。

  • 列名:Approval
  • この列の情報の種類:1行テキスト
  • 規定値:テキスト、申請中
Comment

承認のステータスです。
これもリクエストが承認されたときにPower Automateが更新します。

  • 列名:Comment
  • この列の情報の種類:1行テキスト

この段階で列は以下のようになります。

f:id:modernexcel7:20210328162428p:plain

「すべてのアイテム」ビューの設定

続いて、非表示になっている作成者、作成日を表示します。

  • ビュー ⇒ すべてのアイテム

f:id:modernexcel7:20210328160726p:plain

  • Created、Created byの「表示チェック ⇒ OK

入力禁止設定を行う

ここからが少しトリッキーな設定になります。
再び、歯車から「リストの設定」に移動し、以下の設定を行います。

  • 詳細設定

f:id:modernexcel7:20210328161129p:plain

  • コンテンツ タイプの管理を許可する ⇒ はい

f:id:modernexcel7:20210328161239p:plain
この設定により「リストの設定」画面に「コンテンツタイプ」が表示されます。
f:id:modernexcel7:20210328162057p:plain

  • この リスト のアイテムを [クイック編集] と [詳細] ウィンドウを使用して編集することを許可しますか? ⇒ いいえ

f:id:modernexcel7:20210328161353p:plain

この設定によりリストの「グリッドビューでの編集」が非表示になり、フォームでしか項目を編集できないようになります。つまり、あとはフォームで非表示にすればその項目は読み取り専用になります。
f:id:modernexcel7:20210328161642p:plain

ここまで入力したら、「OK」を押して一度「詳細設定」を抜けます。

フォームの非表示設定を行う

続いて読み取り専用にする項目をフォームから非表示にします。

  • コンテンツタイプ ⇒ Item

f:id:modernexcel7:20210328162010p:plain

「リストコンテンツタイプ」画面に移動したら、以下の列をそれぞれクリックし、この列 ⇒ 非表示(フォームに表示しない)の設定を行います。
f:id:modernexcel7:20210328162157p:plain

  • Amount_Approved
  • Approval
  • Comment

設定された項目は以下のように「隠しファイル」となります。
f:id:modernexcel7:20210328162548p:plain

ここまで来たら再び、「リストの設定」画面でコンテンツタイプの管理を元に戻します。

  • 詳細設定 ⇒ コンテンツ タイプの管理を許可する ⇒ いいえ ⇒ OK

この設定を戻しておかないとListに以下の項目が表示されてしまいます。
f:id:modernexcel7:20210328162730p:plain

これでリストの作成は完了です。
この時点で一覧画面は以下のようになります。

f:id:modernexcel7:20210328163023p:plain

「+新規」を押したときのフォームは以下のようになります。

f:id:modernexcel7:20210328163043p:plain

Power Automateを作成する

ここからPower Automateで承認フローを作ります。

テンプレートを呼び出す

  • Power Automateのホーム画面に移動
  • 「新しいアイテムが追加されたときに承認を開始する」で検索 & 選択
  • 続行

f:id:modernexcel7:20210328163306p:plain

フローを編集する

テンプレートのフローを一部変更して完成させます。

サイトとリストの選択
  • When a new item is created:⇒ サイトのアドレスと先ほど作ったリスト名を選択

f:id:modernexcel7:20210328164516p:plain

承認者の設定
  • Start an Approval: ⇒ 「割り当て先」に承認者のメールアドレスを記入(今回は固定)

f:id:modernexcel7:20210328163658p:plain

※ タイトルのテキスト部分は適宜変更してください。

承認時のアクションを追加
  • 「はいの場合」の末尾の「アクションの追加」をクリック

f:id:modernexcel7:20210328163921p:plain

  • 「操作を選択してください」で「項目の更新 - SharePoint」を選択

f:id:modernexcel7:20210328164044p:plain

  • サイトのアドレス ⇒ 選択
  • リスト名: ⇒ 選択
  • Title => Title (動的なコンテンツのSharePointから選択)
  • Amount => Amount (動的なコンテンツのSharePointから選択)
  • Amount_Approved => Amount (動的なコンテンツのSharePointから選択)
  • Approval => 承認 (固定値で手入力)
  • Comment => コメント(承認者によって提供されたコメント)

f:id:modernexcel7:20210328164811p:plain

このとき、「動的なコンテンツ」は右側のボックスから検索&選択します。
f:id:modernexcel7:20210328164703p:plain

却下時のアクションを追加

  • 「いいえの場合」の末尾の「アクションの追加」をクリック
  • 入力は以下を除いて「はいの場合」と同じ

Approval_Status_Value => 却下 (固定値で手入力)

f:id:modernexcel7:20210328170602p:plain

フローの保存

ここまで来たら画面下の「保存」を押してフローを保存します。

f:id:modernexcel7:20210328165115p:plain

承認ワークフローの実行

完成したフローをテストします。「承認依頼」リストに戻り新しいリスト項目を追加します。

  • +新規

f:id:modernexcel7:20210328165245p:plain

項目を入力し、「保存」を押します。
f:id:modernexcel7:20210328165332p:plain

以下のメールが承認者あてに送られてきます。

f:id:modernexcel7:20210328165502p:plain

「承認」をクリックし、コメントを入力して「送信」を押します。
f:id:modernexcel7:20210328165549p:plain

以下のように結果を通知するメールが依頼者に送られます。

f:id:modernexcel7:20210328165718p:plain

同時にListのApproveそのほかのステータスが更新されます。
f:id:modernexcel7:20210328165802p:plain

※ Approval_Amountが$になっていましたね。後で直します・・・
※ 承認処理はスマホアプリのPower Automateでもできるのでとても便利です。

まとめ

SharePoint ListとPower Automate の情報はとても少ないです。

ネット上では散発的に見かけるのですが、さらにその両者を連携させるテクニックは一癖あってなかなか一筋縄ではいきません。

そういう状況ですが、最近電子書籍で出版された以下の本はそのあたりのベストプラクティスを重点的にケアしてくれているのでとても勉強になりました。特にSharePointの管理者向けではなく、普通のユーザー向けなので広く役立つのではないでしょうか。