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