カテゴリ: パフォーマンス
影響の可能性: 中程度
症状
同期プラグイン ロジックを Retrieve および RetrieveMultiple メッセージ イベントに追加すると、次の結果が得られます。
- 応答しないモデル駆動型アプリ
- クライアントの操作が遅い
- ブラウザーが応答を停止する
ガイダンス
RetrieveおよびRetrieveMultiple メッセージに登録されているプラグインを含むソリューションの設計を評価します。 一般に、さまざまなエントリ ポイントからエンティティ レコードまたはレコードを返す要求の速度低下に関連するリスクがあるため、これらのメッセージのプラグインを登録することはお勧めしません。 ただし、アプリケーションの設計に適している場合があります。 一般的なアプリケーションの例として、特定の既存のクエリにより多くのフィルター条件を挿入する方法があります。 このアプローチにより、ソリューションはビューのユーザー インターフェイスで実行できないことを補正できます。 ビュー デザイナーは、特定の複雑さの深さのみをサポートでき、結果またはクエリを拡張するために他のオプションを使用する必要があります。
適切なソリューションである場合は、次のヒントに従って、環境への影響を最小限に抑えます。
対象となるロジックを実行する必要があるかどうかを迅速に確認する条件をプラグイン コードに含めます。 そうでない場合は、迅速に戻り、呼び出し元にデータを返すのを遅らせる不要な余分な手順を実行しないようにします。
実行時間の長いタスク、特に非決定的なタスク (外部サービス呼び出しの呼び出しや Dataverse への複雑なクエリなど) は含めないでください。
Microsoft Dataverse からのより多くのデータのクエリを制限または回避します。
仮想エンティティ
最も一般的な Retrieve と RetrieveMultiple は、外部ソースからデータを取得するためにプラグイン内で呼び出されます。 外部ソースからのデータは、Power Apps 内でレンダリングされるか、既存のデータの処理/操作に使用されます。 Dataverse 仮想テーブル を使用すると、データのレプリケーションなしで、多くの場合、カスタム コーディングなしで、Power Apps でそのデータをテーブルとしてシームレスに表すことで、外部システムに存在するデータを統合できます。
警告を取得する
Dataverse は、エンティティ フォームの読み込みごとに少なくとも 2 つの Retrieve メッセージをトリガーします。 1 つの取得には、エンティティによって異なる可能性がある制限付き属性が含まれ、後続の呼び出しにはさらに多くの属性が含まれます。 フォームの読み込み中に 1 つのアクションが発生することが予想される場合は、 Retrieve メッセージのトリガーに厳密に依存しないでください。
追加情報
RetrieveメッセージとRetrieveMultipleメッセージは、最も頻繁に処理されるメッセージの 2 つです。
Retrieve メッセージは、エンティティ フォームを開くとき、またはいずれかのサービス エンドポイントでRetrieve操作を使用してエンティティにアクセスしているときにトリガーされます。
RetrieveMultiple は、アプリケーションとサービス エンドポイントのさまざまなアクション (ユーザー インターフェイスでグリッドを設定する場合など) が原因でトリガーされます。 これらのメッセージ イベントに同期プラグイン ロジックを追加すると、速度が低下する可能性があります。
こちらも参照ください
Microsoft Dynamics CRM Online のパフォーマンスの最適化
外部データ ソースからのデータを含む仮想エンティティを作成および編集する