
ここでは、複数人同時に承認要求する「全員承認」「多数決承認」について説明します。

直列で順番に承認要求する場合は、承認者数が多くなるので、「SharePointポータルサイト活用」の電子書籍をご一読ください。
目次
第1章 意外と知らないSharePointの便利な使い方(初級)
|Outlookは使わない予約カレンダーの作り方
|外部共有のフォルダー、ファイルを決まった期間で削除
第2章 リストを活用して複雑な承認ワークフローを実現(中級)
|稟議申請ワークフローの概要
|稟議申請ワークフローの仕組みについて
|3つのリスト作成手順
|稟議申請フロー作成手順
|稟議再申請、取下フロー作成手順
第3章 SharePointでWebアプリを使おう!(上級)
|SharePoint上でWebアプリを公開する
|在席確認アプリ機能概要
|在席確認アプリ公開手順
おわりに
本の説明
会社の社内ポータルサイトを活用したい方は、「稟議申請ワークフロー」「在席確認アプリ」「予約カレンダー」「外部共有サイト」の4つを活用できます。社内ポータルサイトを構築したら、次はあなたが開発者になって、手順を見ながら4つの作成してください。

SharePointポータルサイト作り方の電子書籍の特典があれば、簡単にメンテナンスできます。

-
-
【電子書籍】SharePointポータルサイト作り方
続きを見る

SharePointに承認ワークフローを構築します リストを活用して複雑な承認ワークフローを構築、サポートします
この記事は、Power Automate+SharePointリストを使った承認ワークフローの作成手順を説明します。
本記事の内容
- 複数承認者(全員承認、多数決承認とは)
- 申請リスト作成手順
- 承認者リスト作成手順
- フロー作成手順
式をコピーすることが、できます。

また、複数添付ファイルは、その後に追加として説明します。

複数承認者(全員承認、多数決承認とは)
Power Automateの「開始して承認を待機」のアクションには、4つの種類の承認があります。
- 1つの応答を待機(カスタム応答)
- すべての応答を待機(カスタム応答)
- すべてのユーザーの承認が必須(承認/拒否)
- 最初に応答(承認/拒否)
カスタム応答とは、既定の承認、拒否ではなく、自由に設定できます。
「OK」「NG」というようにもできます。
全員承認で使う種類は、「すべての応答を待機」です。
下の図のように同時に承認要求します。
次に、多数決承認ですが、「すべての応答を待機」と承認の種類は同じです。
下の図のように3人に承認要求をした場合の多数決は、承認が2人です。
※4人に承認要求した場合は、承認が3人です(過半数ではありません)。
注意ポイント
「すべてのユーザーの承認が必須」を使うと、誰かが拒否をした時点でフローが進んでしまう(他の人が承認要求に応答、コメントができない)ので、「すべての応答を待機」を選択してください。
フローは、この承認者リストの申請者と一致するアイテムを取得して、複数承認者に承認要求します。

申請リスト作成手順
リストの良いところは、フォームで入力できること、ファイルを複数添付できることです。
アイテム毎に権限を付けることもできるので、申請をするリストとして作成していきます。

SharePoint申請リスト
step
1サイトにリストを作成
グループのサイトに申請リストを作成します。
もちろん、Microsoft Listsのマイリストにも作成することができますが、独自権限がつけれれないのでSharePointサイトに作成してください。
①サイトのトップページの「+新規」→「リスト」をクリックします。
②「+空白のリスト」をクリックします。
③名前に英語で『ApplicationWF』と入力し、「作成」をクリックします。
※英語名は、何でもOKです(半角英語でスペース記号なしにしておけば、アクションによってURLを調べる必要が無いので英語にしてください)。
※リスト名は、あとで日本語に変更してください。
step
2列を追加1
列に「内容(複数行テキスト)」「承認ステータス(選択肢)」「承認者(個人)」の列を追加します。
ここも英語で列名を入力してください。列の内部名を調べる手間が省けます。
④「+列の追加」→「複数行テキスト」をクリックします。
⑤名前に『Contents』と入力します。
※列を追加した後に日本語「内容」へ変更してください。
⑥「その他のオプション」をクリックして、「この列に情報が含まれている必要があります」にチェックし、「保存」をクリックします。
step
3列を追加2
次に「承認ステータス(選択肢)」を追加します。
選択肢は、3つ「承認待ち」「承認」「拒否」です。既定値を「承認待ち」にしておけば、アイテム作成したあとに「承認待ち」になります。
⑦「+列の追加」→「選択肢」をクリックします。
⑧名前に『ApprovalStatus』と入力します。
※列を追加した後に日本語「承認ステータス」へ変更してください。
⑨選択肢に「承認待ち」「承認」「拒否」を入力します。
⑩既定値は、「承認待ち」を選択し、「保存」をクリックします。
※この列は、任意にします。
step
4列を追加3
次に「承認者(個人)」を追加します。
この列は、複数承認者にするので、複数選択を許可してください。
⑪「+列の追加」→「個人」をクリックします。
⑫名前に『Authorizer』と入力します。
※列を追加した後に日本語「承認者」へ変更してください。
⑬「複数選択を許可」を「はい」にチェックし、「保存」をクリックします。
※この列は、フローで承認者を追加するので任意にします。
step
5列を表示
次に「登録日時」「登録者」の列を表示します。
※登録日時、登録者を申請日時、申請者に名前を変更します。
アイテムは誰がいつ登録、更新したかわかるようになっています。
⑭「すべてのアイテム」→「現在のビューの編集」をクリックします。
⑮「添付ファイル」「登録者」「登録日時」をチェックします。
⑯並べ替えの「最優先する列」を「登録日時」の「降順」をチェックし、「OK」をクリックします。
※登録日時、登録者の列は、「列名」→「列の設定」→「名前の変更」で変更できます。
step
6列を移動
次に列を移動して、見やすくします。
列は「申請日時」「申請者」「タイトル」「内容」「添付ファイル」「承認ステータス」「承認者」の順にします。
⑰「列名」をドラッグアンドドロップで移動します。
step
7フォームを編集
次に入力するフォームを編集します。
⑱左上の「+新規」→右上の「ノートとペンのマーク」→「列の編集」をクリックします。
⑲「承認ステータス」「承認者」のチェックを外し、「保存」をクリックします。
次に作成するのが、承認者リストです。

承認者リスト作成手順
承認者リストは、申請者の承認者をリストにしたものです。
フローを使って承認者を複数人取得します。
直列の承認ワークフローでは、承認者1、承認者2、承認者3というにしますが、全員承認や多数決承認では1つの列に複数人の承認者を追加します。

SharePoint承認者リスト
step
1サイトにリストを作成〜列の追加
グループのサイトに承認者リストを作成します。
リスト名は、英語で『AuthorizerList』にします。
列は、個人で『Applicant』『Authorizer』を追加します。
※「Authorizer」のみ複数選択を許可してください。
①承認者リストを作成します。
②「+列の追加」→「個人」をクリックします。
③名前に『Applicant』と入力し、「保存」をクリックします。
※列を追加した後に日本語「申請者」へ変更してください。
※この列は、必須にします。
④「+列の追加」→「個人」をクリックします。
⑤名前に『Authorizer』と入力します。
※列を追加した後に日本語「承認者」へ変更してください。
※この列は、必須にします。
⑥「複数選択を許可」を「はい」にチェックし、「保存」をクリックします。
step
2グリッドビューでの編集
グリッドビューでの編集をクリックして、申請者、承認者を追加します。
セルになるので、ユーザー名もしくは、メールアドレスを入力してください。
⑦「グリッドビューでの編集」をクリックします。
⑧申請者、承認者を追加します。
※承認者は、複数人追加してください。
⑨追加したら、「グリッドビューの終了」をクリックします。
次がいよいよフロー作成です。

全員承認フロー作成手順
全員承認のフローを作成します。
このフローのポイントは、複数承認者です。
全員が承認した場合は、申請リストの承認者の列に、承認者を複数人追加します。
誰か1人でも拒否した場合は、拒否した人を追加します。
このフローは、なるべくコピペでできるようにしています。

Power Automate全員承認フロー
step
1自動化したクラウドフロー
「項目が作成されたとき」のトリガーを使って、フローを作成します。
複数添付ファイルは、補足説明で最後に説明します(多数決承認フローの次)
①Power Automateのホームにある「+作成」→「自動化したクラウドフロー」をクリックします。
②フロー名に『全員承認フロー』と入力し、「項目が作成されたとき」を選択、「作成」をクリックします。
step
2申請されたとき〜承認者リスト取得
アイテムを作成して、申請してから、承認者リスト取得までの手順です。
③サイトのアドレス、リスト「申請」を選択します。
※トリガー名は、「申請されたとき」に変更します。
④「+新しいステップ」→「複数の項目の取得」を追加します。
⑤サイトのアドレス、リスト「承認者リスト」を選択します。
⑥「詳細オプションを表示する」をクリックし、フィルタークエリに下記を貼り付けます。
※アクション名は、「承認者リスト取得」に変更します。
Applicant/EMail eq '@{triggerOutputs()?['body/Author/Email']}'
step
3変数の初期化を3つ追加
承認者名コメント、承認Claims、拒否Claimsの変数の初期化を追加します。
承認者名コメントは、文字列。他は、アレイにします。
⑦「+新しいステップ」→「変数を初期化する」を追加します。
⑧名前に『承認者名コメント』と入力し、種類に「文字列」を選択します。
※アクション名は、「承認者名コメント格納用変数の初期化」に変更します。
⑨「+新しいステップ」→「変数を初期化する」を追加します。
⑩名前に『承認者承認Claims』と入力し、種類に「アレイ」を選択します。
※アクション名は、「承認Claims格納用変数の初期化」に変更します。
⑪「+新しいステップ」→「変数を初期化する」を追加します。
⑫名前に『承認者拒否Claims』と入力し、種類に「アレイ」を選択します。
※アクション名は、「拒否Claims格納用変数の初期化」に変更します。
step
4承認者メールアドレスを取得と結合
承認のアクションを追加する前に、複数承認者のメールアドレスを取得して、セミコロン区切りで結合します。
⑬「+新しいステップ」→データ操作の「選択」を追加します。
⑭開始に承認者リスト取得の「承認者」、マップに式で『item()?['Email']』を入力します。
※マップは「Tのマーク」をクリックしてテキストモードにしてください。
※アクション名は、「承認者メールアドレスを取得」に変更します。
※「Apply to each」が自動で追加します。
⑮「アクションの追加」→データ操作の「結合」を追加します。
⑯結合する配列に、[承認者メールアドレスを取得]の「出力」、次に使用して結合に『;』セミコロンを入力します。
※アクション名は、「承認者メールアドレスを結合」に変更します。
step
5開始して承認を待機
「すべての応答を待機」の承認の種類で、承認アクションを追加します。
詳細については、ご自身でカスタマイズしてください(申請者名、申請者部署など)。
⑰「アクションの追加」→承認の「開始して承認を待機」を追加します。
※アクション名は、変更しません。
⑱応答オプションの項目に『承認」『拒否』を入力します。
⑲タイトルは、『【申請】Title」にします。
⑳担当者に、「承認者メールアドレスを結合」の「出力」を追加します。
㉑アイテムリンクに「申請されたとき」の「アイテムへのリンク」を追加します。
㉒「詳細オプションを表示する」をクリックして、要求元に「申請されたとき」の「申請者Email」を追加します。
step
6承認者名コメントを配列に追加
例えば、承認要求を同時に3人送った場合は、それぞれの承認者名とコメントを取得して、申請者へのメール本文に追加します。
そうすることで、承認した理由、なぜ拒否になったのかなどを知ることができ、再申請するヒントになります。
㉓「アクションの追加」→変数の「文字列変数に追加」を追加します。
㉔名前に「承認者名コメント」を選択し、値に下記を追加します。
※アクション名は、「承認者名コメントへ追加」に変更します。
※下記をコピーして貼り付けると「Apply to each」が自動で追加しないので、その時は、「回答数 承認者名」を追加してください。
@{items('Apply_to_each_2')?['responder/displayName']}<br> @{coalesce(items('Apply_to_each_2')?['comments'],'コメントありません')}<br> <br>
step
7条件を追加1〜配列に承認者追加
「Apply to each2」の中に条件を追加して、true承認者承認Claimsの変数、false承認者拒否Claimsの変数に、承認者メールアドレスを追加してClaimsの配列にします。
㉕「アクションの追加」→コントロールの「条件」を追加します。
㉖左側の「値の選択」に「回答数 承認者の応答」を追加、右側の「値の選択」に『承認』を入力します。
※真ん中は、「次の値に等しい」のままにします。
㉗「はいの場合」の中の「アクションの追加」→変数の「配列変数に追加」を追加します。
㉘名前に「承認者承認Claims」を選択、値に下記を貼り付けます。
※アクション名は、「承認Claimsへ追加」に変更します。
{ "Claims":"i:0#.f|membership|@{items('Apply_to_each_2')?['responder/email']}" }
㉙「いいえの場合」の中の「アクションへの追加」→変数の「配列変数に追加」を追加します。
㉚名前に「承認者拒否Claims」を選択、値に下記を貼り付けます。
※アクション名は、「拒否Claimsへ追加」に変更します。
{ "Claims":"i:0#.f|membership|@{items('Apply_to_each_2')?['responder/email']}" }
step
8条件を追加2〜承認ステータス更新
最後の条件は、「結果」が「承認, 承認, 承認」と全員承認の場合は、「はいの場合」にします。
承認者数分の承認を条件にできないので、「拒否」を含まないを条件にします。
1つでも拒否があれば、「いいえの場合」になります。
㉛「Apply to each2」の下で「Apply to each」の中の「アクションの追加」→コントロールの「条件」を追加します。
㉜左側の「値の選択」に「結果」を追加、右側の「値の選択」に『拒否』を入力します。
※真ん中は、「次の値を含まない」に変更します。
㉝「はいの場合」の中の「アクションの追加」→「項目の更新」を追加します。
㉞サイトのアドレス、リスト名「申請」を選択します。
㉟「申請されたとき」からID「ID」、Title「Title」、内容「内容」を追加します。
㊱承認ステータスを「承認」を選択します。
㊲承認者に変数「承認者承認Claims」を追加します。
※「T」のマークをクリックして、アレイに切り替えてください。
※アクション名は、「承認ステータス承認」に変更します。
㊳「いいえの場合」も㉝〜㊲を参考に承認ステータス「拒否」を選択、変数「承認者拒否Claims」を追加します。
※アクション名は、「承認ステータス拒否」に変更します。
step
9申請者に承認・拒否メール送信
申請者にメールで承認・拒否のメールを送信します。
メール本文は、HTMLにします。メールに複数ファイルを添付できますが、申請者が添付したファイルを添付する必要も無いので、アイテムへのリンクにしています。
※承認者が添付ファイルを編集(電子印鑑)を押す、承認したファイルをPDFに変換してメール送信するといった場合は、メールに添付する必要があると思います。
㊴「承認ステータス承認」の下の「アクションの追加」→「メールの送信(V2)」を追加します。
㊵宛先に「申請されたとき」の「申請者Email」を追加します。
㊶件名に『【承認】Title」を入力します。
㊷本文は、「</>」をクリックして、HTMLにしたら下記を貼り付けます。
※アクション名は、「承認メール」に変更します。
<p>@{triggerOutputs()?['body/Author/Department']}<br> @{triggerOutputs()?['body/Author/JobTitle']} @{triggerOutputs()?['body/Author/DisplayName']}さん<br> <br> <font color="red">承認</font>されました。<br> <br> 承認者一覧<br> @{variables('承認者名コメント')}<br> <br> ▼添付ファイル確認<br> <a href="@{triggerOutputs()?['body/{Link}']}" target="_blank" rel="noopener noreferrer"> アイテムへのリンク </a></p>
㊸「承認ステータス拒否」の下の「アクションの追加」→「メールの送信(V2)」を追加します。
㊹宛先に「申請されたとき」の「申請者Email」を追加します。
㊺件名に『【拒否】Title」を入力します。
㊻本文は、「</>」をクリックして、HTMLにしたら下記を貼り付けます。
※アクション名は、「拒否メール」に変更します。
㊼「保存」をクリックします。
<p>@{triggerOutputs()?['body/Author/Department']}<br> @{triggerOutputs()?['body/Author/JobTitle']} @{triggerOutputs()?['body/Author/DisplayName']}さん<br> <br> <font color="blue">拒否</font>されました。<br> <br> 承認者一覧<br> @{variables('承認者名コメント')}<br> <br> ▼添付ファイル確認<br> <a href="@{triggerOutputs()?['body/{Link}']}" target="_blank" rel="noopener noreferrer"> アイテムへのリンク </a></p>
差出人のメールボックスに「共有メールボックス」のメールアドレスを追加すると、フロー作成者以外のメールアドレスから送信することができます。
次に、このフローを編集して、多数決承認フローにします。
フローはコピーできるので、コピーして編集します。

多数決承認フロー作成手順
多数決承認のフローを作成します。
このフローのポイントは、承認者数です。
全員承認とは違い、承認要求した承認者の応答(承認)が半数より多いかを判断する必要があります。
変数の増加、div関数を使えば、全員承認フローを変更して多数決承認フローを作成することができます。

Power Automate多数決承認フロー
step
1フローをコピー
マイフローにある「全員承認フロー」を名前を付けて保存でコピーします。
①Power Automateのホームにある「マイフロー」→「全員承認フロー」→「名前をつけて保存」をクリックします。
②『多数決承認フロー』と入力し、「保存」をクリックします。
③「多数決承認フロー」→「編集」をクリックして、編集画面にします。
step
2承認者数の変数
変数を初期化して、承認者数の変数を追加します。
この変数に承認した承認者数が格納されます。
④「承認者名コメント格納用変数の初期化」の下の「アクションの追加」→「変数を初期化する」を追加します。
⑤名前に『承認者数』と入力し、種類に「整数」を選択します。
※アクション名は、「承認者数格納用変数の初期化」に変更します。
⑥「Apply to each2」のアクションを展開します。
⑦「承認者名コメントへ追加」の下の「アクションの追加」→「変数の値を増やす」を追加します。
⑧名前に「承認者数」と選択し、値に下記式を入力します。
※アクション名は、「承認者数の増加」に変更します。
if(equals(items('Apply_to_each_2')?['approverResponse'],'承認'),1,0)
step
3条件2の変更
フロー最後の条件を「承認者数」次の値より大きい「div式」にします。
例えば、3人に承認要求を送り、2人承認した場合「承認者数は2人」
divの式で3人÷2をすると結果は1になる(四捨五入がない)ので、1より大きい2はtureになります。
※divの式の中にあるlengthは承認者の要素数です。
⑨「条件2」を展開します。
⑩左側の「値の選択」に変数の「承認者数」を追加、右側の「値の選択」に下記式を入力します。
※真ん中は、「次の値より大きい」に変更します。
div(length(items('Apply_to_each')?['Authorizer']),2)
複数添付ファイル追加手順
承認アクション(承認要求)が1つのワークフローは、承認者がファイルを確認してから応答するために、ファイルを添付したいということもあるかと思います。
アイテムの添付ファイルは、4つのアクションで承認要求に追加できます。

Power Automate全員承認フロー
step
1添付ファイルの取得、コンテンツの取得
全員承認フローにアクションを追加して、添付ファイルを取得、コンテンツを取得します。
①「申請されたとき」の下の「アクションの追加」→「添付ファイルの取得」を追加します。
②サイトのアドレス、リスト名「申請」を選択、IDに「申請されたとき」の「ID」を追加します。
※アクション名は、変更しません。
③「添付ファイルの取得」の下の「アクションの追加」→「添付ファイルのコンテンツの取得」を追加します。
④サイトのアドレス、リスト名「申請」を選択、IDに「申請されたとき」の「ID」を追加します。
⑤ファイル識別子に「添付ファイルの取得」の「Id」を追加します。
※自動で「Apply to each」が追加されます。
※アクション名は、変更しません。
step
2添付ファイルの作成
「開始して承認を待機」のアクションの添付ファイルに追加する配列にします。
※「開始して承認を待機」の添付ファイル名前、コンテンツに適当なテキストを入れて、「T」のマークを選択すると、どのようなかたちにすればいいか分かります。
⑥「添付ファイルのコンテンツの取得」の下の「アクションの追加」→データ操作の「作成」を追加します。
⑦入力に下記を貼り付けます。
※アクション名は、「添付ファイルの作成」に変更します。
{ "name": @{items('Apply_to_each_3')?['DisplayName']}, "content": @{body('添付ファイルのコンテンツの取得')} }
step
3添付ファイルの追加
「開始して承認を待機」のアクションの添付ファイルに「添付ファイルの作成」の「出力」を式で追加します。
⑧「開始して承認を待機」を展開して、「詳細オプションを表示する」をクリックします。
⑨添付ファイルの「T」のマークをクリックして、アレイの入力に切り替えます。
⑩添付ファイルの一覧に「添付ファイルの作成」の「出力」を式で追加します(下記式になります)。
outputs('添付ファイルの作成')
⑪「保存」をクリックします。
フローのテスト、承認アプリ、Outlookでの承認要求の応答については、YouTubeで公開する予定です。

まとめ
今回は、承認フローの複数承認者、複数添付ファイルを説明しました。
複数承認者は、直列で複数承認者の場合もありますが、承認要求を一斉に送りたい場合は、全員承認、多数決承認になります。
Power Automateを使えば簡単に承認フローを構築することができますが、これではまだ不十分です。
独自権限を作成して、承認後に共有を停止、権限を付与するなど細かいところの設定を忘れないようにしてください。
また、SharePointサイト、Teamsのタブアプリなど、どこにリストを置くか、申請方法も検討してください。
この記事では、アクションが少ないフローでしたが、実践で使える稟議申請ワークフローを構築しようとすると、アクションが多くなり大変な作業です。
SharePointポータルサイト活用の「稟議申請ワークフロー」では、この記事のようにアクションにコピペで追加できるように、読者ページを用意しています。
読者以外の方が、この記事を読まれたら、ヘコタレてしまうかもしれませんが1つフローをつくれば、フローはコピーできます。
承認ワークフローシステムを契約しているけど、一部の部署でSharePoint+Power Automateのワークフローを構築したい人が多いようなので、興味ある方は、是非 「SharePointポータルサイト活用」の電子書籍をよろしくお願いします。
目次
第1章 意外と知らないSharePointの便利な使い方(初級)
|Outlookは使わない予約カレンダーの作り方
|外部共有のフォルダー、ファイルを決まった期間で削除
第2章 リストを活用して複雑な承認ワークフローを実現(中級)
|稟議申請ワークフローの概要
|稟議申請ワークフローの仕組みについて
|3つのリスト作成手順
|稟議申請フロー作成手順
|稟議再申請、取下フロー作成手順
第3章 SharePointでWebアプリを使おう!(上級)
|SharePoint上でWebアプリを公開する
|在席確認アプリ機能概要
|在席確認アプリ公開手順
おわりに
本の説明
会社の社内ポータルサイトを活用したい方は、「稟議申請ワークフロー」「在席確認アプリ」「予約カレンダー」「外部共有サイト」の4つを活用できます。社内ポータルサイトを構築したら、次はあなたが開発者になって、手順を見ながら4つの作成してください。
無料体験でも読むことができます。

>>「SharePointポータルサイト活用」を読み放題プラン(初回30日無料)で読む
