ER 形式におけるシーケンス要素の実行の延期

Note

コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engage コミュニティに参加し、最新のディスカッションに参加するには、「 Finance and Operations Viva Engage Community へのアクセスを要求する 」フォームに入力し、参加するコミュニティを選択します。

Overview

電子レポート (ER) フレームワークの操作デザイナーを使用して、テキスト形式で送信ドキュメントを生成する ER ソリューションの形式コンポーネントを構成します。 コンフィギュレーションされた形式コンポーネントの階層構造は、さまざまなタイプの形式要素で構成されます。 これらの書式要素は、生成されたドキュメントに実行時に必要な情報を入力します。 既定では、ER 形式を実行すると、書式要素は、書式階層に表示される順序と同じ順序で実行されます(上から下に 1 つずつ)。 ただし、デザイン時に、コンフィギュレーションされた形式コンポーネントのすべてのシーケンス要素の実行順序を変更することができます。

構成された形式のシーケンス書式要素の Deferred 実行 オプションをオンにすると、その要素の実行を延期 (延期) します。 要素は、親の他のすべての要素が実行されるまで実行されません。

この機能の詳細を知るには、この記事の例を実行します。

制限事項

遅延実行オプションは、テキスト形式で送信ドキュメントを生成する ER 形式用に構成されたシーケンス要素のみをサポートします。

遅延実行オプションは、最大長が制限されているトリミングされたシーケンスとして構成されたシーケンスには適用されません。

例: ER 形式のシーケンス要素の実行の延期

次のステップは、システム管理者または電子申告機能コンサルタント ロール のユーザーが、実行順序が形式階層の順序とは異なるシーケンス要素を含む ER 形式をコンフィギュレーションする方法を説明します。

これらの手順は、Microsoft Dynamics 365 Financeの USMF 企業で実行できます。

前提条件

この例を完了するには、次のいずれかのロール用の Finance の USMF 会社にアクセスできる必要があります。

  • 電子申告機能コンサルタント
  • システム管理者

「ER 形式の XML 要素の実行を延期する」の記事の例をまだ完了していない場合は、サンプル ER ソリューションの次の構成をダウンロードしてください。

コンテンツの説明 ファイル名
ER データ モデル構成 遅延 elements.version.1.xml を知るためのモデル
ER モデル マッピング コンフィギュレーション 遅延 element.version.1.1.xml を知るためのマッピング

開始する前に、サンプル ER ソリューションの次の構成をダウンロードして保存します。

コンテンツの説明 ファイル名
ER フォーマット構成 遅延シーケンスを知るための形式. バージョン .1.1.xml

サンプル ER のコンフィギュレーションのインポート

  1. 組織管理>ワークスペース>電子申告の順に移動します。

  2. コンフィギュレーションをレポートするを選択します。

  3. 構成で、遅延要素を学習するモデル構成が構成ツリーで使用できない場合は、ER データ モデルの構成をインポートします。

    1. 交換を選択し、XML ファイルから読み込むを選択します。
    2. 参照をクリックし、遅延 elements.1.xml を知るためのモデル ファイルを検索して選択し、OK をクリックします。
  4. コンフィギュレーション ページで、遅延要素を知るためのマッピング コンフィギュレーションがコンフィギュレーション ツリーで使用できない場合、ER データ マッピング コンフィギュレーションをインポートします。

    1. 交換を選択し、XML ファイルから読み込むを選択します。
    2. 参照をクリックし、遅延 elements.1.1.xml を知るためのマッピング ファイルを検索して選択し、OK をクリックします。
  5. ER 形式コンフィギュレーションのインポート:

    1. 交換を選択し、XML ファイルから読み込むを選択します。
    2. 参照をクリックし、遅延 sequences.1.1.xml を知るための形式 ファイルを検索して選択し、OK をクリックします。
  6. コンフィギュレーション ツリーで、遅延要素を知るためのモデルを展開します。

  7. コンフィギュレーション ツリーでインポートされた ER コンフィギュレーションのリストを確認します。

    [構成] ページでインポートされた ER 構成のスクリーンショット。

コンフィギュレーション プロバイダーの有効化

  1. 組織管理>ワークスペース>電子申告の順に移動します。

  2. ローカライズ構成の [構成プロバイダー] セクションで、Litware, Inc. () サンプル会社のhttp://www.litware.comが一覧表示され、アクティブとしてマークされていることを確認します。 この構成プロバイダーがリストに表示されない場合、またはアクティブとしてマークされていない場合、構成プロバイダーの作成および有効なプロバイダーとしてのマーク付け 記事の手順に従ってください。

    [ローカリゼーション構成] ページの Litware, Inc. サンプル企業のスクリーンショット。

インポートされたモデル マッピングを確認する

税トランザクションにアクセスし、要求に応じてアクセスされたデータを公開するように構成された ER モデル マッピング コンポーネントの設定を確認します。

  1. 組織管理>ワークスペース>電子申告の順に移動します。

  2. コンフィギュレーションをレポートするを選択します。

  3. [構成] の構成ツリーで、[モデル] を展開して遅延要素を学習します。

  4. 遅延要素を知るためのマッピング コンフィギュレーションを選択します。

  5. デザイナーを選択して、マッピングの一覧を開きます。

  6. デザイナーを選択して、マッピングの詳細を確認します。

  7. 詳細を表示を選択します。

  8. 税トランザクションにアクセスするように構成されたデータ ソースを確認します。

    • テーブル レコード タイプトランザクション データ ソースは、TaxTrans アプリケーション テーブルのレコードにアクセスするようにコンフィギュレーションされています。

    • 計算済フィールド タイプの伝票データ ソースは、必要な伝票コード (INV-10000349 および INV-10000350) をレコードのリストとして返すようにコンフィギュレーションされています。

    • フィルター処理された計算済フィールド タイプのデータソースは、トランザクション データ ソースから、必要な伝票の税トランザクションのみを選択するようにコンフィギュレーションされています。

    • 計算済フィールド タイプの $TaxAmount フィールドはフィルター処理されたデータ ソースに対して追加され、反対の符号を持つ税額を公開します。

    • グループ化されたグループ化タイプのデータ ソースは、フィルター処理されたフィルター処理データ ソースの税トランザクションをグループ化するようコンフィギュレーションされます。

    • グループ化されたデータ ソースの TotalSum 集計フィールドは、そのデータ ソースでフィルター処理されたすべての税トランザクションに対して、フィルター処理されたデータ ソースの $TaxAmount フィールドの値を集計するようにコンフィギュレーションされています。

      [GroupBy パラメーターの編集] ページの TotalSum 集計フィールドのスクリーンショット。

  9. コンフィギュレーションされたデータ ソースをデータ モデルにバインドする方法、および ER 形式で利用可能になるようにアクセス データを公開する方法を確認します。

    • フィルター処理されたデータ ソースは、データ モデルの Data.List フィールドにバインドされます。
    • フィルター処理されたデータ ソースの $TaxAmount フィールドは、データ モデルの Data.List.Value フィールドにバインドされます。
    • グループ化されたデータ ソースの TotalSum フィールドは、データ モデルの Data.Summary.Total フィールドにバインドされます。

    [モデル マッピング デザイナー] ページのスクリーンショット。

  10. モデル マッピング デザイナーおよびモデル マッピングのページを閉じます。

インポートされた形式を確認する

  1. [構成] の構成ツリーで、[形式] を選択して遅延シーケンスの構成を学習します。

  2. デザイナーを選択して、形式の詳細を確認します。

  3. 詳細を表示を選択します。

  4. 税トランザクションの詳細を含むテキスト形式で送信ドキュメントを生成するようにコンフィギュレーションされている ER フォーマット コンポーネントの設定を確認します。

    • レポート\明細行シーケンス形式要素は、1 つの行で送信ドキュメントを入力するようにコンフィギュレーションされ、入れ子になったシーケンス要素から生成されます (ヘッダーレコード、および集計)。

      Format designer ページの Lines シーケンスフォーマット要素とネストされた要素のスクリーンショット。

    • レポート\明細行\ヘッダーのシーケンス形式要素は、1 つの行で送信ドキュメントを入力するようにコンフィギュレーションされ、処理を開始するときに日時を表示します。

    • レポート\明細行\レコードのシーケンス形式要素は、1 つの行で送信ドキュメントを入力するようにコンフィギュレーションされ、個別の税トランザクションの詳細を表示します。 これらの税トランザクションは、セミコロンで区切られます。

      区切り記号としてセミコロンを使用するレコード シーケンス形式要素のスクリーンショット。

    • レポート\明細行\集計のシーケンス形式要素は、1 つの集計行で送信ドキュメントを入力するようにコンフィギュレーションされ、処理された税トランザクションの税額の合計が含まれます。

  5. マッピング タブで、次の詳細を確認します。

    • Report\Lines\Header 要素は、送信ドキュメントで 1 行を生成するためにデータ ソースにバインドする必要はありません。
    • Prefix1 要素は、追加された行がレポート ヘッダー行であることを示す P1 記号を生成します。
    • ExecutionDateTime 要素は、ヘッダー行が追加された時の日時 (ミリ秒を含む) を生成します。
    • レポート\明細行\レコード要素は、model.Data.List リストにバインドされ、バインド リストからすべてのレコードに対して 1 行生成します。
    • Prefix2 要素は、追加された行が税トランザクション詳細用であることを示す P2 記号を生成します。
    • TaxAmount 要素は、model.Data.List.Value (相対パス ビューに @.Value として表示される) にバインドされ、現在の税トランザクションの税額を生成します。
    • RunningTotal 要素は、税額累計額のプレースホルダーです。 現在、バインディングも既定値もコンフィギュレーションされていないため、この要素には出力がありません。
    • ExecutionDateTime 要素は、現在のトランザクションがこのレポートで処理される時の日時 (ミリ秒を含む) を生成します。
    • Report\Lines\Summary 要素は、送信ドキュメントで 1 行を生成するためにデータ ソースにバインドする必要はありません。
    • Prefix3 要素は、追加された行に税額合計が含まれていることを示す P3 記号を生成します。
    • TotalTaxAmount 要素は model.Data.Summary.Total にバインドされ、処理された税トランザクションの税額合計を生成します。
    • ExecutionDateTime 要素は、集計行が追加された時の日時 (ミリ秒を含む) を生成します。

    [書式] デザイナー ページの [マッピング] タブのスクリーンショット。

インポートされた ER 形式の実行

  1. 書式デザイナーで、[実行] を選択します

  2. Web ブラウザーからファイルをダウンロードし、確認のために開きます。

    ダウンロードしたサンプル レポート ファイルのスクリーンショット。

サマリー行 22 には、処理されたトランザクションの税額の合計が表示されます。 モデルのData.Summary.Totalバインディングを使用する形式であるため、この合計は、モデル マッピングを使用するGroupBy型のGroupedデータ ソースのTotalSum集計を呼び出して計算されます。 この集計を計算するために、モデル マッピングは 、フィルター処理された データ ソースで選択されたすべてのトランザクションを反復処理します。 明細行 21 と 22 の実行時間を比較することにより、合計の計算に 10 ミリ秒 (ms) かかったことを特定できます。 明細行 2 と 21 の実行時間を比較することにより、すべてのトランザクション明細行の生成に 7 ミリ秒 (ms) かかったことを特定できます。 したがって、合計 17 ミリ秒必要でした。

合計が生成された出力に基づくように形式を変更する

トランザクションの量が現在の例のボリュームよりも大きい場合、合計時間が増加してパフォーマンスの問題が発生する可能性があります。 形式の設定を変更することにより、これらパフォーマンスの問題を防ぐことができます。 税額にアクセスして生成されたレポートに含めることができるため、この情報を再利用して税額を合計することができます。 詳細については、集計と合計を行うよう形式をコンフィギュレーションする を参照してください。

  1. 形式タブの形式デザイナー ページで、形式ツリーのレポート ファイル要素を選択します。

  2. 出力詳細の収集オプションをはいに設定します。 データ収集 カテゴリの組み込み ER 機能を使用してアクセスできるデータ ソースとして既存のレポートの内容を使用することで、この形式をコンフィギュレーションできるようになりました。

  3. マッピング タブで、レポート\明細行シーケンス要素を選択します。

  4. 収集したデータ キー名の式を WsColumn としてコンフィギュレーションします。

  5. 収集したデータ キーの値の式を WsRow としてコンフィギュレーションします。

    フォーマット デザイナーページの Lines シーケンス要素のスクリーンショット。

  6. レポート\明細行\レコード\TaxAmount 数値要素を選択します。

  7. 収集したデータ キー名の式を SummingAmountKey としてコンフィギュレーションします。

    [書式] デザイナー ページの TaxAmount 数値要素のスクリーンショット。

    セル A1 の値が処理されたすべての税トランザクションからの税額の値で追記されている、この仮想ワークシートのフルフィルメントの設定を考慮することができます。

  8. レポート\明細行\レコード\RunningTotal の数値要素を選択し、フォーミュラの編集を選択します。

  9. 組み込みの SUMIF(SummingAmountKey, WsColumn, WsRow) ER 関数を使用して 式をコンフィギュレーションします。

  10. 保存を選びます。

    SUMIF 式のスクリーンショット。

  11. フォーミュラ デザイナー ページを閉じます。

  12. 保存を選択して、実行を選択します。

  13. Web ブラウザーからファイルをダウンロードし、確認します。

    合計税値を含むダウンロードしたファイルのスクリーンショット。

    明細行 21 には、生成された出力をデータ ソースとして使用することにより、処理されたすべてのトランザクションに対して計算される税額の累計が含まれます。 このデータ ソースは、レポートの先頭から開始し、最後の税トランザクションまで続行します。 明細行 22 には、モデル マッピングにおいて GroupBy タイプのデータ ソースを使用して計算され、処理されたすべてのトランザクションの税額の合計が含まれています。 これらの値は等しくなります。 そのため、 GroupBy の代わりに出力ベースの合計を使用できます。 明細行 2 と 21 の実行時間を比較することにより、すべてのトランザクション明細行の生成および合計に 9 ミリ秒 (ms) かかったことを特定できます。 したがって、詳細行の生成および税額の合計が懸念されるかぎり、変更された形式は元の形式よりも約 2 倍速くなります。

  14. レポート\明細行\集計\TotalTaxAmount の数値要素を選択し、フォーミュラの編集を選択します。

  15. 既存の式の代わりに SUMIF(SummingAmountKey, WsColumn, WsRow) 式を入力します。

  16. 保存を選択して、実行を選択します。

  17. Web ブラウザーからファイルをダウンロードし、確認します。

    数式を編集してダウンロードしたファイルのスクリーンショット。

    最後のトランザクション詳細行の税額累計は、集計行の合計値と等しくなるようになりました。

レポート ヘッダーに出力ベースの集計を配置する

たとえば、レポートのヘッダーに税額の合計を表示する必要がある場合は、書式を変更できます。

  1. 形式タブの形式デザイナー ページで、レポート\明細行\集計シーケンス要素を選択します。

  2. 上へ移動を選択します。

  3. 保存を選択して、実行を選択します。

  4. Web ブラウザーからファイルをダウンロードし、確認します。

    レポート ヘッダーの合計用にダウンロードされたファイルのスクリーンショット。

    この合計は生成された出力に基づいて計算されるため、集計行 2 の税額の合計は 0 (ゼロ) になりました。 明細行 2 が生成される時、生成された出力にはまだトランザクションの詳細のある行は含まれていません。 この形式を構成して、Report\Lines\Summary シーケンス要素の実行を、すべての税トランザクションに対して Report\Lines\Record シーケンス要素が実行されるまで延期することができます。

集計シーケンスの実行を延期することにより、計算された合計が使用されます

  1. 形式タブの形式デザイナー ページで、レポート\明細行\集計シーケンス要素を選択します。

  2. 遅延実行オプションをはいに設定します。

    [書式] デザイナー ページの [概要] シーケンス要素の [遅延実行] オプションのスクリーンショット。

  3. 保存を選択して、実行を選択します。

  4. Web ブラウザーからファイルをダウンロードし、確認します。

    遅延実行を含むダウンロードしたファイルのスクリーンショット。

    Report\Lines\Summary シーケンス要素は、親要素 Report\Lines の下に入れ子になっている他のすべてのアイテムの実行後にのみ実行されるようになりました。 そのため、model.Data.List データ ソースのすべての税トランザクションに対して Report\Lines\Record シーケンス要素が実行された後に実行されます。 明細行 1、2、および 3 の実行時間と最後の明細行 22 の実行時間はこの事実を示しています。

追加リソース