static void tmxIterateProjectGroupMembers(Args _args) { #aot #properties Str projectName = "tmxEDI999"; ProjectNode projectNode; ProjectGroupNode ddProjectGroupNode; ProjectGroupNode edtProjectGroupNode; ProjectGroupNode tblProjectGroupNode; ProjectListNode projectListNode; TreeNode memberTreeNode; TreeNode projectTreeNode; TreeNodeIterator projectIterator; if(projectName) { // find all shared projects projectListNode = SysTreeNode::getSharedProject(); // find project with a given name projectNode = projectListNode.AOTfindChild(projectName); // open it in a separate window in AOT projectTreeNode = projectNode.getRunNode(); // this is the key point after which we can iterate group members projectNode = projectNode.loadForInspection(); // get nested nodes for appropriate names ddProjectGroupNode = projectNode.AOTfindChild('DataDictionary'); edtProjectGroupNode = ddProjectGroupNode.AOTfindChild('Extended Data Types'); tblProjectGroupNode = ddProjectGroupNode.AOTfindChild('Tables'); // tables projectIterator = tblProjectGroupNode.AOTiterator(); memberTreeNode = projectIterator.next(); while(memberTreeNode) { info(strFmt("%1 %2", memberTreeNode.AOTname(), memberTreeNode.treeNodeName())); memberTreeNode = projectIterator.next(); } // extended data types projectIterator = edtProjectGroupNode.AOTiterator(); memberTreeNode = projectIterator.next(); while(memberTreeNode) { info(strFmt("%1 %2", memberTreeNode.AOTname(), memberTreeNode.treeNodeName())); memberTreeNode = projectIterator.next(); } } }The key method is loadForInspection. Happy iterating!
Friday, October 24, 2014
How to iterate project group members: Tables, EDT, etc
Based on S. Kuskov's suggestion and Vania Kashperuk's article, I put down this simple job that iterates Tables and Extended Data Types groups members in a given shared project.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment