Dynamics AX Blog - Dynamics AX 4.0 - Beiträge vom August 2010

Momentan angezeigt werden nur Beiträge, welche für die Dynamics AX-Version »Dynamics AX 4.0« relevant sind. Filter entfernen

RSS-Feed dieser Version
Momentan angezeigt werden nur Beiträge vom »August 2010«. Filter entfernen

Shared Project mit X++ erstellen II

In einem früheren Beitrag habe ich ja hier schon einen Job veröffentlicht, mit dessen Hilfe man sich per X++ ein Shared Project erstellen kann. Basierend auf der neu entdeckten Funktion selectMultiple habe ich diesen nun etwas erweitert, der Benutzer hat mit dessen Hilfe nun die Möglichkeit, ein Shared Project zu erstellen und dabei für die aktuell benötigten Datentypen eigene Gruppenknoten innerhalb dieses Projektes zu erstellen.

static void CreateSharedProjectUsingSelectMultiple(Args _args)
{
    DictEnum            DictEnum;
    container           conValues;
    container           conSelectedValues;
    container           conSelectMultiple;
    int                 i;
    projectNode         projectNode;
    projectGroupNode    projectGroupNode;
    projectNode         myProjectNode;
    treeNodeName        nameOfProject;
    groupNodeType       groupNodeType;
    treeNodeName        groupNodeName;
    dialog              dialog;
    dialogField         dfProjectName;
    #AOTExport
    ;
    // Create dialog
    dialog = new dialog();
    dfProjectName = dialog.addFieldValue(typeId(treeNodeName), "NameOfproject", "Name of project");
    if( !dialog.run())
    {
        return;
    }
    nameOfProject = dfProjectName.value() ? dfProjectName.value() : "Unknown";
    
    // Add available values to container
    DictEnum = new DictEnum(enumName2Id(identifierStr(GroupNodeType)));
    for(i=1;i<DictEnum.values();i++)
    {
        conValues = conIns(conValues, conLen(conValues)+1, [DictEnum.index2Label(i), i, false]);
    }
   
    // Call selectMultiple
    conSelectMultiple = selectMultiple("Please select", "Please select the needed project-groups", conValues);
    conSelectedValues = conPeek(conSelectMultiple, 2);
    if( !conPeek(conSelectMultiple, 1))
    {
        return;
    }

    // Create shared project
    projectNode    = infolog.projectRootNode();
    projectNode    = projectNode.AOTfindChild(#expProjectShared);
    myProjectNode  = projectNode.AOTfindChild(nameOfProject);

    if( !myProjectNode)
    {
        myProjectNode = projectNode.AOTadd(nameOfProject);
        myProjectNode.AOTsave();
    }

    myProjectNode     = myProjectNode.getRunNode();

    if(conPeek(conSelectMultiple, 1))
    {
        for (i=1; i<=conLen(conSelectedValues); i++)
        {
           
            groupNodeName = DictEnum.index2Label(conPeek(conSelectedValues, i));
            projectGroupNode = myProjectNode.AOTfindChild(groupNodeName);
            if( !projectGroupNode)
            {
                myProjectNode.AOTadd(groupNodeName);
                projectGroupNode = myProjectNode.AOTfindChild(groupNodeName);
                projectGroupNode.projectGroupType(DictEnum.name2Value(groupNodeName));
                myProjectNode.AOTsave();
            }
        }
    }

    projectGroupNode.AOTsave();

    myProjectNode.AOTsave();
    myProjectNode.AOTrefresh();
    myProjectNode.AOTrun();
}

Obiger Code funktioniert meines Wissens nach in Dynamics AX 4.0 und Dynamics AX 2009.

 

 


 
 
 

 

 
 
 
Beiträge des aktuellen Monats
August 2010
MoDiMiDoFrSaSo
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
 
© 2006-2025 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu