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.
// 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]);
}
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
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.
{
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.