注
コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engageコミュニティに参加し、最新のディスカッションに参加するには、 Finance and Operations Viva Engage Community へのアクセス権フォームに入力し、参加するコミュニティを選択します。
概要
電子レポート (ER) フレームワークの操作デザイナーを使用して、XML 形式で送信ドキュメントを生成する ER ソリューションの形式コンポーネントを構成します。 コンフィギュレーションされた形式コンポーネントの階層構造は、さまざまなタイプの形式要素で構成されます。 これらの書式要素は、生成されたドキュメントに実行時に必要な情報を入力します。 既定では、ER 形式を実行すると、書式要素は、書式階層に表示される順序と同じ順序で実行されます(上から下に 1 つずつ)。 ただし、デザイン時に、コンフィギュレーションされた形式コンポーネントのすべての XML 要素の実行順序を変更することができます。
構成された形式の XML 要素の Deferred 実行 オプションをオンにすると、その要素の実行を延期 (延期) します。 この場合、要素は親の他のすべての要素が実行されるまで実行されません。
この機能の詳細を知るには、この記事の例を実行します。
制限
遅延実行オプションは、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 データ モデル構成 | 遅延要素を学習するためのモデル.version.1.xml |
| ER モデル マッピング コンフィギュレーション | 延期された要素を学習するためのマッピング.version.1.1.xml |
開始する前に、サンプル ER ソリューションの次の構成をローカル コンピューターにダウンロードして保存します。
| コンテンツの説明 | ファイル名 |
|---|---|
| ER フォーマット構成 | 延期されたXML要素について学ぶ形式.version.1.1.xml |
サンプル ER のコンフィギュレーションのインポート
組織管理>ワークスペース>電子申告の順に移動します。
コンフィギュレーションをレポートするを選択します。
構成で、遅延要素を学習するモデル構成が構成ツリーで使用できない場合は、ER データ モデルの構成をインポートします。
- Exchange を選択し、 XML ファイルから読み込むを選択します。
- 参照を選択し、遅延要素を学習するためのモデル.1.xml ファイルを検索して選択し、OKを選択します。
コンフィギュレーション ページで、遅延要素を学習するマッピング構成が構成ツリーで使用できない場合、ER モデル マッピング構成をインポートします。
- Exchange を選択し、 XML ファイルから読み込むを選択します。
- ブラウズを選択し、Mapping to learn deferred elements.1.1.xmlファイルを検索して選択し、OKを選択します。
ER 形式コンフィギュレーションのインポート:
- Exchange を選択し、 XML ファイルから読み込むを選択します。
- 参照をクリックし、deferred 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 つの集計ノードで送信ドキュメントを入力するようにコンフィギュレーションされ、処理された税トランザクションの税額の合計が含まれます。
マッピング タブで、次の詳細を確認します。
- Report\Message\Header 要素は、送信ドキュメントで 1 つのノードを生成するために、ソースにバインドする必要はありません。
- ExecutionDateTime 属性は、ヘッダー ノードが追加された時の日時 (ミリ秒を含む) を生成します。
- レポート\メッセージ\レコード要素は、model.Data.List リストにバインドされ、バインド リストからすべてのレコードに対して 1 レコード ノードを生成します。
- TaxAmount 属性は、model.Data.List.Value (相対パス ビューに @.Value として表示される) にバインドされ、現在の税トランザクションの税額を生成します。
- RunningTotal 属性は、税額累計額のプレースホルダーです。 現在、バインディングも既定値もコンフィギュレーションされていないため、この属性には出力がありません。
- ExecutionDateTime 属性は、現在のトランザクションがこのレポートで処理される時の日時 (ミリ秒を含む) を生成します。
- Report\Message\Summary 要素をデータ ソースにバインドして、送信ドキュメント内の 1 つのノードを生成する必要はありません。
- TotalTaxAmount 属性は model.Data.Summary.Total にバインドされ、処理された税トランザクションの税額合計を生成します。
- ExecutionDateTime 属性は、集計ノードが追加された時の日時 (ミリ秒を含む) を生成します。
インポートされたフォーマットの実行
書式デザイナーで、[実行] を選択します。
Web ブラウザーからファイルをダウンロードし、確認のために開きます。
集計ノードには、処理されたトランザクションの税値の合計が表示されます。 モデル マッピング内でmodel.Data.Summary.Total バインディングを使用してこの合計を返す形式は、GroupBy 型の Grouped データ ソースの TotalSum 集計を呼び出すことによって合計が計算されます。 この集計を計算するために、モデル マッピングは 、フィルター処理された データ ソースで選択したすべてのトランザクションを反復処理します。 集計ノードと最後のレコード ノードの実行時間を比較することにより、合計の計算に 12 ミリ秒 (ms) かかったことを特定できます。 最初と最後のレコード ノードの実行時間を比較することにより、すべてのレコード ノードの生成に 9 ミリ秒 (ms) かかったことを特定できます。 したがって、合計 21 ミリ秒必要でした。
計算が生成された出力に基づくように形式を変更する
トランザクション ボリュームが現在の例のボリュームよりもはるかに大きい場合、計算時間が長くなり、パフォーマンスの問題が発生する可能性があります。 形式の設定を変更することで、これらのパフォーマンスの問題を回避できます。 税額にアクセスして生成されたレポートに含めることができるため、この情報を再利用して税額を計算することができます。 詳細については、集計と合計を行うよう形式をコンフィギュレーションする を参照してください。
形式タブの形式デザイナー ページで、形式ツリーのレポート ファイル要素を選択します。
出力詳細の収集オプションをはいに設定します。 生成されたレポートの内容を、データ コレクション カテゴリの組み込み ER 関数がアクセスできるデータ ソースとして使用して、この形式を構成できるようになりました。
マッピング タブで、レポート\メッセージ\レコード XML 要素を選択します。
収集したデータ キー名の式を
WsColumnとしてコンフィギュレーションします。収集したデータ キーの値の式を
WsRowとしてコンフィギュレーションします。
レポート\メッセージ\レコード\TaxAmount 属性を選択します。
収集したデータ キー名の式を
SummingAmountKeyとしてコンフィギュレーションします。
この設定を、仮想ワークシートが実現するものとして考えることができます。これは、セルA1の値に、処理された各税取引の税額が付加されるというものです。
レポート\メッセージ\レコード\RunningTotal 属性を選択し、フォーミュラの編集を選択します。
組み込みの
SUMIF(SummingAmountKey, WsColumn, WsRow)ER 関数を使用して 式をコンフィギュレーションし、保存を選択します。
フォーミュラ デザイナー ページを閉じます。
保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
最後のレコード ノードには、生成された出力をデータ ソースとして使用することにより、処理されたすべてのトランザクションに対して計算される税額の累計が含まれます。 このデータ ソースは、レポートの先頭から開始し、最後の税トランザクションまで続行します。 集計ノードには、モデル マッピングにおいて GroupBy タイプのデータ ソースを使用して計算され、処理されたすべてのトランザクションの税額の合計が含まれています。 これらの値は等しくなります。 そのため、 GroupBy の代わりに出力ベースの合計を使用できます。 最初のノードと集計ノードの実行時間を比較することにより、すべてのレコード ノードの生成および合計に 11 ミリ秒 (ms) かかったことを特定できます。 したがって、レコード ノードの生成と税額の合計に関して、変更された形式は元の形式よりも約2倍速いです。
レポート\メッセージ\集計\TotalTaxAmount 属性を選択し、フォーミュラの編集を選択します。
既存の式の代わりに
SUMIF(SummingAmountKey, WsColumn, WsRow)式を入力します。保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
最後のレコード ノードの税額累計は、集計ノードの合計値と等しくなるようになりました。
レポート ヘッダーに出力に基づいた集計を設定する
レポートのヘッダーに税額の合計を表示する必要がある場合は、書式を変更できます。
形式タブの形式デザイナー ページで、レポート\メッセージ\集計XML 要素を選択します。
上へ移動を選択します。
保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
この合計は生成された出力に基づいて計算されるため、集計ノードの税値の合計は 0 (ゼロ) になります。 最初のレコード ノードが生成される時、生成された出力にはまだトランザクションの詳細のあるレコード ノードは含まれていません。 この形式を構成することで、すべての税トランザクションに対して Report\Message\Record 要素が実行されるまで、Report\Message\Summary 要素の実行を延期できます。
集計 XML 要素の実行を延期することにより、計算された合計が使用されます
形式タブの形式デザイナー ページで、レポート\メッセージ\集計XML 要素を選択します。
遅延実行オプションをはいに設定します。
保存を選択して、実行を選択します。
Web ブラウザーからファイルをダウンロードし、確認します。
Report\Message\Summary 要素は、親要素 Report\Message の下に入れ子になっている他のすべてのアイテムの実行後にのみ実行されるようになりました。 そのため、model.Data.List データソースにおけるすべての税トランザクションに対して Report\Message\Record 要素が実行された後に実行されます。 最初と最後のレコード ノードの実行時間、およびヘッダーと集計ノードの実行時間は、この事実を示しています。