Nachstehender Job durchsucht alle Projekte nach einem bestimmten Element des AOT.
Dafür wird ein Dialog verwendet, wo man lediglich den Namen und den Typ des zu suchenden Elementes angeben muss. Außerdem kann man noch einstellen, ob auch die privaten Projektknoten durchsucht werden sollen.
Wer eine etwas komfortablere Möglichkeit vorzieht, der kann sich bei Firma Loncar Technologies Inc. ein entsprechendes XPO herunterladen und ins AX einspielen. Auf Basis dieses XPOs ist auch obiger Job entstanden.
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
Nachstehender Job durchsucht alle Projekte nach einem bestimmten Element des AOT.
Dafür wird ein Dialog verwendet, wo man lediglich den Namen und den Typ des zu suchenden Elementes angeben muss. Außerdem kann man noch einstellen, ob auch die privaten Projektknoten durchsucht werden sollen.
static void findObjectWithinProjects(Args _args) { UtilElementType utilElementType = UtilElementType::Table; Name objectName = 'custTable'; boolean includePrivateProjects = false; Dialog dialog; DialogField df_objectName; DialogField df_utilElementType; DialogField df_privateProjects; container conProjects; int c; TreeNode treeNodeRoot; SysOperationProgress sysOperationProgress; UtilElementType utilElementTypeSelection; #Aot #TreeNodeSysNodeType #AviFiles #define.objectNameField("Name of object") #define.utilElementTypeField("Type of object") void findChildNodes(TreeNode _treeNodeParent, ProjectNode _projectNode, str _objectName) { TreeNode treeNode; TreeNodeIterator treeNodeIterator; ; treeNodeIterator = _treeNodeParent.AOTiterator(); treeNode = treeNodeIterator.next(); while (treeNode) { if (treeNode.AOTgetNodeType() == #NT_PROJECT_GROUP) { findChildNodes(treeNode, _projectNode, _objectName); } else if (treeNode.AOTname() like _objectName) { utilElementTypeSelection = str2enum(utilElementTypeSelection, enum2str(utilElementType)); if (!utilElementType || treeNode.applObjectType() == utilElementTypeSelection) { if (!confind(conProjects, _projectNode.AOTname())) { conProjects = conins(conProjects, conlen(conProjects)+1, _projectNode.AOTname()); } return; } } treeNode.treeNodeRelease(); treeNode = treeNodeIterator.next(); } } void loopProjectsNode(TreeNode _treeNode) { ProjectNode projectNode; TreeNode treeNodeProject; if (_treeNode) { treeNodeProject = _treeNode.AOTfirstChild(); while (treeNodeProject) { projectNode = treeNodeProject; sysOperationProgress.setText(projectNode.name()); findChildNodes(projectNode.loadForInspection(), treeNodeProject, objectName); treeNodeProject = treeNodeProject.AOTnextSibling(); } } } ; dialog = new Dialog(); dialog.caption("Find projects containing specific object"); df_objectName = dialog.addField(Types::String, #objectNameField); df_utilElementType = dialog.addField(typeid(UtilElementType), #utilElementTypeField); df_privateProjects = dialog.addField(typeid(NoYesId), "Include Private projects"); df_objectName.value(objectName); df_utilElementType.value(utilElementType); df_privateProjects.value(includePrivateProjects); if( !dialog.run()) { return; } objectName = df_objectName.value(); utilElementType = df_utilElementType.value(); includePrivateProjects = df_privateProjects.value(); if (objectName == '*' || objectName == '') { throw error(strfmt("@SYS26332", #objectNameField)); } setprefix(strfmt("Projects containing %1 '%2'", utilElementType, objectName)); startLengthyOperation(); sysOperationProgress = new SysOperationProgress(); sysOperationProgress.setCaption("Searching"); sysOperationProgress.setAnimation(#AviSearch); // Private projects if(includePrivateProjects) { loopProjectsNode(SysTreeNode::getPrivateProject()); } // Shared projects loopProjectsNode(SysTreeNode::getSharedProject()); sysOperationProgress.kill(); endLengthyOperation(); // List projects for(c=1;c<=conlen(conProjects);c++) { info(conpeek(conProjects, c)); } }Wer eine etwas komfortablere Möglichkeit vorzieht, der kann sich bei Firma Loncar Technologies Inc. ein entsprechendes XPO herunterladen und ins AX einspielen. Auf Basis dieses XPOs ist auch obiger Job entstanden.
https://www.loncartechnologies.com/download.php