Power Apps SharePointのデータを一括更新する方法 Patch vs UpdateIf vs ForAll

SharePointのデータの一括更新について聞かれたので、ついでに性能比較もしてみた。

スポンサーリンク

やってみたこと

今回はアイテムが500個以上あるSharePointリストに対し、「文字列」型の列に値を一括設定してみた。
※設定[データ行の制限]は500のままなので、更新対象は先頭500件

比較したのは以下の3つの関数。

  • Patch
  • UpdateIf
  • ForAll

結論:SharePointリストの一括更新はPatchが速い

UpdateIf

まずUpdateIf。式はこんな感じ。

UpdateIf('501sample', true, {s:"a"} );

式はシンプルで悪くないんだけど、500件の更新に約1分半ほどかかる。

Patch

続いてPatch。式はこんな感じ。

ClearCollect(target, '501sample'); // 全データをPower Apps側に持ってきて
UpdateIf(target, true, {s:"b"} );  // UpdateIfでPower Apps側のデータを一括更新
Patch('501sample',target);         // Patchで一気に適用

結果はこちら。500件の更新が約20秒くらい。

ForAll

最後はForAll。式はこんな感じ。

With({target:'501sample'},
    ForAll(target,
        Patch('501sample',ThisRecord, {s:"f"});
    )
);

意外と善戦して500件の更新で約1分10秒くらい

ということで結論はPatchでの一括更新が一番早かった。

ただしデータソースがDataverseの場合、UpdateIfが委任できるため結果が変わる可能性あり。こちらは次回。

関連記事

タイトルとURLをコピーしました