I’m not sure exactly what you are after, but this should get you started. It is currently written to insert into a SQL Server table, but modifying it to insert into an AX table should be easy enough.
public
static voidProcessTablesFields(Args _args)
{
#AOT
TableId tableId;
TableName tableName;
FieldId fieldId;
FieldName fieldName;
Label label =
new Label();
str sqlInsertCommand;
TreeNode treeNodeTables;
TreeNode treeNodeTable;
TreeNode treeNodeFields;
TreeNode treeNodeField;
int nodeCountTables;
int nodeNumberTables;
int nodeCountFields;
int nodeNumberFields;
treeNodeTables = TreeNode::findNode(#TablesPath);
nodeCountTables = treeNodeTables.AOTchildNodeCount();
treeNodeTable = treeNodeTables.AOTfirstChild();
for (nodeNumberTables = 1; nodeNumberTables <= nodeCountTables; nodeNumberTables++)
{
tableId = treeNodeTable.AOTgetProperty(
“Id”);
tableName = treeNodeTable.AOTgetProperty(
“Name”);
treeNodeFields = TreeNode::findNode(#TablesPath +
“\” + tableName + “\Fields”);
nodeCountFields = treeNodeFields.AOTChildNodeCount();
treeNodeField = treeNodeFields.AOTfirstChild();
for (nodeNumberFields = 1; nodeNumberFields <= nodeCountFields; nodeNumberFields++)
{
fieldId = treeNodeField.AOTGetProperty(
“Id”);
fieldName = treeNodeField.AOTGetProperty(
“Name”);
sqlInsertCommand =
strFmt("INSERT INTO AX2012R2_XXX.dbo.AxTablesFields (TableId, TableName, FieldId, FieldName) " +
“Values (%1, ‘%2’, %3, ‘%4’)”, tableId, tableName, fieldId, fieldName);
AAASqlServerCommandExecuter::ExecuteInsertCommand(sqlInsertCommand);
treeNodeField = treeNodeField.AOTNextSibling();
}
treeNodeTable = treeNodeTable.AOTNextSibling();
}
info(
“Processing of AOT Tables/Fields complete”);
}