若要生成业务文档,请配置包含以下 ER 组件的电子申报 (ER) 解决方案:
运行 ER 格式时,从根格式元素开始运行每个格式元素。 每当运行的格式元素包含数据源绑定时,都会运行数据源以提供预期数据并使用它填写格式元素。 调用模型类型的数据源后,将根据模型映射设置调用适当的模型映射以从应用程序中提取数据。
以前,无法对这些模型映射调用进行参数化,因此无法使其依赖于所运行格式的逻辑。 仅支持以下数据流。
格式 格式元素 |
绑定 > 请求 > < 值 < |
格式映射 数据源 |
数据模型 > 请求 > < 值 < |
模型映射 数据源 |
绑定 > 请求 > < 值 < |
表 记录 字段 |
但是,在版本 10.0.15 及更高版本中,您可以配置仅在提供所配置参数的值时才能调用的数据模型字段。 从格式组件配置和调用此类字段时,必须在格式绑定中提供所需的参数作为调用的参数。 在这些情况下,可以根据特定于格式的值指定参数的值。 因此,您可以使用动态运行时参数化进行数据模型调用以支持以下数据流。
格式 格式元素 1 格式元素 2 |
绑定 > 请求 1 > < 值 1 < > 请求 2 > < 值 3 < |
格式映射 数据源 1 value2=Func(value1) |
数据模型 > field1 > < 值 1 < > field2(value2) > < 值 3 < |
模型映射 数据源 1 数据源 2 |
绑定 > 请求 1 > < 值 1 < > 请求 2 > < 值 3 < |
表 1 记录 1 字段 1 表 2 记录 2 字段 2 |
新功能允许您对记录或记录列表类型的任何数据模型字段的调用进行参数化。 数据模型字段的参数支持以下数据类型:
您可以指定数据模型字段的每个参数,并且可以为数据模型字段提供参数,作为已定义数据类型的单个值和此类值的列表。
注释
不支持数据模型字段参数的默认值。 如果您将参数添加到数据模型中的字段,并且该数据模型的版本已经发布,则必须将所有相应的模型映射和格式重定为该模型的新版本,因为该数据模型更改无法向后兼容。
您可以配置参数化数据模型字段以使模型映射调用特定于格式。 此方法可以帮助您减少必须为单个数据模型的许多格式配置的模型映射数。 您还可以使用此方法来提高格式的执行性能并减少生成业务文档所需的时间。 若要了解有关此功能的详细信息,请完成本文中的示例。
示例:使用 ER 数据模型的参数化调用
以下步骤说明了系统管理员或电子申报开发人员角色的用户如何设计一个包含数据模型、模型映射和格式 ER 组件的 ER 解决方案,通过为调用提供参数(其值是在运行时使用运行格式的公式计算出来的),这些组件被配置为从格式调用模型映射。
这些步骤可以在 DEMF 公司完成。 无需进行任何代码修改。
在此示例中,将为示例公司 Litware, Inc. 创建所需 ER 配置。 确保为 ER 框架列出了 Litware, Inc. (http://www.litware.com
) 示例公司的配置提供程序,并且它被标记为活动。 如果未列出此配置提供程序,或者未将其标记为活动状态,请按照创建一个配置提供程序,并标记其为活动状态中的步骤操作。
业务方案
您有一个 ER 解决方案,其中包含一种格式,您可以运行该格式以生成用于审计目的的电子单据。 此格式包含的税务交易与销售订单和采购订单相关,并且具有所需的详细信息,例如交易日期和税值。 在新会计年度,此单据的结构已更改。 您现在必须提交一个扩展单据,其中包含在生成的报表上显示其交易的所有当事方(客户和供应商)的其他详细信息(名称)。 因此,您必须修改 ER 解决方案,以便它生成符合此新要求的单据。
配置 ER 框架
按照配置电子报告框架中的步骤设置最低限度的电子报告参数集。 在开始使用 ER 框架设计新 ER 解决方案之前,您必须完成此设置。
设计域特定数据模型
您必须创建一个包含所需数据模型组件的新 ER 配置。 此数据模型将在以后您设计 ER 格式以生成审核报表时用作数据源。
按照以下步骤从 Microsoft 提供的 XML 文件导入所需的数据模型。
下载 Sample audit model.version.1.xml 文件,并将其保存到本地计算机。
转到组织管理>工作区>电子申报。
在电子报告工作区中,选择报告配置。
在配置页上的“操作”窗格中,选择交换>从 XML 文件加载。
选择浏览,然后找到并选择 Sample audit model.version.1.xml 文件。
选择确定导入配置。
下图显示了数据模型设计器页上可编辑版本的已配置数据模型。
当前,该模型旨在仅公开具有所需详细信息的税务交易。
为配置的数据模型设计模型映射
作为电子报告开发人员角色的用户,您必须为示例审核数据模型创建一个新的 ER 配置,其中包含模型映射组件。 此组件实现为 Microsoft Dynamics 365 Finance 配置的数据模型,并且特定于该应用。 您必须配置模型映射组件来指定必须用于在运行时使用应用程序数据填充配置的数据模型的应用程序对象。 要完成此任务,您必须了解税业务域的数据结构在 Finance 中是如何实现的。
按照以下步骤从 Microsoft 提供的 XML 文件导入所需的模型映射。
下载 Sample audit model mapping.version.1.1.xml 文件,并将其保存到本地计算机。
转到组织管理>工作区>电子申报。
在电子报告工作区中,选择报告配置。
在配置页上的“操作”窗格中,选择交换>从 XML 文件加载。
选择浏览,然后找到并选择 Sample audit model mapping.version.1.1.xml 文件。
选择确定导入配置。
下图显示了模型映射设计器页面上配置的模型映射的可编辑版本。
当前,该模型映射旨在公开具有所需详细信息的税务交易。 它使用配置的 TaxTrans
和 TaxTrans
ER 数据源从 TaxTransFiltered
应用程序表中提取此信息。
设计新格式
作为电子报告功能顾问角色的用户,您必须创建一个新的 ER 配置,其中包含格式组件。 您必须配置格式组件,才能用包含所有必需详细信息的税务交易填写生成的报表。
按照以下步骤从 Microsoft 提供的 XML 文件导入所需的格式。
下载 Sample audit format.version.1.1.xml 文件,并将其保存到本地计算机。
转到组织管理>工作区>电子申报。
在电子报告工作区中,选择报告配置。
在配置页上的“操作”窗格中,选择交换>从 XML 文件加载。
选择浏览,然后找到并选择 Sample audit format.version.1.1.xml 文件。
选择确定导入配置。
下图显示了格式设计器页面上配置的格式的可编辑版本。
ER 格式配置为以逗号分隔值 (CSV) 格式的文本文件形式生成报表。
运行导入的格式
在配置页面上,选择示例审核格式配置,然后在操作窗格上选择运行。
在电子报表参数对话框的要包括的记录选项卡上,选择筛选器。
指定条件以选择 PIV-110000004 和 INV-10000001 凭证的税务交易。
选择确定。
选择确定。
查看包含所选凭证的税务交易的已生成单据。
调整导入的 ER 解决方案
根据新要求,您必须提交的单据必须包含其交易包含在内的客户和供应商的名称。 因此,您必须修改导入的 ER 解决方案,以便它生成符合此新要求的单据。
决定您希望如何对导入的 ER 组件进行所需的修改。
显而易见的方法是实施以下修改:
- 在数据模型中,添加字符串类型的新
Transaction.Party.Name
数据模型字段。 - 在模型映射中,使用可用的表关系配置新数据模型字段的绑定,以访问
DirPartyTable
应用程序表的相关记录,并从中提取Name
字段的值。
尽管此方法将起作用,但它可能会在 SQL 数据库中导致性能问题,因为 TaxTrans
是交易表,因此可能包含大量记录。 在这种情况下,DirPartyTable
的调用次数必须等于 TaxTrans
表中可能导致性能问题的记录数。
或者,您可以进行以下修改:
- 在数据模型中,添加新
Party
根和新Party.Name
字段。 - 在模型映射中,添加一个新的数据源,该数据源将加入表关系中使用的所有表记录,以从
DirPartyTable
表开始访问TaxTrans
应用程序表的相关记录。
虽然此方法将起作用,但它可能会导致一些内存消耗问题。 即使将新 JOIN 数据源作为对应用程序数据库的单个 SQL 请求运行来防止数据库性能问题,也必须将结果提取到应用程序服务器的内存中。 因为记录的数量和这些记录中的字段数量会很大,所以这种方法可能会导致内存消耗非常大。 甚至可能会引发内存不足运行时异常。
当运行格式在内存中收集将在已生成报表中显示的所有税务交易的客户和供应商唯一标识代码时,您可以实施修改。 因为只应该保留唯一代码,所以最终的代码集不会大到影响内存消耗。 然后,将代码集传递到模型映射,作为模型类型数据源的另一调用的参数。 基于该调用,模型映射将运行一个新 ER 数据源,该数据源向应用程序数据库发出单个 SQL 请求,以从 DirPartyTable
表中仅提取其代码出现在所提供的一组数据中的各当事方记录。
调整导入的数据模型
转到组织管理>电子申报>配置。
在配置页的左侧窗格的配置树中,选择示例审核模型。
在版本快速选项卡上,选择状态为草稿的版本 2。
选择配置组件快速选项卡。
选择设计器以打开要编辑的数据模型。
在数据模型页面上,请确保已选择
Root
字段,然后选择新建。在下拉对话框中,执行以下步骤:
- 在新节点作为字段组中,选择活动节点的子节点选项。
- 在名称字段中,输入当事方。
- 在物料类型字段中,选择记录列表。
- 选择添加以完成添加新字段的操作。
确保选择了
Root.Party
字段,然后在节点选项卡上,选择参数。在参数对话框中,执行以下步骤:
- 在参数选项卡上,选择新建。
- 在名称字段中,输入 PartyRefRecId。
- 在类型字段中,选择 Int64。
- 选择列表复选框。
- 选择确定以完成输入参数的操作。
注释
您刚才将
Root.Party
数据模型字段配置为在 PartyRefRecId 参数中提供值时调用的字段。 此值必须存在于包含 Int64 数据类型的Value
字段的记录列表中。请确保仍然选择
Root.Party
字段,然后选择新建。在下拉对话框中,执行以下步骤:
- 在新节点作为字段组中,选择活动节点的子节点选项。
- 在名称字段中,输入名称。
- 在物料类型字段中,选择字符串。
- 选择添加以完成添加新字段的操作。
选择保存,然后关闭数据模型页面。
在版本快速选项卡上,针对版本 2,选择更改状态>完成。 然后选择确定。
注释
您的数据模型更改存储在示例审核模型数据模型组件的第二修订版中,该组件位于示例审核模型 ER 配置的第二个版本中。
调整导入的模型映射
在配置页的左侧窗格的配置树中,展开示例审核模型。
选择示例审核模型映射,然后在版本快速选项卡上,选择基于第一个数据模型版本(版本 1.2)且状态为草稿的第二个映射版本。
选择重定基本版本。
在目标版本字段中,保留示例审核模型基本模型的版本 2。
选择确定以重定模型映射并将其与最近的数据模型更改保持一致。
请注意,可编辑模型映射的版本号已从 1.2 更改为 2.2,以指示第二个模型版本当前用作基础版本。
选择设计器。
在模型到数据源映射页面上,选择当前模型映射的设计器。
按照这些步骤添加新数据源以访问
DirPartyTable
应用程序表:- 在数据源类型窗格中,选择 Dynamics 365 for Operations > 表记录。
- 在数据源窗格中,选择添加根。
- 在名称字段中,输入 PartyTable。
- 在表字段中,输入 DirPartyTable。
- 选择确定以完成添加新数据源的操作。
根据提供的记录标识代码列表,按照以下步骤添加新数据源以请求
DirPartyTable
记录:在数据源类型窗格中,选择常规 > 空容器。
在数据源窗格中,选择添加根。
在名称字段中,输入数据。
选择确定以完成添加新数据源的操作。
在数据源窗格中,选择数据数据源。
在数据源类型窗格中,选择函数 > 计算字段。
在数据源窗格中选择添加。
在名称字段中,输入 DirParty。
选择编辑公式。
在公式设计器页面上,选择参数。
在参数对话框中,执行以下步骤:
- 在参数选项卡上,选择新建。
- 在名称字段中,输入 DirPartyId。
- 在类型字段中,选择 Int64。
- 选择列表复选框。
- 选择确定。
注释
您刚才配置了此计算字段,以便它在运行时接受单个参数的自变量,该参数配置为具有 Int64 类型的单个
Value
字段的记录列表。在公式字段中,输入下面的表达式:
FILTER(PartyTable, VALUEINLARGE(PartyTable.RecId, DirPartyId, DirPartyId.Value))
注释
您刚才将
DirParty
计算字段配置为仅获取DirPartyTable
记录,其中记录标识代码包含在DirPartyId
列表中,该列表在调用DirParty
字段时作为参数提供。选择保存,然后关闭公式设计器页面。
选择保存,然后选择确定以完成添加新数据源的操作。
按照以下步骤将新数据源绑定到新数据模型字段,以便使用数据模型公开当事方名称:
在数据模型窗格中,选择
Root.Party
数据模型字段。在数据模型窗格中,选择编辑。
在公式设计器页面的公式字段中,输入表达式
Data.DirParty(PartyRefRecId)
。选择保存,然后关闭公式设计器页面。
注释
您刚才将绑定配置为调用配置的
Data.DirParty
数据源,并提供调用Root.Party
数据模型字段时以此格式指定的记录标识代码列表。在数据模型窗格中,选择
Root.Party.Name
数据模型字段。在数据模型窗格中,选择编辑。
在公式设计器页面上的数据源窗格中,展开数据 > DirParty,然后选择名称。
选择添加数据源。
选择保存,然后关闭公式设计器页面。
选择保存,然后关闭模型映射设计器页面。
关闭模型到数据源映射页。
在版本快速选项卡上,针对版本 2.2,选择更改状态 > 完成。 然后选择确定。
调整导入的格式
在配置页上,选择示例审核格式。
在版本快速选项卡上,选择状态为草稿的版本 1.2。
选择重定基本版本。
在目标版本字段中,保留示例审核模型基本模型的版本 2。
选择确定以重定格式并将其与最近的数据模型更改保持一致。
选择设计器。
在格式设计器页上,在左窗格中的格式结构树中,选择展开/折叠。
按照以下步骤添加新格式元素,以收集其交易在所生成报表中呈现的当事方的记录标识代码。
- 在格式结构树中,选择 Report.Row.Trans 序列元素。
- 选择添加。
- 在添加对话框中,选择数据源 > 项。
- 在组件属性对话框的名称字段中,输入ID。
- 在数据类型字段中,选择 Int64。
- 选择确定。
注释
数据源 > 项元素仅可用于在运行格式范围内执行内部计算和数据转换。 因此,通过添加此格式元素,您不会更改生成的文档的内容。
按照这些步骤添加新格式元素以在生成的报表上输入当事方名称:
- 选择 Report.Row 序列元素。
- 选择添加。
- 在添加对话框中,选择文本 > 序列。
- 在组件属性对话框的名称字段中,输入当事方。
- 选择确定。
- 选择 Report.Row.Party 序列元素。
- 选择添加。
- 在添加对话框中,选择文本 > 字符串。
- 在组件属性对话框的名称字段中,输入名称。
- 选择确定。
按照以下步骤添加新数据源,以收集其交易在所生成报表中呈现的当事方的记录标识代码:
- 在映射选项卡上,选择添加根。
- 在添加数据源对话框中,选择函数 > 数据集合。
- 在数据集合数据源属性对话框中,在名称字段中输入 PartyIds。
- 在物料类型字段中,选择 Int64。
- 选择确定。
按照以下步骤添加新绑定,以收集其交易在所生成报表中呈现的当事方的记录标识代码:
- 在格式结构树中,选择 Report.Row.Trans.Id 数据项元素。
- 选择编辑公式。
- 在公式设计器页面上,输入表达式
PartyIds.Collect(model.Transaction.Party.RecId)
。 - 选择保存,然后关闭公式设计器页面。
按照这些步骤添加新绑定以在生成的报表上输入当事方名称:
- 在格式结构树中,选择 Report.Party 序列元素。
- 选择编辑公式。
- 在公式设计器页面上,输入表达式
model.Party(PartyIds.Result)
。 - 选择保存,然后关闭公式设计器页面。
- 在格式结构树中,选择 Report.Party.Name 序列元素。
- 在映射选项卡上,选择
model.Party.Name
数据模型字段。 - 选择绑定。
选择保存,然后关闭格式设计器页面。
关闭模型到数据源映射页。
在版本快速选项卡上,针对版本 2.2,选择更改状态>完成。 然后选择确定。
运行调整的格式
在配置页面上,选择示例审核格式,然后在操作窗格上选择运行。
在电子报表参数对话框的要包括的记录选项卡上,选择筛选器。
指定条件以选择 PIV-110000004 和 INV-10000001 凭证的税务交易。
选择确定。
选择确定。
查看生成的单据,其中包含所选凭证的税务交易以及相应客户和供应商的名称。
转到应付帐款>供应商>所有供应商,并查看所选 PIV-110000004 凭证的详细信息,包括供应商名称。
转到应收帐款>客户>所有客户,并查看所选 INV-10000001 凭证的详细信息,包括客户名称。
有关此 ER 解决方案的此执行的更多详细信息,请使用 ER 内置的性能跟踪分析器。