推迟执行电子报告格式的 XML 元素

概述

您可以使用电子报告 (ER) 框架的工序设计器,以配置用于生成 XML 格式出站文档的 ER 解决方案的格式组件。 配置的格式组件的层次结构由各种类型的格式元素组成。 这些格式元素用于在运行时用所需的信息填充生成的文档。 默认情况下,当您运行 ER 格式时,格式元素的运行顺序与它们在格式层次结构中的显示顺序相同:从上到下一个接一个。 但是,在设计时,您可以更改已配置格式组件的任何 XML 元素的执行顺序。

通过对已配置格式的 XML 元素打开推迟执行选项,可以推迟(延迟)执行该元素。 在这种情况下,该元素只有在其父元素的所有其他元素都已运行后才能运行。

若要了解有关此功能的详细信息,请完成本文中的示例。

限制

仅为 ER 格式(用于生成 XML 格式的出站文档)配置的 XML 元素支持推迟执行选项。

仅位于一个其他 XML 元素中的 XML 元素支持推迟执行选项。 因此,它不适用于位于其他类型的格式元素中(例如位于 XML 序列元素中)的 XML 元素。

如果拆分文件选项设置为,则位于通用\文件格式元素中的 XML 元素不支持推迟执行选项。 有关如何拆分 XML 文件的详细信息,请参阅基于文件大小和内容数量拆分生成的 XML 文件

示例:推迟执行 ER 格式的 XML 元素

以下步骤说明了具有系统管理员或电子报告职能顾问角色的用户如何配置一个 ER 格式,以包含执行顺序与格式层次结构中的执行顺序不同的 XML 元素。

这些步骤可以在 USMF公司内的 Microsoft Dynamics 365 Finance 中执行。

先决条件

若要完成本示例,您必须能够用以下角色之一访问 USMF 公司的 Finance:

  • 电子申报功能顾问
  • 系统管理员

如果您尚未完成推迟执行 ER 格式的序列元素一文中的示例,请下载示例 ER 解决方案的以下配置

内容描述 文件名
ER 数据模型配置 Model to learn deferred elements.version.1.xml
ER 模型映射配置 Mapping to learn deferred elements.version.1.1.xml

在开始之前,您还必须将示例 ER 解决方案的以下配置下载并保存到本地计算机上。

内容描述 文件名
ER 格式配置 Format to learn deferred XML elements.version.1.1.xml

导入示例 ER 配置

  1. 转到组织管理>工作区>电子申报

  2. 选择申报配置

  3. 配置页面上,如果用于了解推迟的元素的模型配置在配置树中不可用,请导入 ER 数据模型配置:

    1. 选择交换,然后选择从 XML 文件加载
    2. 选择浏览,找到并选择 Model to learn deferred elements.1.xml 文件,然后选择确定
  4. 如果用于了解推迟的元素的映射配置在配置树中不可用,请导入 ER 模型映射配置:

    1. 选择交换,然后选择从 XML 文件加载
    2. 选择浏览,找到并选择 Mapping to learn deferred elements.1.1.xml 文件,然后选择确定
  5. 导入 ER 格式配置:

    1. 选择交换,然后选择从 XML 文件加载
    2. 选择浏览,找到并选择 Format to learn deferred XML elements.1.1.xml 文件,然后选择确定
  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-10000349INV-10000350)作为记录列表。

    • 计算字段类型的已筛选数据源被配置为从交易记录数据源中仅选择所需凭证的税收交易记录。

    • 已筛选数据源添加了计算字段类型的 $TaxAmount 字段,以显示具有相反符号的税收值。

    • 分组依据类型的已分组数据源被配置为将已筛选数据源的已筛选税收交易记录分组。

    • 已分组数据源的 TotalSum 聚合字段被配置为针对该数据源的所有已筛选税收交易记录汇总已筛选数据源的 $TaxAmount 字段值。

      编辑“GroupBy”参数页面上的 TotalSum 聚合字段。

  9. 查看配置的数据源如何绑定到数据模型,以及它们如何公开访问的数据以使其以 ER 格式可用:

    • 已筛选数据源已绑定到数据模型的 Data.List 字段。
    • 已筛选数据源的 $TaxAmount 字段已绑定到数据模型的 Data.List.Value 字段。
    • 已分组数据源的 TotalSum 字段已绑定到数据模型的 Data.Summary.Total 字段。

    模型映射设计器页面。

  10. 关闭模型映射设计器模型映射页面。

查看导入的格式

  1. 配置页面上的配置树中,选择用于了解延迟 XML 元素的格式配置。

  2. 选择设计器查看格式详细信息。

  3. 选择显示详细信息

  4. 查看 ER 格式组件的设置,这些设置被配置为以 XML 格式生成出站文档,其中包括税收交易记录的详细信息:

    • 报表\消息 XML 元素被配置为使用包含嵌套 XML 元素(标题记录汇总)的单个节点填充出站文档。
    • 报表\消息\标题 XML 元素被配置为用单个标题节点填充出站文档,以显示处理的开始日期和时间。
    • 报表\消息\记录 XML 元素被配置为用显示单项税收交易记录详细信息的单个记录节点填充出站文档。
    • 报表\消息\汇总 XML 元素被配置为用包括已处理税收交易记录中税收值总计的单个汇总节点填充的出站文档。

    “格式设计器”页面上的消息 XML 元素和嵌套 XML 元素。

  5. 映射选项卡上,查看以下详细信息:

    • 报表\消息\标题元素不必绑定到源即可在出站文档中生成单个节点。
    • ExecutionDateTime 属性会生成标题节点的添加日期和时间(包括毫秒)。
    • 报表\消息\记录元素已绑定到 model.Data.List 列表,以为绑定列表中的每条记录生成单个记录节点。
    • TaxAmount 属性已绑定到 model.Data.List.Value(在相对路径视图中显示为 @.Value)以生成当前税收交易记录的税收值。
    • RunningTotal 属性是税收值累计总额的占位符。 当前,此属性没有输出,因为没有为其配置绑定或默认值。
    • ExecutionDateTime 属性生成在此报表中处理当前交易时的日期和时间(包括毫秒)。
    • 报表\消息\汇总元素不必绑定到数据源即可在出站文档中生成单个节点。
    • TotalTaxAmount 属性已绑定到 model.Data.Summary.Total 以生成已处理税收交易记录的税收值总和。
    • ExecutionDateTime 属性会生成汇总节点的添加日期和时间(包括毫秒)。

    “格式设计器”页面上的“映射”选项卡。

运行导入的格式

  1. 格式设计器页上,选择运行

  2. 下载 Web 浏览器提供的文件,然后将其打开以进行检查。

    导入格式的下载文件。

请注意,汇总节点显示了已处理交易记录的税收值总和。 由于该格式已配置为使用 model.Data.Summary.Total 绑定返回此总和,所以通过调用模型映射中 GroupBy 类型的已分组数据源 TotalSum 汇总计算了此总和。 为了计算此汇总,模型映射会在已筛选数据源中选择的所有交易记录上迭代。 通过比较汇总节点和最后一个记录节点的执行时间,可以确定计算总和用了 12 毫秒 (ms)。 通过比较第一个和最后一个记录节点的执行时间,可以确定生成所有记录节点用了 9 ms。 因此,总共需要 21 ms。

修改格式,以便根据生成的输出来进行计算

如果交易记录量远大于当前示例中的交易记录量,则计算时间可能会增加并导致性能问题。 通过更改格式设置,可以帮助防止这些性能问题。 因为您访问税收值以将其包括在生成的报表中,所以您可以重复使用此信息来计算税收值。 有关更多信息,请参见配置格式以进行计数和求和

  1. 格式设计师页面上的格式选项卡上,选择格式树中的报表文件元素。

  2. 收集输出详细信息选项设置为。 现在,您可以使用已生成报表的内容作为数据源来配置此格式,该数据源可以通过使用数据收集类别中的内置 ER 函数来访问。

  3. 映射选项卡上,选择报表\消息\记录 XML 元素。

  4. 收集的数据密钥名称表达式配置为 WsColumn

  5. 收集的数据密钥值表达式配置为 WsRow

    “格式设计器”页面上的记录 XML 元素。

  6. 选择报表\消息\记录\TaxAmount 属性。

  7. 收集的数据密钥名称表达式配置为 SummingAmountKey

    “格式设计器”页面上的 TaxAmount 属性。

    您可以考虑使用此设置来实现虚拟工作表,其中单元格 A1 的值将附加来自每个已处理税收交易记录的税额值。

  8. 选择报表\消息\记录\RunningTotal 属性,然后选择编辑公式

  9. 使用内置 SUMIF ER 函数配置 SUMIF(SummingAmountKey, WsColumn, WsRow) 表达式,然后选择保存

    SUMIF 表达式。

  10. 关闭公式设计器页。

  11. 选择保存,然后选择运行

  12. 下载并查看 Web 浏览器提供的文件。

    生成的含累计总和的税务值列表。

    最后一个记录节点包含使用生成的输出作为数据源为所有已处理交易记录计算的税值累计总和。 此数据源从报表的开头开始,一直持续到最后一个税收交易记录。 汇总节点包含使用 GroupBy 类型数据源在模型映射中计算的所有已处理交易记录的税值总和。 请注意,这些值相等。 因此,可以使用基于输出的求和来代替 GroupBy。 通过比较第一个记录节点和汇总节点的执行时间,可以确定生成所有记录节点并进行汇总用了 11 ms。 因此,就生成记录节点和税值总和而言,修改后的格式大约比原始格式快两倍。

  13. 选择报表\消息\汇总\TotalTaxAmount 属性,然后选择编辑公式

  14. 输入 SUMIF(SummingAmountKey, WsColumn, WsRow) 表达式而不是现有表达式。

  15. 选择保存,然后选择运行

  16. 下载并查看 Web 浏览器提供的文件。

    使用经过编辑的公式生成的税务值列表。

    请注意,最后一个记录节点中的税收值累计总和现在等于汇总节点上的总和。

将基于输出的总和的值放在报表标题中

例如,如果您必须在报表的标题中显示税值总和,则可以修改格式。

  1. 格式设计器页面的格式选项卡上,选择报表\消息\汇总 XML 元素。

  2. 选择上移

  3. 选择保存,然后选择运行

  4. 下载并查看 Web 浏览器提供的文件。

    报表标题的税务值的下载文件。

    请注意,汇总节点中的税收值总和现在等于 0(零),因为此总和现在是基于生成的输出计算的。 生成第一个记录节点时,生成的输出尚不包含具有交易记录明细的记录节点。 您可以配置此格式以延迟执行报表\消息\汇总元素,直到已经为所有税收交易记录运行了报表\消息\记录元素为止。

推迟执行汇总 XML 元素,以便使用计算出的总和

  1. 格式设计器页面的格式选项卡上,选择报表\消息\汇总 XML 元素。

  2. 推迟执行选项设置为

    “格式设计器”页面上“汇总”XML 元素的推迟执行选项。

  3. 选择保存,然后选择运行

  4. 下载并查看 Web 浏览器提供的文件。

    推迟执行的下载文件。

    报表\消息\汇总元素现在仅在其父元素报表\消息下嵌套的所有其他项目运行之后才运行。 因此,它在针对 model.Data.List 数据源的所有税收交易记录运行报表\消息\记录元素后运行。 第一个和最后一个记录节点的执行时间以及标题和汇总节点的执行时间揭示了这一事实。

其他资源