Como criar programaticamente um projeto para objetos em uma determinada camada

Este artigo apresenta um exemplo de código para descrever como criar programaticamente um projeto para objetos em uma determinada camada no Microsoft Dynamics AX.

Aplica-se a: Microsoft Dynamics AX
Número de KB original: 2004467

Resumo

Talvez você queira criar um projeto do Microsoft Dynamics AX que contenha todos os elementos do aplicativo existentes em uma determinada camada. Por exemplo, se você precisar recriar o arquivo de camada *.aod var, precisará puxar todos os elementos do aplicativo na camada VAR para um projeto, exportar o projeto para um xpo, excluir o arquivo VAR *.aod e, finalmente, fazer logon no arquivo VAR *.aod recém-criado importar o xpo. Quando você importa o xpo, todos os elementos do aplicativo podem ser recriados no novo *.aod arquivo. O código neste documento demonstra como fazer isso.

Mais informações

Quando o código X++ neste exemplo for adicionado a um trabalho no AOT e executado, o código criará um projeto privado chamado VarLayerChanges. O VarLayerChanges projeto conterá todos os elementos que existem na camada VAR. Se você quiser criar um projeto para uma camada diferente, altere a cadeia de caracteres 'VarLayerChanges' para a camada para a qual você precisa, por exemplo 'CusLayerChanges'. Em seguida, altere o enum UtilEntryLevel::var para a camada diferente, por exemplo UtilEntryLevel::cus.

TreeNode treeNode = infolog.projectRootNode();
ProjectNode projectNode;
UtilElements utilElements;
;
treeNode = treeNode.AOTfirstChild();
treeNode.AOTadd('VarLayerChanges');
projectNode = treeNode.AOTfindChild('VarLayerChanges');
projectNode = projectNode.getRunNode();
while select utilElements WHERE utilElements.utilLevel == UtilEntryLevel::var
{
    ProjectNode.addUtilNode(utilElements.recordType, utilElements.name);
}
ProjectNode.AOTsave();