Power Automateクラウド版を使って、BOXフォルダ内のファイル一覧をSharePointのExcelに出力する際、初心者がつまずきやすいのが「Array型」と「For eachの自動作成」の扱いです。この記事では、エラー原因と具体的なフロー設計のコツを解説します。
BOXコネクタで取得するデータの型を理解する
BOXコネクタの「フォルダ内のファイル一覧」を取得するアクションは、複数のファイル情報を配列(Array)として返します。
注意点として、返される配列の各要素にはNameやIDなどのプロパティが含まれますが、これらは個別のString型です。そのため、直接For eachに入れると二重のFor eachが自動作成されることがあります。
「それぞれに適用する」を正しく使う方法
Array型のデータをFor eachに入れる場合、アクションの選択で「ファイル一覧(配列)」を選択してください。
その後、各アイテムのプロパティを使用する際は、For each内で動的コンテンツのNameやIDを参照するだけで問題ありません。
ポイントは外側のArrayをFor eachに渡すことです。String型の個別プロパティを直接For eachに渡すと型不一致のエラーが発生します。
Excelへの出力設定
SharePoint上のExcelに出力する場合、事前にテーブル形式で範囲を設定しておきます。
For each内で「行を追加」アクションを使用し、NameやIDなど必要な情報を各列にマッピングします。
複数のファイルを一度に処理したい場合、必ずArray全体をFor eachに渡すことで、各ファイルが1行ずつ追加されます。
差分検知とTeams通知の設計
BOXフォルダとExcelのリストを比較するには、以下の流れが有効です。
- BOXフォルダのファイル一覧を取得(Array)
- Excelの既存リストを取得
- 条件分岐(Condition)で差分をチェック
- 差分があればTeamsコネクタでメッセージ送信
この設計で、更新ファイルが発生した場合に自動通知が可能です。
よくあるトラブルと回避策
- 二重For eachができる場合は、外側に渡すデータがArrayか確認
- 動的コンテンツはプロパティ単位ではなく、必ずFor each内で参照
- Excelのテーブル範囲が正しく設定されていないと行追加でエラーになる
- Teams通知は差分検知後にのみ実行する
まとめ
Power AutomateでBOXのファイル一覧をExcelに出力するには、Array型とFor eachの扱いを正しく理解することが重要です。外側に配列を渡し、For each内で各プロパティを取得してExcel行に追加する設計をすると、型エラーを回避できます。また、差分検知とTeams通知を組み合わせれば、ファイル更新の自動通知フローも実現可能です。

コメント