パラメーター化された計算フィールドのデータ ソースを追加して、ER ソリューションのパフォーマンスを向上させる
この記事では、実行される 電子申告 (ER) 形式の パフォーマンス追跡 を取得し、それらのトレースからの情報を使用して、パラメーター化された 計算フィールド のデータ ソースを構成することにより、パフォーマンスを向上させる方法について説明します。
ビジネス ドキュメントを生成するための ER コンフィギュレーションをデザインするプロセスの一部として、アプリケーションからデータを取得し、生成された出力に入力するために使用されるメソッドを定義します。 計算フィールド 型のパラメーター化された ER データ ソースをデザインすることにより、データベース呼び出し回数を減らし、ER 形式の実行の詳細を収集に関連する時間とコストを大幅に削減することができます。
必要条件
この記事の例を完了するには、次のいずれかの ロール にアクセスできる必要があります:
- 電子申告開発者
- 電子申告機能コンサルタント
- システム管理者
この会社は、DEMF に設定する必要があります。
この記事の 付録 1 の手順に従って、この記事の例を完了するために必要なサンプルの Microsoft ER ソリューションのコンポーネントをダウンロードします。
この記事の 付録 2 の手順に従って、サンプルの Microsoft ER ソリューションのパフォーマンスを向上させるために ER フレームワークを使用するために必要な ER パラメーターの最小セットを構成します。
サンプル ER ソリューションのインポート
仕入先トランザクションを示す新しいレポートを生成するため、ER ソリューションを設計する必要があるとします。 現時点では、選択した仕入先のトランザクションは 仕入先トランザクション ページ (買掛金勘定>仕入先>すべての仕入先 に移動し、仕入先を選択してから、アクション ペインの 仕入先 タブの トランザクション グループで、トランザクション を選択します) で検索できます。 ただし、XML 形式の 1 つの電子ドキュメントに、すべての仕入先トランザクションをまとめる必要があります。 このソリューションは、必要なデータ モデル、モデル マッピング、および形式コンポーネントを含むいくつかの ER コンフィギュレーションで構成されます。
最初の手順は、サンプル ER ソリューションをインポートして、仕入先トランザクション レポートを生成することです。
会社用にプロビジョニングされた Microsoft Dynamics 365 Finance のインスタンスにサインインします。
この記事では、サンプル会社 Litware, Inc. の構成を作成または変更します。 このコンフィギュレーション プロバイダーが Finance インスタンスに追加され、有効としてマークされていることを確認してください。 詳細については、構成プロバイダーを作成して、有効としてマークする を参照してください。
電子レポートワークスペースで、レポート コンフィギュレーションタイルを選択します。
コンフィギュレーション ページで、前提条件としてダウンロードした ER コンフィギュレーションを Finance に次の順序でインポートします: データ モデル、モデル マッピング、フォーマット。 各コンフィギュレーションについて、次の手順を実行します。
- 操作ウィンドウで、交換>XML ファイルからロード を選択します。
- 参照 を選択して、ER コンフィギュレーションに適したファイルを XML 形式で選択します。
- OK を選択します。
サンプル ER ソリューションのレビュー
モデル マッピングを確認する
コンフィギュレーション ページのコンフィギュレーション ツリーで、パフォーマンス向上モデル を展開し、パフォーマンス向上マッピング を選択します。
アクション ウィンドウで、デザイナーを選択します。
モデルからデータ ソースへのマッピング ページのアクション ペインで、デザイナー を選択します。
この ER モデル マッピングは、次のアクションを実行するように設計されています:
- VendTrans テーブル (Trans データ ソース) に格納されている仕入先トランザクションの一覧を取得します。
- すべてのトランザクションについて、VendTable テーブルから、トランザクションが転記された仕入先 (#Vend データソース) のレコードを取得します。
メモ
#Vend データ ソースは、既存の多対一の関係 @.'>Relations'.VendTable_AccountNum を使用して、対応する仕入先レコードを取得するように構成されています。
このコンフィギュレーションのモデル マッピングは、このモデルに対して作成され Finance で実行される、すべての ER 形式の基本データ モデルを実装します。 したがって、Trans データ ソースの内容は、抽象 モデル データ ソースなどの ER 形式に対して公開されます。
モデル マッピング デザイナー ページを閉じます。
モデルからデータ ソースへのマッピング ページを閉じます。
形式の確認
コンフィギュレーション ページのコンフィギュレーション ツリーで、パフォーマンス向上モデル を展開し、パフォーマンス向上形式 を選択します。
アクション ウィンドウで、デザイナーを選択します。
形式デザイナー ページの マッピング タブで、展開 / 折りたたみ を選択します。
モデル、データ、および トランザクション 項目を展開します。
この ER 形式は、仕入先トランザクション レポートを XML 形式で生成するように設計されています。
形式デザイナー ページを閉じます。
サンプル ER ソリューションを実行して、実行を追跡する
ER ソリューションの最初のバージョンの設計が完了したとします。 これにより、Finance インスタンスでソリューションをテストし、実行パフォーマンスを分析します。
ER パフォーマンス追跡を有効にする
DEMF 会社を選択します。
ER パフォーマンス追跡を有効にする の手順に従って、ER 形式の実行中にパフォーマンス追跡を生成します。
ER 形式を実行する
- 組織管理> 電子申告> コンフィギュレーションに移動します。
- コンフィギュレーション ページのコンフィギュレーション ツリーで、パフォーマンス向上形式 を選択します。
- アクション ウィンドウで、実行を選択します。
パフォーマンス追跡を使用してモデル マッピングのパフォーマンスを分析する
- コンフィギュレーション ページのコンフィギュレーション ツリーで、パフォーマンス向上マッピング を選択します。
- アクション ウィンドウで、デザイナーを選択します。
- モデル マッピング ページのアクション ペインで、デザイナー を選択します。
- モデル マッピング デザイナー ページの、アクション ウィンドウで、パフォーマンス追跡を選択します。
- 生成された最新の追跡を選択し、OK を選択します。
現在のモデル マッピングの一部のデータ ソース項目に関する新しい情報が利用可能になりました:
- データ ソースを使用してデータの取得に費やした実際の時間
- モデル マッピング全体の実行に費やされた合計時間の割合で表される同じ時間
パフォーマンス統計 グリッドは、Trans データ ソースが VendTrans テーブルを 1 回呼び出すことを示しています。 Trans データ ソースの値 [265][Q:265] は、265 個の仕入先トランザクションがアプリケーション テーブルから取得された、データ モデルに返されたことを示します。
また、パフォーマンス統計 グリッドは、現在のモデル マッピングが、#Vend データ ソースの実行中にデータベース要求を重複していることも示します。 この重複は、次の理由で発生します:
仕入先テーブルは、反復された 265 回の仕入先トランザクションごとに 2 回呼び出され、合計 530 回の呼び出しが行われます:
- 仕入先番号を入力するために 1 回の呼び出しが行われます。
- 仕入先名を入力するために 1 回の呼び出しが行われます。
仕入先テーブルは、取得したトランザクションが 5 つの仕入先に対してのみ転記されている場合でも、反復された仕入先トランザクションごとに呼び出されます。 530 回の呼び出しのうち、525 回は重複しています。 次の図は、重複する呼び出し (データベース要求) についてのメッセージを示しています。
モデル マッピングの合計実行時間 (約 8 秒) のうち、80% (約 6 秒) 以上が VendTable アプリケーション テーブルから値を取得するために費やされたことに注目してください。 この割合は、VendTransアプリケーション テーブルからの情報量と比較して、5 つの仕入先の 2 つの属性に対して大きすぎます。
すべてのトランザクションの仕入先の詳細を取得するために行われる呼び出しの数を減らし、モデル マッピングのパフォーマンスを向上させるために、#Vend データ ソースにキャッシュを使用できます。
メモ
Trans\#Vend データ ソースは、実行時に Trans データ ソースの現在のトランザクションのスコープにキャッシュされます。
#Vend ソース データをキャッシュすることにより、525 から 260 に重複呼び出しの数を減らしますが、重複を完全に排除することはできません。 重複を完全に削除するために、計算フィールド 型の新しいパラメーター化されたデータ ソースを構成できます。
実行追跡からの情報に基づいてモデル マッピングを改善する
モデル マッピングのロジックを変更する
次の手順に従って、計算フィールド 型のキャッシュとデータソースを使用して、データベースへの重複呼び出しを防止します。
コンフィギュレーション ページのコンフィギュレーション ツリーで、パフォーマンス向上マッピング を選択します。
アクション ウィンドウで、デザイナーを選択します。
モデル マッピング ページのアクション ペインで、デザイナー を選択します。
モデル マッピング デザイナー ページで、次の手順に従って、テーブル レコード 型のデータ ソースを追加し、VendTable アプリケーション テーブルのレコードにアクセスします:
- データ ソース型 ペインで、Dynamics 365 for Operations を展開し、テーブル レコード を選択します。
- ルートの追加を選択します。
- ダイアログ ボックスで、名前 フィールドに Vend と入力します。
- テーブル フィールドに、VendTable と入力します。
- OK を選択します。
計算フィールド 型のデータ ソースへの呼び出をパラメーター化できるのは、それらのデータ ソースがコンテナーに存在する場合にのみです。 したがって、次の手順に従って、空コンテナー 型のデータ ソースを追加し、計算フィールド 型の新しいパラメーター化されたデータ ソースを保持します:
- データ ソース型 ペインで、一般 を展開し、空コンテナー を選択します。
- ルートの追加を選択します。
- ダイアログ ボックスで、名前 フィールドに Box と入力します。
- OK を選択します。
計算フィールド 型のパラメーター化されたデータ ソースを追加するには、次の手順に従います:
- データ ソース ペインで、Box を選択します。
- データ ソース型 ペインで、関数 を展開し、計算フィールド を選択します。
- 追加を選択します。
- ダイアログ ボックスで、名前 フィールドに Vend と入力します。
- 式の編集を選択します。
- フォーミュラ デザイナー ページで、パラメーター を選択して、このデータ ソースが呼び出されたときに入力する必要があるパラメーターを指定します。
- パラメーター ダイアログ ボックスで、新規 を選択します。
- 名前 フィールドに、parmVendAccNumber と入力します。
- タイプフィールドで、文字列を選択します。
- OK を選択します。
- フォーミュラ フィールドに、FIRSTORNULL(FILTER(Vend, Vend.AccountNum=parmVendAccNumber)) と入力し ます。
- 保存 を選択し、フォーミュラ デザイナー ページを閉じます。
- OKを選択して新しいデータ ソースを追加します。
次の手順に従って、追加されたデータ ソースを実行時にキャッシュ済みとしてマークします:
- データ ソース ペインで、Box\Vend を選択します。
- キャッシュを選択します。
メモ
Box\Vend データ ソースは、実行時に Trans データ ソースのすべての仕入先トランザクションのスコープにキャッシュされます。
次の手順に従って、ネストされた Trans\#Vend データ ソースを更新して、Box\Vend データ ソースを使用するようにします。
- データ ソース ペインで、Trans を展開します。
- Trans\#Vend データ ソースを選択し、編集>フォーミュラの編集 を選択します。
- フォーミュラ デザイナー ページの フォーミュラ フィールドに、Box.Vend(@.AccountNum) と入力します。
- 保存 を選択し、フォーミュラ デザイナー ページを閉じます。
- OK を選択して、選択したデータ ソースへの変更を完了します。
保存を選択します。
モデル マッピング デザイナー ページを閉じます。
モデル マッピング ページを閉じます。
ER モデル マッピングの変更されたバージョンを完了する
- コンフィギュレーション ページの、バージョン クイック タブで、パフォーマンス向上マッピング コンフィギュレーションのバージョン 1.2 を選択します。
- 状態の変更>完了 を選択し、OK を選択します。
変更された ER ソリューションを実行して追跡実行する
この記事の先のセクション ER 形式を実行する の手順を繰り返して、新しいパフォーマンス追跡を生成します。
パフォーマンス追跡を使用して、モデル マッピングの調整を分析する
- コンフィギュレーション ページのコンフィギュレーション ツリーで、パフォーマンス向上マッピング を選択します。
- アクション ウィンドウで、デザイナーを選択します。
- モデル マッピング ページのアクション ペインで、デザイナー を選択します。
- モデル マッピング デザイナー ページの、アクション ウィンドウで、パフォーマンス追跡を選択します。
- 生成された最新の追跡を選択し、OK を選択します。
モデル マッピングに対して行った調整によって、データベースへの重複するクエリが消去されたことに注意してください。 このモデル マッピングのデータベース テーブルおよびデータ ソースへの呼び出し数も減少しました。
合計実行時間は約 20 倍 (約 8 秒から約 400 ミリ秒) に短縮されました。 したがって、ER ソリューション全体のパフォーマンスが向上しました。
付録 1: サンプル Microsoft ER ソリューションのコンポーネントのダウンロード
次のファイルをダウンロードして、ローカルに保存する必要があります。
ファイル | コンテンツ |
---|---|
Performance improvement model.version.1 | ER データ モデル構成のサンプル |
Performance improvement mapping.version.1.1 | ER モデル マッピング構成のサンプル |
Performance improvement format.version.1.1 | ER フォーマット構成のサンプル |
付録 2: ER フレームワークを構成する
ER フレームワークを使用してサンプル Microsoft ER ソリューションのパフォーマンスを向上させる前に、ER パラメーターの最小セットを構成する必要があります。
ER パラメーターのコンフィギュレーション
組織管理>ワークスペース>電子申告の順に移動します。
ローカライズ構成ページの、関連リンクセクションで、電子申告パラメーターを選択します。
電子申告パラメーターページの、一般タブで、デザイン モードの有効化オプションをはいに設定します。
添付タブで、次のパラメーターを設定します:
- コンフィギュレーションフィールドで、DEMF 社のファイルタイプを選択します。
- ジョブ アーカイブ、一時的、ベースライン、およびその他フィールドで、ファイルタイプを選択します。
ER パラメーターについては、ER フレームワークのコンフィギュレーション を参照してください。
ER 構成プロバイダーをアクティブにする
追加されたすべての ER 構成は、ER 構成プロバイダーによって所有されているものとしてマークされます。 電子申告ワークスペースで有効化された ER 構成プロバイダーは、この目的に使用されます。 したがって、ER 構成に追加または編集する前に、電子申告ワークスペースの ER 構成プロバイダーを有効化する必要があります。
メモ
ER コンフィギュレーションの所有者のみがコンフィギュレーションを編集できます。 したがって、ER 構成を編集する前に、適切な ER 構成 プロバイダーは電子申告ワークスペースで有効化する必要があります。
ER 構成 プロバイダーの一覧をレビュー
- 組織管理>ワークスペース>電子申告の順に移動します。
- ローカライズ構成ページの、関連リンクセクションで、構成プロバイダーを選択します。
- 構成プロバイダー テーブルページでは、各プロバイダー レコードの名前と URL が一意になります。 このページの内容をレビューします。 Litware, Inc. レコードが既に存在する場合は、次の手順をスキップし、新しい ER コンフィギュレーション プロバイダーを追加 します。
新しい ER 構成プロバイダーを追加
- 組織管理>ワークスペース>電子申告の順に移動します。
- ローカライズ構成ページの、関連リンクセクションで、構成プロバイダーを選択します。
- 構成プロバイダーページで、新規を選択します。
- 名前フィールドに、Litware, Inc. と入力
- インターネット アドレスフィールドで、
https://www.litware.com
を入力します。 - 保存 を選択します。
ER 構成 プロバイダーをアクティブにする
- 組織管理>ワークスペース>電子申告の順に移動します。
- ローカライズ構成ページの構成プロバイダーセクションで、Litware, Inc.を選び、有効に設定を選択します。
ER 構成 プロバイダーについては、構成 プロバイダーを作成し有効としてマークする を参照してください。