電子申告形式におけるシーケンス要素の実行の延期
開始する
電子申告 (ER) フレームワークのオペレーション デザイナーを使用して、テキスト形式で送信ドキュメントを生成するために使用する ER ソリューションの 形式コンポーネント を 構成 することができます。 コンフィギュレーションされた形式コンポーネントの階層構造は、さまざまなタイプの形式要素で構成されます。 これらの形式要素は、生成されたドキュメントに実行時に必要な情報を入力するために使用されます。 既定では、ER 形式の実行時に、形式要素は形式階層に表示されているのと同じ順序で、上から下に 1 つずつ実行されます。 ただし、デザイン時に、コンフィギュレーションされた形式コンポーネントのすべてのシーケンス要素の実行順序を変更することができます。
コンフィギュレーションされた形式のシーケンス形式要素に対して 遅延実行オプションを有効にすることにより、その要素の実行を延期することができます。 この場合、親要素の他の要素すべてが実行されるまで、要素は実行されません。
この機能の詳細を知るには、この記事の例を実行します。
制限
遅延実行オプションは、テキスト形式で送信ドキュメントを生成するために使用される 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 のコンフィギュレーションのインポート
組織管理>ワークスペース>電子申告の順に移動します。
コンフィギュレーションをレポートするを選択します。
コンフィギュレーション ページで、遅延要素を知るためのモデル コンフィギュレーションがコンフィギュレーション ツリーで使用できない場合、ER データ モデル コンフィギュレーションをインポートします。
- 交換を選択し、XML ファイルから読み込むを選択します。
- 参照をクリックし、遅延 elements.1.xml を知るためのモデル ファイルを検索して選択し、OK をクリックします。
コンフィギュレーション ページで、遅延要素を知るためのマッピング コンフィギュレーションがコンフィギュレーション ツリーで使用できない場合、ER データ マッピング コンフィギュレーションをインポートします。
- 交換を選択し、XML ファイルから読み込むを選択します。
- 参照をクリックし、遅延 elements.1.1.xml を知るためのマッピング ファイルを検索して選択し、OK をクリックします。
ER 形式コンフィギュレーションのインポート:
- 交換を選択し、XML ファイルから読み込むを選択します。
- 参照をクリックし、遅延 sequences.1.1.xml を知るための形式 ファイルを検索して選択し、OK をクリックします。
コンフィギュレーション ツリーで、遅延要素を知るためのモデルを展開します。
コンフィギュレーション ツリーでインポートされた ER コンフィギュレーションのリストを確認します。
コンフィギュレーション プロバイダーの有効化
組織管理>ワークスペース>電子申告の順に移動します。
ローカライズのコンフィギュレーション ページのコンフィギュレーション プロバイダー セクションで、Litware, Inc. (
http://www.litware.com
) サンプル会社の コンフィギュレーション プロバイダー がリストに表示されていること、および有効としてマークされていることを確認します。 この構成プロバイダーがリストに表示されない場合、またはアクティブとしてマークされていない場合、構成プロバイダーの作成および有効なプロバイダーとしてのマーク付け 記事の手順に従ってください。
インポートされたモデル マッピングを確認する
税トランザクションにアクセスするようにコンフィギュレーションされている ER モデル マッピング コンポーネントの設定を確認し、リクエスト時にアクセスしたデータを公開します。
組織管理>ワークスペース>電子申告の順に移動します。
コンフィギュレーションをレポートするを選択します。
コンフィギュレーション ページのコンフィギュレーション ツリーで、遅延要素を知るためのモデルを展開します。
遅延要素を知るためのマッピング コンフィギュレーションを選択します。
デザイナーを選択して、マッピングの一覧を開きます。
デザイナーを選択して、マッピングの詳細を確認します。
詳細を表示を選択します。
コンフィギュレーションされたデータ ソースを確認し、税トランザクションにアクセスします。
テーブル レコード タイプのトランザクション データ ソースは、TaxTrans アプリケーション テーブルのレコードにアクセスするようにコンフィギュレーションされています。
計算済フィールド タイプの伝票データ ソースは、必要な伝票コード (INV-10000349 および INV-10000350) をレコードのリストとして返すようにコンフィギュレーションされています。
フィルター処理された計算済フィールド タイプのデータソースは、トランザクション データ ソースから、必要な伝票の税トランザクションのみを選択するようにコンフィギュレーションされています。
計算済フィールド タイプの $TaxAmount フィールドはフィルター処理されたデータ ソースに対して追加され、反対の符号を持つ税額を公開します。
グループ化されたグループ化タイプのデータ ソースは、フィルター処理されたフィルター処理データ ソースの税トランザクションをグループ化するようコンフィギュレーションされます。
グループ化されたデータ ソースの TotalSum 集計フィールドは、そのデータ ソースでフィルター処理されたすべての税トランザクションに対して、フィルター処理されたデータ ソースの $TaxAmount フィールドの値を集計するようにコンフィギュレーションされています。
コンフィギュレーションされたデータ ソースをデータ モデルにバインドする方法、および ER 形式で利用可能になるようにアクセス データを公開する方法を確認します。
- フィルター処理されたデータ ソースは、データ モデルの Data.List フィールドにバインドされます。
- フィルター処理されたデータ ソースの $TaxAmount フィールドは、データ モデルの Data.List.Value フィールドにバインドされます。
- グループ化されたデータ ソースの TotalSum フィールドは、データ モデルの Data.Summary.Total フィールドにバインドされます。
モデル マッピング デザイナーおよびモデル マッピングのページを閉じます。
インポートされた形式を確認する
コンフィギュレーション ツリーのコンフィギュレーション ページで、遅延シーケンスを知るための形式コンフィギュレーションを選択します。
デザイナーを選択して、形式の詳細を確認します。
詳細を表示を選択します。
税トランザクションの詳細を含むテキスト形式で送信ドキュメントを生成するようにコンフィギュレーションされている ER フォーマット コンポーネントの設定を確認します。
レポート\明細行シーケンス形式要素は、1 つの行で送信ドキュメントを入力するようにコンフィギュレーションされ、入れ子になったシーケンス要素から生成されます (ヘッダー、レコード、および集計)。
レポート\明細行\ヘッダーのシーケンス形式要素は、1 つの行で送信ドキュメントを入力するようにコンフィギュレーションされ、処理を開始するときに日時を表示します。
レポート\明細行\レコードのシーケンス形式要素は、1 つの行で送信ドキュメントを入力するようにコンフィギュレーションされ、個別の税トランザクションの詳細を表示します。 これらの税トランザクションは、セミコロンで区切られます。
レポート\明細行\集計のシーケンス形式要素は、1 つの集計行で送信ドキュメントを入力するようにコンフィギュレーションされ、処理された税トランザクションの税額の合計が含まれます。
マッピング タブで、次の詳細を確認します。
- レポート\明細行\ヘッダー要素は、送信ドキュメントの 1 つの行を生成するのに、データ ソースにバインドする必要はありません。
- Prefix1 要素は、追加された行がレポート ヘッダー行であることを示す P1 記号を生成します。
- ExecutionDateTime 要素は、ヘッダー行が追加された時の日時 (ミリ秒を含む) を生成します。
- レポート\明細行\レコード要素は、model.Data.List リストにバインドされ、バインド リストからすべてのレコードに対して 1 行生成します。
- Prefix2 要素は、追加された行が税トランザクション詳細用であることを示す P2 記号を生成します。
- TaxAmount 要素は、model.Data.List.Value (相対パス ビューに @.Value として表示される) にバインドされ、現在の税トランザクションの税額を生成します。
- RunningTotal 要素は、税額累計額のプレースホルダーです。 現在、バインディングも既定値もコンフィギュレーションされていないため、この要素には出力がありません。
- ExecutionDateTime 要素は、現在のトランザクションがこのレポートで処理される時の日時 (ミリ秒を含む) を生成します。
- レポート\明細行\集計要素は、送信ドキュメントの 1 つの行を生成するのに、データ ソースにバインドする必要はありません。
- Prefix3 要素は、追加された行に税額合計が含まれていることを示す P3 記号を生成します。
- TotalTaxAmount 要素は model.Data.Summary.Total にバインドされ、処理された税トランザクションの税額合計を生成します。
- ExecutionDateTime 要素は、集計行が追加された時の日時 (ミリ秒を含む) を生成します。
インポートされた ER 形式の実行
フォーマット デザイナー ページで、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認のために開きます。
集計行 22 には、処理されたトランザクションの税額の合計が示されます。 形式は、合計を返すようバインドされている model.Data.Summary.Total を使用するようにコンフィギュレーションされていて、合計はモデル マッピングを使用する GroupBy のグループ化されたデータ ソースの TotalSum の集計を呼び出して計算されます。 この集計を計算するために、モデル マッピングは、フィルタ処理されるデータ ソースで選択されたすべてのトランザクションを反復処理します。 明細行 21 と 22 の実行時間を比較することにより、合計の計算に 10 ミリ秒 (ms) かかったことを特定できます。 明細行 2 と 21 の実行時間を比較することにより、すべてのトランザクション明細行の生成に 7 ミリ秒 (ms) かかったことを特定できます。 したがって、合計 17 ミリ秒必要でした。
合計が生成された出力に基づくように形式を変更する
トランザクションの量が現在の例のボリュームよりも大きい場合、合計時間が増加してパフォーマンスの問題が発生する可能性があります。 形式の設定を変更することにより、これらパフォーマンスの問題を防ぐことができます。 税額にアクセスして生成されたレポートに含めることができるため、この情報を再利用して税額を合計することができます。 詳細については、集計と合計を行うよう形式をコンフィギュレーションする を参照してください。
形式タブの形式デザイナー ページで、形式ツリーのレポート ファイル要素を選択します。
出力詳細の収集オプションをはいに設定します。 データ収集 カテゴリの組み込み ER 機能を使用してアクセスできるデータ ソースとして既存のレポートの内容を使用することで、この形式をコンフィギュレーションできるようになりました。
マッピング タブで、レポート\明細行シーケンス要素を選択します。
収集したデータ キー名の式を
WsColumn
としてコンフィギュレーションします。収集したデータ キーの値の式を
WsRow
としてコンフィギュレーションします。レポート\明細行\レコード\TaxAmount 数値要素を選択します。
収集したデータ キー名の式を
SummingAmountKey
としてコンフィギュレーションします。セル A1 の値が処理されたすべての税トランザクションからの税額の値で追記されている、この仮想ワークシートのフルフィルメントの設定を考慮することができます。
レポート\明細行\レコード\RunningTotal の数値要素を選択し、フォーミュラの編集を選択します。
組み込みの SUMIF ER 関数を使用して
SUMIF(SummingAmountKey, WsColumn, WsRow)
式をコンフィギュレーションします。保存を選択します。
フォーミュラ デザイナー ページを閉じます。
保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
明細行 21 には、生成された出力をデータ ソースとして使用することにより、処理されたすべてのトランザクションに対して計算される税額の累計が含まれます。 このデータ ソースは、レポートの先頭から開始し、最後の税トランザクションまで続行します。 明細行 22 には、モデル マッピングにおいて GroupBy タイプのデータ ソースを使用して計算され、処理されたすべてのトランザクションの税額の合計が含まれています。 これらの値は等しくなります。 したがって、GroupBy の代わりに出力ベースの合計を使用できます。 明細行 2 と 21 の実行時間を比較することにより、すべてのトランザクション明細行の生成および合計に 9 ミリ秒 (ms) かかったことを特定できます。 したがって、詳細行の生成および税額の合計が懸念されるかぎり、変更された形式は元の形式よりも約 2 倍速くなります。
レポート\明細行\集計\TotalTaxAmount の数値要素を選択し、フォーミュラの編集を選択します。
既存の式の代わりに
SUMIF(SummingAmountKey, WsColumn, WsRow)
式を入力します。保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
最後のトランザクション詳細行の税額累計は、集計行の合計値と等しくなるようになりました。
レポート ヘッダーに出力ベースの集計を配置する
たとえば、レポートのヘッダーに税額の合計を表示する必要がある場合、形式を変更することができます。
形式タブの形式デザイナー ページで、レポート\明細行\集計シーケンス要素を選択します。
上へ移動を選択します。
保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
この合計が生成された出力に基づいて計算されるようになったので、集計行 2 の税額の合計は 0 (ゼロ) と等しくなるようになりました。 明細行 2 が生成される時、生成された出力にはまだトランザクションの詳細のある行は含まれていません。 この形式をコンフィギュレーションして、すべての税トランザクションに対してレポート\明細行\レコードのシーケンス要素が実行されるまで、レポート\明細行\集計のシーケンス要素の実行を延期させることができます。
集計シーケンスの実行を延期することにより、計算された合計が使用されます
形式タブの形式デザイナー ページで、レポート\明細行\集計シーケンス要素を選択します。
遅延実行オプションをはいに設定します。
保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
レポート\明細行\集計シーケンス要素は、その親要素であるレポート\明細行の下に入れ子になっている他のすべての品目が実行された後に実行されるようになりました。 したがって、レポート\明細行\レコードシーケンス要素が、model.Data.List データ ソースのすべての税トランザクションに実行された後に実行されます。 明細行 1、2、および 3 の実行時間と最後の明細行 22 の実行時間はこの事実を示しています。