本篇文章的目的是为用户在不同Dynamics AX环境中维护或迁移“定义组”提供帮助。本文的重点不是数据本身,而是指导如何在不同AX环境中保持相同的“定义”。
通常,DAT/DEF用于在AX AOS服务器之间导出/导入数据。一般而言,Microsoft Dynamics AX数据导入/导出用于将数据从一个暂存环境移动到另一个环境。定义组标识可以一起导入或导出的一组表,当使用Microsoft Dynamics AX数据导入/导出功能时,位于系统管理下。在导出数据之前,必须设置定义组,但在导入数据时则不需要。
据所知,目前还没有专门的文章解释或专注于如何导出定义文件以及预定义的表列表和标准,这是一个创建并希望将其带到其他环境而无需重新创建的设置。
注意:定义组中的表列表和“标准”以及“范围”在SYSEXPIMPTABLEQUERY表中存储。
SQL SELECT GROUPID, QUERYRANGE, QUERYPACKED FROM SYSEXPIMPTABLEQUERY
请按照以下步骤操作。
用户应具有AX“系统管理员”角色才能导航到以下屏幕。
导航至系统管理 | 常见 | 数据导出/导入
注意:以下示例中使用“Trans”和“Ex_def”作为示例名称,这些可以被用户选择的任何名称替换。在以下示例中,使用“Ex_def”组导出“Trans定义”。
假设已经在名为“Trans”的组中定义了一些表,如以下图像所示,并希望将该定义文件导出到另一个AX环境。
要导出上述定义文件,包括相同的一组表和标准,需要创建另一个定义文件来帮助完成这项工作。因此,创建一个名为“Ex_def”的新定义组,并将其描述保存为“导出定义”,以便清楚地理解其目的。
确保“选项”选项卡和“包含表组”选项卡下的所有复选框都未选中。这样,就不会加载任何表到这个新定义中。用户应该看到一个像下面图像中显示的新记录。点击菜单栏上的“选择表”。
“选择表”将带用户到如下所示的屏幕。
在“选择表”表单中,只需在“表名”列中键入“SysExpImpGroup”,并勾选或选择“应用标准”列的复选框,然后点击表单顶部菜单栏上的“导出标准”。
点击“导出标准”应该会带到如下所示的屏幕。
此表单有助于在SysExpImpGroup表(定义导入/导出组)上创建查询。从下拉菜单中选择要移动到另一个AX环境的定义名称(例如:“Trans”),然后点击表单底部的“确定”按钮。
这应该会带回到“选择表”表单。然后,在“指定相关表”下选择复选框,如以下屏幕所示,并点击表单顶部菜单栏上的“选择相关表”。
点击“选择相关表”将向展示一个带有表格列表的表单,如下所示。
不要在此表单中修改任何内容,保持原样并关闭它。应该在“选择表”表单中看到所有上述显示的表格,如下所示。
系统管理 | 常见 | 数据导出/导入 | 导出到
这将带到如下所示的“导出选项”表单。
在“导出选项”表单中,从“定义组”下拉菜单中选择Ex_Def,从“文件类型”下拉菜单中选择二进制,并传递输出文件的名称为Trans.dat。这个导出的文件包含了所有选定的表格和标准及范围信息,当选择二进制格式作为“文件类型”输出而不是逗号格式。将此DAT和DEF文件导入到新的AX环境中。应该在新的AX环境中看到具有相同名称Trans的定义组。它将包含所有表名、范围和标准。这避免了用户从头开始重新创建/重做它们,节省了开发人员大量的时间。
注意:如果文件以逗号格式导出,那么只能获得表格信息,而不是范围和标准。希望微软在不久的将来解决这个问题。
导入DAT/DEF文件也可以通过命令行使用XML文件作为输入到AX32.exe来完成。
XML文件应该是这样的。
xml
version
= "
1.0
"
encoding
= "
utf-8
"
?
>
<
AxaptaAutoRun
exitWhenDone
= "
true
"
version
= "
6.0
"
>
<
DataImport
companyId
= "
DAT
"
file
= "
C:\tfs\AxCore.dat
"
definitionGroupId
= "
AxCore
"
/
>
<
/AxaptaAutoRun
>
注意:XML文件中的参数值避免使用空格。
在命令提示符窗口中运行以下命令。
ax32.exe -internal=noModalBoxes -StartupCmd=AutoRun_C:\tfs\AxCoreAutoRun.xml