65.9K
CodeProject 正在变化。 阅读更多。
Home

Dynamics AX 数据维护和迁移技巧

2012 年 6 月 29 日

CPOL

5分钟阅读

viewsIcon

20354

维护多个 Dynamics AX 环境中的定义。

引言

本文主要面向熟悉 AX 用户界面 的中级 Microsoft Dynamics AX 用户。本文的目标是通过提供在不同 Dynamics AX 环境之间维护/移动“定义组”的技巧来帮助用户。本文的重点不是数据,而是就如何在不同的 AX 环境中维护相同的“定义”提供建议/指导。

基本上,DAT/DEF 用于在 AX AOS 服务器之间导出/导入数据。通常,Microsoft Dynamics AX 数据导入/导出用于将数据从暂存环境迁移到另一个环境。定义组标识可供导入或导出的表组,当您在 System Administration 下使用 Microsoft Dynamics AX 数据导入/导出功能时。定义组必须在导出数据之前设置,但在导入数据时则不是必需的。

据我所知,没有找到类似的文章解释/重点介绍如何导出包含预定义表列表和条件的定义文件,以及一个已创建并希望将其迁移到其他环境而无需重新创建的设置

注意:定义组下每个表中选择的表列表、“条件”和“范围”存储在 SYSEXPIMPTABLEQUERY 表中。

 SELECT GROUPID, QUERYRANGE, QUERYPACKED FROM SYSEXPIMPTABLEQUERY 

请按照此处的步骤进行操作。

登录 AX:用户应具有 AX“系统管理员”角色才能导航到以下屏幕。

导航至 系统管理 | 常用 | 数据导出/导入

注意:在下面的演示中,TransEx_def 用作示例名称,您可以替换为任何用户选择的名称。在下面的示例中,Trans 定义使用 Ex_def 组导出。可以通过使用另一个定义组来导出定义组。

假设您已经在名为“Trans”的组中定义了一些表(如下面的图像所示),并希望将该定义文件导出到另一个 AX 环境。

要导出具有相同表和条件的上述定义文件,您需要创建另一个定义文件,该文件可以做到这一点。因此,创建一个名为“Ex_def”的新定义组,并将描述保存为“导出定义”,以便清楚地理解其目的。

请注意,“Options”选项卡和“Include table groups”选项卡下的所有复选框均未选中。这样,您就不会将任何表加载到此新定义中。用户应该会看到一个新记录,如下面的图像所示。从菜单栏单击“Select tables”。

Select tables”会将用户带到如下屏幕。

在“Select tables”窗体中,只需在“Name of the table”列中键入“SysExpImpGroup”。然后选中“Apply criteria”列的复选框,并单击窗体顶部的菜单栏上的“Export criteria”。

单击“Export criteria”应会将您带到下面的屏幕。

此窗体有助于在 SysExpImpGroup 表(定义导入/导出组)上创建查询。从“Criteria”列的下拉列表中选择要迁移到另一个 AX 环境的定义名称(例如:“Trans”),然后单击窗体底部的 OK 按钮。

这将带您返回“Select tables”窗体。然后,如以下屏幕所示,选中“Specify related tables”下的复选框,然后单击窗体顶部的菜单栏上的“Select related tables”。



单击“Select related tables”将显示以下带有表列表的窗体。

请不要修改此窗体中的任何内容,将其保留原样并关闭。您应该会看到上面显示的所有表都返回到“Select tables”窗体,如下面的图像所示。



System administration | Common | Data export/import | Export to

这将带您到“Export Options”窗体,如下面的图像所示。

在“Export Options”窗体中,从“Definition group”下拉列表中选择 Ex_Def,从“File type”下拉列表中选择 Binary,然后将输出文件的名称指定为 Trans.dat。当输出文件类型选择 Binary 格式而不是 Comma 格式时,此导出的文件包含所有表、条件和范围信息。将这些 DATDEF 文件导入到新的 AX 环境中。您应该会在新的 AX 环境中看到名为 Trans 的定义组。它将保留所有表名、范围和条件。这避免了用户从头开始重新创建/执行它们,为开发人员节省了大量时间。

注意:如果文件以 Comma 格式导出,您只能获得表信息,而无法获得范围和条件。希望 Microsoft 在不久的将来能修复此问题。

导入 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

参考文献

以下链接可能对 AX 开发人员也很有用

http://blogs.bojensen.eu/?p=527

结论

上述步骤演示表明,导出包含表列表以及条件和范围的定义组也可以轻松迁移到不同的 AX 环境。

我将把这篇文章献给我所有的良心人士、朋友和同事。特别感谢 Richard Ward、John Reed 和 Todd Oberman。

希望本文能达到其目的。欢迎任何建议或指正。

© . All rights reserved.