|
05.08.2004, 08:11 | #1 |
Участник
|
Объекты АОТ в проекте
Добрый день!
Подскажите, пожалуйста, как программно можно получить список объектов АОТ, входящих в определённых проект?
__________________
Paul_ST |
|
29.09.2012, 22:19 | #2 |
Участник
|
Спасибо за проект.
Но в 2009-й приведенный вами код не работает Причина в том, что теперь ядро криво работает с узлами AOT. При переборе примерно 3 тысяч проектов все виснет. Иногда падает клиент. Переписал проект на работу с Utilelements. Работает очень быстро. |
|
|
За это сообщение автора поблагодарили: gl00mie (20). |
29.09.2012, 23:21 | #3 |
Administrator
|
Ээээ а чего-то там нет упоминаний об UtilElements... Это так и планировалось?
__________________
Возможно сделать все. Вопрос времени |
|
30.09.2012, 01:38 | #4 |
Участник
|
Цитата:
Тут то, что надо. |
|
|
За это сообщение автора поблагодарили: macklakov (3), raz (3), sukhanchik (6), Ace of Database (4), gl00mie (5), alex55 (3). |
03.03.2016, 10:20 | #5 |
Участник
|
В 2012-й такой подход не работает к сожалению.
А каким инстрементом лучше пользоваться в 12-й ? |
|
07.03.2016, 11:40 | #6 |
Британский учённый
|
Цитата:
X++: // >> DEV:MXK >> public static server void updateProjectCrossRef() { TreeNode tnRoot, tnProject; ProjectNode projectNode; xRefPaths refPaths; void updateProjectNodes(TreeNode _prentProject, xRefPathRecId _xRefPathRecId = 0) { #TreeNodeSysNodeType TreeNode treeNode; TreeNodeIterator rootNodeIterator; xRefReferences refReferences; xRefPaths refPathsRef; xRefPathRecId xRefNameRecId; rootNodeIterator = _prentProject.AOTiterator(); treeNode = rootNodeIterator.next(); while (treeNode) { if (treeNode.treeNodeType().id() == #NT_PROJECT_GROUP) { updateProjectNodes(treeNode, _xRefPathRecId); } else { refPathsRef = xRefPaths::findOrInsert(treeNode.treeNodePath()); xRefNameRecId = xRefNames::findOrInsert(DEV_Maintain::getRefKind(treeNode), '', treeNode.treeNodeName(), 0).RecId; if (!xRefReferences::find(xRefNameRecId, _xRefPathRecId, XRefReference::Declaration)) { refReferences.initValue(); refReferences.xRefNameRecId = xRefNameRecId; refReferences.xRefPathRecId = _xRefPathRecId; refReferences.referencePathRecId = refPathsRef.RecId; refReferences.Reference = XRefReference::Declaration; refReferences.insert(); } } treeNode.treeNodeRelease(); treeNode = rootNodeIterator.next(); } } tnRoot = SysTreeNode::getSharedProject(); if (tnRoot) { tnProject = tnRoot.AOTfirstChild(); while (tnProject) { projectNode = tnProject; if (TreeNode::findNode(tnProject.treeNodePath())) { refPaths = xRefPaths::findOrInsert(tnProject.treeNodePath()); updateProjectNodes(projectNode.loadForInspection(), refPaths.RecId); } tnProject = tnProject.AOTnextSibling(); } } info('Project references updated successfully.'); // << DEV:MXK << }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: Logger (7). |
03.09.2018, 14:24 | #7 |
Участник
|
Портировал код по быстрому поиску проектов на 2012-ю R3.
Перекрестные ссылки не нужны. Последний раз редактировалось Logger; 03.09.2018 в 14:57. |
|
|
За это сообщение автора поблагодарили: Raven Melancholic (3), S.Kuskov (10). |
05.09.2018, 12:28 | #8 |
Участник
|
По аналогии с вьюхой UtilElements добавил в запрос WITH (READUNCOMMITTED)
Последний раз редактировалось Logger; 05.09.2018 в 12:32. |
|
|
За это сообщение автора поблагодарили: rumpleteazer (1). |