Use concurrent function to speed up your PowerApps loading time
PowerAppsでは今まで何かデータをコレクションにロードしたい場合に、複数のデータがあると、1つずつ読み込むためデータのロード時間が長かったりしました。
例)4つのデータを読みこむ場合
ClearCollect( Product, ‘[SalesLT].[Product]’ );
ClearCollect( Customer, ‘[SalesLT].[Customer]’ );
ClearCollect( SalesOrderDetail, ‘[SalesLT].[SalesOrderDetail]’ );
ClearCollect( SalesOrderHeader, ‘[SalesLT].[SalesOrderHeader]’ )
ロード時間は以下のようになります。遅いですね…
そこで誕生したのが、「Concurrent」関数です。Concurrent関数は、かっこの中に含まれた処理を並列で処理します。そのため、各処理を順番に待つことなく、同時に実行されて実行時間が大幅に削減できます。
例)4つのデータを並列で読み込む場合
Concurrent(
ClearCollect( Product, ‘[SalesLT].[Product]’ ),
ClearCollect( Customer, ‘[SalesLT].[Customer]’ ),
ClearCollect( SalesOrderDetail, ‘[SalesLT].[SalesOrderDetail]’ ),
ClearCollect( SalesOrderHeader, ‘[SalesLT].[SalesOrderHeader]’ )
)
以下のように短縮されました!半分以下ですね!
注意点としては、関数が他の関数の結果に影響される場合、Concurrent関数に含まれているものはその関連性を見ていないので、要注意です。
関数の詳細はこちらのドキュメントにも記載されています(英語)
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-concurrent
Leave a Reply