承認フローを作成する(うまくいかない方法)
解決できる課題
SharePointにアップロードされたファイルを、Teamsと連携して、承認プロセスを自動化します。
完成イメージ

必要なもの
- SharePoint コネクタ
- Standard approvals コネクタ
作り方
これは失敗例です。
同じようなやり方を考えている方は、最下部の代案を検討してください。
SharePointのドキュメントにファイルがアップロードされると、Teamsの承認プロセスが起動。
担当者が承認/拒否をすることで、ファイルの「承認の状態」を自動で変更します。
- 1. トリガー「ファイルが作成または変更されたとき (プロパティのみ)」を設定
[サイトのアドレス]は、承認用のファイルをアップロードするサイトにします。
[ライブラリ名]は「ドキュメント」にします。 ※これが原因でうまくいきません
- 2. アクション「ファイル メタデータの取得」を設定
[サイトのアドレス]は、トリガーと同じものにします。
[ファイル識別子]は「識別子」にします。
※「ID」はリストアイテム用のため、エラーが発生します。「識別子」はドキュメント用です。
※ファイルのメタデータについて知りたい方はこちら
- 3. アクション「開始して承認を待機」を設定
[承認の種類]は任意のものを選択します(例えば、最初に応答した人が決める、全てのユーザーの決定が必要など)。
[タイトル]は、項番1で取得したファイルの「名前」を入れておくと、承認フローで区別をつけやすいです。
- 4. 条件を設定
項番3の承認/拒否に従い、フローを分岐させます。
※outputs('開始して承認を待機')?['body/outcome']
を入力
このoutputsの戻り値はApprove/Rejectなので、「Approve」を入力し、True/Falseを判定します。
- 5. アクション「コンテンツの承認状態を設定します-Approve」を設定 ※Reject側も同じ
大切なポイントは3つあります。
まず、[操作]は項番4の条件と合わせ、「Approve」がTrueなら「Approve」にします。
※Falseの側は「Reject」になります
[Etag]は、項番2で取得したメタデータに含まれ、SharePointでのファイル操作に必要なものです。
※outputs('ファイル_メタデータの取得')?['body/ETag']
を入力、Etagは【Entity Tag】の略
[ID]は、承認/拒否をするファイルを一意に決めるものです。
※outputs('ファイル_メタデータの取得')?['body/ItemId']
を入力
これではうまくいきません!
うまくいかない理由は、項番2の[ファイル識別子]と項番5の[ID]が、異なる性質を持つからです。
上述の通り、[ファイル識別子]はドキュメント用で、「identifier」(ファイルID)を指します。
[ID]はリスト用で、「ItemId」(リストアイテムID)を指します。
同じIDでも用途が異なるため、このフローではエラー(ETagがnull)となります。
つまり、両方のアクションで同じID種別を使う必要があります。
結論
ドキュメントライブラリのファイル承認は、現状のコネクタ仕様では制限があるようです。
Power Automateで安定して承認フローを自動化するには、リストアイテムを使うのが最適となります。
※Mircosoft公式のやり方はこちら
※ドキュメントライブラリでの承認機能の有効化はこちら