跟踪电子申报格式的执行以解决性能问题
在设计电子申报 (ER) 配置过程中,您将定义用于从应用程序获取数据并在生成的输出中输入的方法。 ER 性能跟踪功能有助于显著减少收集 ER 格式执行情况并将其用于解决性能问题的时间和成本。 本教程提供有关如何对执行的 ER 格式进行性能跟踪和如何使用来自这些跟踪的信息帮助提高性能的说明。
先决条件
要完成本教程中的示例,您必须具有以下访问权限:
访问以下其中一个角色:
- 电子申报开发人员
- 电子申报功能顾问
- 系统管理员
对于下列角色之一,已为与应用程序相同的租户配置的 Regulatory Configuration Services (RCS) 的实例:
- 电子申报开发人员
- 电子申报功能顾问
- 系统管理员
还必须下载并在本地存储以下文件。
文件 | 内容 |
---|---|
Performance trace model.version.1 | 示例 ER 数据模型配置 |
Performance trace metadata.version.1 | 示例 ER 元数据配置 |
Performance trace mapping.version.1.1 | 示例 ER 模型映射配置 |
Performance trace format.version.1.1 | 示例 ER 格式配置 |
配置 ER 参数
应用程序中生成的每个 Er 性能跟踪都作为执行日志记录的附件存储。 文档管理 (DM) 框架用于管理这些附件。 必须提前配置 ER 参数,以便指定应该用于附加性能跟踪的 DM 文档类型。 在电子申报工作区中,选择电子申报参数链接。 然后在电子申报参数页附件选项卡上的其他字段中,选择要用于性能跟踪的 DM 文档类型。
若要让某个 DM 文档类型出现在其他查找字段中,必须在文档类型页(组织管理 > 文档管理 > 文档类型)中以下面的方式对其进行配置:
- 类:附加文件
- 组:文件
注释
所选文档类型必须在当前实例中的每个公司内可用,因为 DM 附件特定于公司。
配置 RCS 参数
将通过使用 ER 格式设计器和 ER 映射设计器把生成的 ER 性能跟踪导入 RCS 中进行分析。 因为 ER 性能跟踪以与 ER 格式有关的执行日志记录附件形式存储,所以必须提前配置 RCS 参数,以便指定应该用于附加性能跟踪的 DM 文档类型。 在已经针对贵公司进行过配置的 RCS 实例中的电子申报工作区中,选择电子申报参数。 然后在电子申报参数页附件选项卡上的其他字段中,选择要用于性能跟踪的 DM 文档类型。
若要让某个 DM 文档类型出现在其他查找字段中,必须在文档类型页(组织管理 > 文档管理 > 文档类型)中以下面的方式对其进行配置:
- 类:附加文件
- 组:文件
设计 ER 解决方案
假设您已开始设计一种新的 ER 解决方案来生成新报表以表示供应商交易记录。 现在,您可以在供应商交易记录页(转至应付帐款 > 供应商 > 所有供应商,选择供应商,然后在操作窗格中供应商选项卡上交易记录组中选择交易记录)中找到所选供应商的交易记录。 但是,您希望同时让所有供应商交易记录都包含在一个 XML 格式的电子申报文档中。 此解决方案将由多个 ER 配置构成,这些配置中包含所需数据模型、元数据、模型映射和格式组件。
登录已经针对贵公司进行过配置的 RCS 实例。
在此教程中,将为示例公司 Litware, Inc. 创建并修改配置。 因此,请确保已经将该配置提供程序添加到了 RCS 并选择为有效。 有关说明,请参阅创建配置提供程序并将其标记为有效过程。
在电子申报工作区中,选择报告配置磁贴。
在配置页中,按照下面的顺序将作为先决条件下载的 ER 配置导入 RCS 中:数据模型、元数据、模型映射、格式。 为每个配置执行下列步骤:
- 在操作窗格上,选择交换 > 从 XML 文件加载。
- 选择浏览为所需 ER 配置选择 XML 格式的相应文件。
- 选择确定。
运行 ER 解决方案以跟踪执行情况
假设您已经完成了 ER 解决方案第一版的设计。 现在希望在实例中进行测试并分析执行性能。
将 ER 配置从 RCS 导入财务和运营
登录您的应用程序实例。
对于本教程,您将把配置从 RCS 实例(即您设计 ER 组件的位置)导入实例(即测试并最终使用这些实例的位置)。 因此,您必须确保已准备好所有必需的项目。 有关说明,请参阅从监管配置服务 (RCS) 导入电子申报 (ER) 配置过程。
执行下列步骤将配置从 RCS 导入应用程序中:
- 在电子申报工作区 Litware, Inc. 配置提供程序的磁贴中,选择存储库。
- 在配置存储库页,选择 RCS 类型的存储库,然后选择打开。
- 在配置快速选项卡上,选择性能跟踪格式配置。
- 在版本快速选项卡上,选择所选配置的版本 1.1,然后选择导入。
将把相应的数据模型和模型映射配置版本作为所导入 ER 格式配置的先决条件自动导入。
开启 ER 性能跟踪
转到组织管理 > 电子申报 > 配置。
在配置页操作窗格中配置选项卡的高级设置组中,选择用户参数。
在用户参数对话框的执行跟踪部分中,执行以下步骤:
在执行跟踪格式字段中,为 ER 格式和映射元素指定应该用于存储执行详细信息的所生成性能跟踪的格式。
调试跟踪格式 – 如果您计划以交互方式运行执行时间较短的 ER 格式,请选择此值。 然后,开始收集有关 ER 格式执行的详细信息。 选择此值后,性能跟踪将收集有关以下操作所用时间的信息:
- 在调用来获取数据的模型映射中运行每个数据源
- 处理每个格式项以在生成的输出中输入数据
如果您选择调试跟踪格式值,可以在 ER 操作设计器中分析跟踪的内容。 在那里,您可以查看跟踪中提到的 ER 格式或映射元素。
聚合跟踪格式 – 如果您计划在批处理模式下运行执行时间较长的 ER 格式,请选择此值。 然后,开始收集有关 ER 格式执行的聚合详细信息。 选择此值后,性能跟踪将收集有关以下操作所用时间的信息:
- 在调用来获取数据的模型映射中运行每个数据源
- 在调用来获取数据的格式映射中运行每个数据源
- 处理每个格式项以在生成的输出中输入数据
聚合跟踪格式值在 Microsoft Dynamics 365 Finance 版本 10.0.20 及更高版本中可用。
在 ER 格式设计器和 ER 模型映射设计器中,您可以查看单个组件的总执行时间。 此外,跟踪包含有关执行的详细信息,例如执行次数以及单次执行的最短和最长时间。
注释
此跟踪基于跟踪的组件路径收集。 因此,当单个父组件包含多个未命名的子组件或多个子组件具有相同名称时,统计信息可能不正确。
将下列选项设置为是以收集 ER 模型映射和 ER 格式组件执行情况的具体详细信息:
收集查询统计信息 – 如果开启此选项,性能跟踪将收集以下信息:
- 数据源执行的数据库调用数量
- 数据库的重复调用数量
- 用于执行数据库调用的 SQL 语句的详细信息
跟踪缓存访问 – 如果开启此选项,性能跟踪将收集有关 ER 模型映射的缓存使用情况的信息。
跟踪数据访问 – 如果开启此选项,性能跟踪将收集有关对所执行记录列表类型数据源的数据库的调用数量的信息。
跟踪列表枚举 – 如果开启此选项,性能跟踪将收集有关从记录列表类型数据源请求的记录数量的信息。
注释
用户参数对话框中的参数特定于用户和当前公司。
运行 ER 格式
- 选择 DEMF 公司。
- 转到组织管理 > 电子申报 > 配置。
- 在配置页的配置树中,选择性能跟踪格式项。
- 在操作窗格上,选择运行。
请注意,生成的文件中提供有关六个供应商的 265 个交易记录的信息。
查看执行跟踪
从应用程序导出生成的跟踪
性能跟踪将从源 ER 格式分离,并可序列化为外部 zip 文件。
转到组织管理 > 电子申报 > 配置调试日志。
在电子申报运行日志页左窗格中配置名称字段中,选择性能跟踪格式查找已通过执行性能跟踪格式配置生成的日志记录。
选择页面右上角的附件按钮(回形针符号),或按 Ctrl+Shift+A。
在电子申报运行日志的附件页上操作窗格中,选择打开获取 zip 文件格式的性能跟踪并存储在本地。
注释
生成的跟踪只有对源 ER 报表通过 GUID 格式的唯一报表标识进行的引用。 不考虑格式的版本编号。
请注意,已经为所执行 ER 格式生成的性能跟踪与 ER 模型映射之间的关联基于所用根描述符和常用数据模型。 不考虑格式和模型映射的版本编号。 也不考虑模型映射的模型映射默认值标记的设置。
将生成的跟踪导入 RCS
在 RCS 的电子申报工作区中,选择报告配置磁贴。
在配置页的配置树中,展开性能跟踪模型项,然后选择性能跟踪格式项。
在操作窗格上,选择设计器。
在格式设计器页的操作窗格上,选择性能跟踪。
在性能跟踪结果配置对话框中,选择导入性能跟踪。
选择浏览以选择之前导出的 zip 文件。
选择确定。
在 RCS 中使用性能跟踪进行分析 – 格式执行
在 RCS 的格式设计器页中,选择展开/折叠以展开所有格式项的目录。
请注意,当前格式的某些项会显示更多信息:
- 通过使用格式项在生成的输出中输入数据实际所用时间
- 表示为占生成整个输出所用时间总量的百分比的相同时间
关闭格式设计器页。
在 RCS 中使用性能跟踪进行分析 – 模型映射
- 在 RCS 的配置页的配置树中,选择性能跟踪映射项。
- 在操作窗格上,选择设计器。
- 选择设计器。
- 在模型映射设计器页的操作窗格上,选择性能跟踪。
- 选择之前导入的跟踪。
- 选择确定。
请注意,新信息将可用于当前模型映射的部分数据源项:
- 使用数据源获取数据实际所用时间
- 表示为占运行整个模型映射所用时间总量的百分比的相同时间
请注意,ER 将在运行 VendTable/<Relations/VendTrans.VendTable_AccountNum 数据源时通知您数据库请求的当前模型映射重复项。 出现此重复项的原因是为每个迭代的供应商记录调用了两次供应商交易记录列表:
- 一次调用是为了根据配置的绑定在数据模型中输入每个交易记录的详细信息。
- 一次调用是为了在数据模型中输入为每个供应商计算出的交易记录数量。
值 [Q:530] 表示 VendTrans 表被调用了 530 次以将一个记录从该表返回到 VendTable/<Relations/VendTrans.VendTable_AccountNum 数据源。 值 [530] 表示 VendTable/<Relations/VendTrans.VendTable_AccountNum 数据源被调用了 530 次以从该数据源返回一个记录并在数据模型中输入来自该记录的详细信息。
建议使用 VendTable/<Relations/VendTrans.VendTable_AccountNum 数据源的高速缓存减少为了获取 265 个交易记录所执行调用的数量,并帮助提高模型映射的性能。
减少对 LedgerTransTypeList 数据源执行的调用数量可能也很有用。 此数据源用于将 LedgerTransType 枚举的每个值与其标签关联。 可通过使用此数据源找到相应标签并在每个供应商交易记录的数据模型中输入。 相对 265 个交易记录而言,对此数据源的当前调用数量 (9,027) 相当高。
根据来自执行跟踪的信息改善模型映射
修改模型映射的逻辑
请执行以下步骤使用高速缓存来帮助避免重复调用数据库:
- 在 RCS 的模型映射设计器页数据源窗格中,选择 VendTable 项。
- 选择高速缓存。
- 展开 VendTable 向,展开 VendTable 数据源的一对多关系列表(即 <Relations 项),然后选择 VendTrans.VendTable_AccountNum 项。
- 选择高速缓存。
执行以下步骤将 LedgerTransTypeList 数据源纳入 VendTable 数据源的范围内:
- 在数据源类型窗格中,展开函数项,然后选择计算字段项。
- 在数据源窗格中,选择 VendTable 项。
- 选择添加。
- 在名称字段中,输入 $TransType。
- 选择编辑公式。
- 在公式字段中,输入 LedgerTransTypeList。
- 选择保存。
- 关闭公式编辑器页。
- 单击OK。
执行下列步骤对 $TransType 字段执行高速缓存:
- 选择 LedgerTransTypeList 项。
- 选择高速缓存。
- 选择 VendTable.$TransType 项。
- 选择高速缓存。
执行以下步骤更改 $TransTypeRecord 字段,使其开始使用高速缓存的 $TransType 字段:
在数据源窗格中,依次展开 VendTable、<Relations 和 VendTrans.VendTable_AccountNum 项,然后选择 VendTable. VendTrans.VendTable_AccountNum.$TransTypeRecord 项。
选择编辑。
选择编辑公式。
在公式字段中,找到下面的表达式:
FIRSTORNULL (WHERE (LedgerTransTypeList, LedgerTransTypeList.Enum = @.TransType))
在公式字段中,输入下面的表达式:
FIRSTORNULL (WHERE (VendTable.'$TransType', VendTable.'$TransType'.Enum = @.TransType))。
选择保存。
关闭公式编辑器页。
选择确定。
选择保存。
关闭模型映射设计器页。
关闭模型映射页。
完成修改后的 ER 模型映射版本
- 在 RCS 中的配置页版本快速选项卡上,选择性能跟踪映射配置版本 1.2。
- 选择更改状态。
- 选择完成。
将修改后的 ER 模型映射配置从 RCS 导入应用程序中
重复本文前面的将 ER 配置从 RCS 导入财务和运营 一节中的步骤导入性能跟踪映射配置版本 1.2。
运行修改后的 ER 解决方案以跟踪执行情况
运行 ER 格式
重复本文前面的运行 ER 格式部分中的步骤生成一个新的性能跟踪。
使用执行跟踪
从应用程序导出生成的跟踪
重复本文前面的从应用程序导出生成的跟踪一节中的步骤在本地保存新的性能跟踪。
将生成的跟踪导入 RCS
重复本文前面的将生成的跟踪导入 RCS 一节中的步骤将新的性能跟踪导入 RCS。
在 RCS 中使用性能跟踪进行分析 – 模型映射
重复本文前面的在 RCS 中使用性能跟踪进行分析 – 模型映射一节中的步骤分析最新性能跟踪。
请注意,您对模型映射进行的调整消除了对数据库的重复查询。 还减少了对此模型映射的数据库表和数据源的调用数量。 因此提高了整个 ER 解决方案的性能。
在跟踪信息中,VendTable 数据源的值 [12] 表示此数据源被调用了 12 次。 值 [Q:6] 表示六个调用被转换为了对 VendTable 表的数据库调用。 值 [C:6] 表示已缓存了从数据库获取的记录,并且通过使用高速缓存还除了另外六个调用。
请注意,对 LedgerTransTypeList 数据源的调用数量已从 9,027 降低到了 240。
检查应用程序中的执行跟踪
除了 RCS,还有一些版本可能提供针对 ER 框架设计器体验的功能。 这些版本有一个可开启的启用设计模式选项。 可以在电子申报参数页(可从电子申报工作区打开该页)中的常规选项卡上找到此选项。
如果使用这些版本中的一个,您可以直接在应用程序中分析生成的性能跟踪的详细信息。 无需将其从应用程序中导出,再导入 RCS。
通过使用外部工具查看执行跟踪
配置用户参数
- 转到组织管理 > 电子申报 > 配置。
- 在配置页操作窗格中配置选项卡的高级设置组中,选择用户参数。
- 在用户参数对话框执行跟踪部分的执行跟踪格式字段中,选择 PerfView XML。
运行 ER 格式
重复本文前面的运行 ER 格式部分中的步骤生成一个新的性能跟踪。
请注意,Web 浏览器提供一个可供下载的 zip 文件。 这个文件中包含 PerfView 格式的性能跟踪。 然后可使用 PerfView 性能分析工具分析 ER 格式执行情况的详细信息。
使用外部工具查看其中包含数据库查询的执行跟踪
因为已改进了 ER 框架,所以以 PerfView 格式生成的绩效跟踪现在提供更多有关 ER 格式执行的详细信息。 在 Microsoft Dynamics 365 Finance 版本 10.0.4(2019 年 7 月)中,此跟踪中也可以包含对执行的 SQL 查询的详细信息。
配置用户参数
转到组织管理>电子申报>配置。
在配置页操作窗格中配置选项卡的高级设置组中,选择用户参数。
在用户参数对话框的执行跟踪部分中,设置以下参数:
- 在执行跟踪格式字段中,选择 PerfView XML。
- 将收集查询统计信息选项设置为是。
- 将跟踪查询选项设置为是。
运行 ER 格式
重复本文前面的运行 ER 格式部分中的步骤生成一个新的性能跟踪。
请注意,Web 浏览器提供一个可供下载的 zip 文件。 这个文件中包含 PerfView 格式的性能跟踪。 然后可使用 PerfView 性能分析工具分析 ER 格式执行情况的详细信息。 执行 ER 格式期间,此跟踪中现在包含 SQL 数据库访问权限的详细信息。