How to export projects layerwise in Microsoft Dynamics AX 2012 | CloudFronts

How to export projects layerwise in Microsoft Dynamics AX 2012


How to export projects layerwise (usr, cus, var, etc.) in Microsoft Dynamics AX 2012? 

Here, we will see how we can export the projects from AX 2012. Now It’s very easy to do so. 

We need to create a class or job in the respective environment and just need to do run. 
static void exportProjects(Args _args)
    TreeNodeIterator        tni;
    ProjectNode             projectNode;
    int                     exportFlag;
    Dialog                  dialog = new Dialog();
    DialogField             folderName;
    DialogField             projectDefinitionOnly;
    DialogField             exportFromLayer;
    DialogField             projectType;
    UtilEntryLevel          layer;

    SysExcelApplication     application;
    SysExcelWorkbooks       workbooks;
    SysExcelWorkbook        workbook;
    SysExcelWorksheets      worksheets;
    SysExcelWorksheet       worksheet;
    SysExcelCells           cells;
    SysExcelCell            cell;
    SysExcelFont            font;
    int                     row;
    CustTable               custTable;
    str                     fileName;

    fileName    = "D:\\Backup XPOs.xlsx"; //By specifying the directly, we will get the list of exported projects
    //Excel Part..............................................................................

    dialog.addText("This will export all projects (shared or private) that exist in a selected model.");
    projectType             = dialog.addFieldValue(enumStr(ProjectSharedPrivate), ProjectSharedPrivate::ProjShared);
    projectDefinitionOnly   = dialog.addField(extendedTypeStr(NoYesId), 'Project Definition Only');
    folderName              = dialog.addField(extendedTypeStr(FilePath));
    exportFromLayer         = dialog.addField(enumStr(UtilEntryLevel), 'Projects from layer');;

    if (dialog.closedOk())
        if (!folderName.value())
            throw error("Missing folder");

        exportFlag = #export;
        if (projectDefinitionOnly.value())
            exportFlag += #expProjectOnly;

        layer = exportFromLayer.value();
        switch (projectType.value())
            case ProjectSharedPrivate::ProjPrivate:
                tni = SysTreeNode::getPrivateProject().AOTiterator();

            case ProjectSharedPrivate::ProjShared:
                tni = SysTreeNode::getSharedProject().AOTiterator();

        projectNode = as ProjectNode;

        while (projectNode)
            if (projectNode.AOTLayer() == layer && like "CFS*") //if [like] specifies, system will export the projects which names starts with CFS
                projectNode.treeNodeExport(folderName.value() + '\\' + + '.xpo', exportFlag);


            projectNode = as ProjectNode;

        info("Projects Exported Successfully & Exported Projects List to Excel Sheet");
        warning("No action taken...");
After running the class it will prompt as below. After that select the directory where to export all projects and select the layer from which layer all projects should be exported. 

Thanks for reading!!!

Share Story :