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();