Office365(Microsoft365)で、ユーザーオペやスケジュールをトリガーに自動起動する連携処理を実装するのに便利なPowerAutomateですが、実際に業務の中で使おうとするといろいろな制約があります。
そのような制約を克服するため思いついたり調べたりした内容をご紹介していこうと考えています。
Problem
Power Automateのクラウドフローで、Excelファイル内の表(テーブル)からレコードを読み取るために使用するアクションが 「表内に存在する行を一覧表示」(List rows present in a table) 。
このアクションで取得できる行数には上限があります。
こちらの設定項目のことではありません。この項目でも「上限」を設定できますが、この項目に何も入力していない、つまり「既定値=すべて」の状態であっても、上限は存在します:
試みに、以下のように淡々と数字(1~1000くらい)が並ぶ表を準備して、「表内に存在する行を一覧表示」で読み取ってみます:
そして、結果のJSONを見てみると:
──この通り、256件が上限となっています。
Solution
根本的な対策としては、取得するデータを少なくするために「フィルタークエリ」を指定したり、「スキップ数」を指定したりする方法を検討すべきでしょう。あるいは定期的に処理済みのデータを別の場所に退避したり削除したりして、読み取り対象の表のデータを一定件数に抑えておくというのも選択肢に入るかもしれません。
暫定的な対策としては、「設定」画面で「改ページ」をONにして「しきい値」を設定することになります:
──この変更をして「完了」をクリックすれば、256件より多く(しきい値以下)データが取得できるようになります。