Разобрался в чем было дело, просто в различных приложениях узлы AOT в проекте называются по-разному, возможные варианты:
- Data Dictionary
- Data_Dictionary
- DataDictionary
Соответственно функционал при добавлении узла в проект ищет родительский узел текущего элемента и не находит, чтобы минимизировать ошибка можно переписать метод findOrCreateProjectGroup класса HKProject следующим образом:
X++:
ProjectGroupNode findOrCreateProjectGroup(TreeNode _treeNode)
{ #AOT
ProjectGroupNode ret, groupNode, bufGroupNode;
TreeNodePath path;
TreeNodeName groupName;
container pathCon;
if (!projectNode || !_treeNode)
return null;
// + KAnt
//path = strReplace(_treeNode.treeNodePath(), ' ', '_');
path = _treeNode.treeNodePath();
// - KAnt
pathCon = str2con(path, #AOTRootPath);
pathCon = condel(pathCon, 1, 1); // remove first delimiter
groupNode = projectNode;
while (conlen(pathCon) > 1)
{
groupName = conpeek(pathCon, 1);
bufGroupNode = groupNode.AOTfindChild( groupName );
// + KAnt
if(!bufGroupNode)
{
bufGroupNode = groupNode.AOTfindChild( strReplace(groupName, ' ', '_') );
}
if(!bufGroupNode)
{
bufGroupNode = groupNode.AOTfindChild( strReplace(groupName, ' ', '') );
}
// - KAnt
if (!bufGroupNode)
{
bufGroupNode = groupNode.AOTadd(groupName);
bufGroupNode.projectGroupType(SysTreeNode::path2ProjectGroupNodeType(_treeNode.treeNodePath()));
this.changeGroupPos(bufGroupNode);
}
groupNode = bufGroupNode;
pathCon = condel( pathCon, 1, 1);
}
ret = groupNode;
return ret;
}