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