Axapta 将xpo拆分为多个xpo文件

Axapta 将xpo拆分为多个xpo文件,axapta,dynamics-ax-2012,Axapta,Dynamics Ax 2012,是否有一种工具可以将一个xpo文件拆分为多个xpo文件?与CombineXPOs的功能完全相反 我问这个问题的原因是因为我需要将多个单一xpo/模型版本放入源代码管理中,我希望避免每次都必须首先导入它们,因为这太耗时了。理解之后,我会考虑更多您想要的内容。这是一份工作,它为你提供了很多关于如何做你想做的事情的例子 请注意需要完成的待办事项 static void JobImportXPOs(Args _args) { SysVersionControlSystem vcs = versi

是否有一种工具可以将一个xpo文件拆分为多个xpo文件?与CombineXPOs的功能完全相反


我问这个问题的原因是因为我需要将多个单一xpo/模型版本放入源代码管理中,我希望避免每次都必须首先导入它们,因为这太耗时了。

理解之后,我会考虑更多您想要的内容。这是一份工作,它为你提供了很多关于如何做你想做的事情的例子

请注意需要完成的待办事项

static void JobImportXPOs(Args _args)
{
    SysVersionControlSystem vcs = versionControl.parmSysVersionControlSystem();
    SysImportElements       sysImportElements   = new SysImportElements();
    TmpAotImport            tmpAotImport;
    Filename                fileName = @"C:\Temp\testXPO.xpo";
    SysVersionControllable  controllable;
    TreeNode                treeNode;

    sysImportElements.newFile(fileName);
    sysImportElements.parmAddToProject(false);
    sysImportElements.parmImportAot(true);

    tmpAotImport = sysImportElements.getTmpImportAot();

    while select tmpAotImport
    {
        treeNode = TreeNode::findNode(tmpAotImport.TreeNodePath);

        if (!treeNode)
        {
            // New object being added to AX
            // TODO - Remember this object and add this to VCS system at the end for check-in
            continue;
        }

        controllable = SysTreeNode::newTreeNode(treeNode);

        if (!controllable)
        {
            error(strFmt("Error processing %1 (%2) from file %3", tmpAotImport.TreeNodeName, tmpAotImport.TreeNodePath, Filename));
            continue;
        }

        if (vcs.allowCreate(controllable))
        {
            info(strFmt("Planning to add to VCS %1 for import", tmpAotImport.TreeNodePath));
            // TODO - Remember to add this to VCS at the end of the import
        }
        else if (vcs.allowCheckOut(controllable))
        {
            info(strFmt("Checking out %1 for import", tmpAotImport.TreeNodePath));
            // TODO - Remember to check this specific object back in at the end of the import
        }
    }

    // Do the actual import
    sysImportElements.import();

    // TODO - Check in all of the objects we just handled

    info("Done");
}

我确实看到了那个工具,但它是从2006年开始的。从那以后xpo文件格式没有改变吗?我有xpo的每一个版本的AX 2012之间略有差异。导入每个xpo并使用上述代码导出将花费太长时间。希望这能让我的问题更清楚。你还没有清楚地解释这个问题。所以你们有一个XPO,里面有很多对象,然后你们想把它变成单个对象的多个XPO?导入一个巨大的xpo并创建一个充满对象的项目,使用我提供的示例代码,但显然要对其进行修改,以便在项目节点上爬行并将每个对象作为xpo转储,这样就完成了?问题是时间。检查AX的每一个版本和我正在开发的软件的每一个错误修复都需要几天的时间。在AX或VM之外拆分xpo将大大加快速度。想象一下你要做20多次描述的事情。。。头脑麻木。我需要拆分它的原因是将代码放入sourcecontrol,就像AX那样。等等。您是否认为可以将一个平面XPO文件拆分为不同的早期版本?例如,您可以拥有一个XPO,其中包含
Tables\SalesTable
Tables\custable
,但不包含
Tables\SalesTable(版本1)
Tables\SalesTable(版本2)
。那么,您的XPOs源代码集不是最新版本吗?您可以使用命令行开关通过脚本导入它们
–aotmortfile=
()我创建了一个工具来拆分xpo文件以解决我的问题。如果有人想要它,请留下评论。嗨,AndyD,你能分享一下吗。我使用的是AX2009SP1RU8。提前谢谢