Tuesday, March 24, 2015

Change table field property

static void TableFieldUpdate(Args _args)
{
    TreeNode            vendFldsRoot = treeNode::findNode(@"\Data Dictionary\Tables\ScobTopVendors\Fields");

    TreeNodeIterator    vendFldsIterator;

    TreeNode            vendFlds;

    NoYes               visibleProp;
    Table1              table1;
    Name                name;
    str property;
    ;



    vendFldsIterator = vendFldsRoot.AOTiterator();

    vendFlds = vendFldsIterator.next();



    while(vendFlds)

   {

        name = vendFlds.treeNodeName();
       select * from table1 where table1.Companyname == name;
       Property       = vendFlds.AOTgetProperties();
       Property       = SetProperty(Property, "name",table1.label);
     
           vendFlds.AOTsetProperties(Property);
           vendFlds.AOTcompile();
           vendFlds.AOTsave();
     

        vendFlds    =   vendFldsIterator.next();

    }

}

Tuesday, March 3, 2015

project list in ax 2012

static void listAllObjectosFromProject(Args _args)
{
    #define.Shared("private")
   
    ProjName            projName = "userlayer";
    ProjectListNode     list = infolog.projectRootNode().AOTfindChild(#Shared);
    TreeNodeIterator    ir = list.AOTiterator();
    ProjectNode         pnProj;
    ProjectNode         pn = list.AOTfindChild(projName);

    void searchAllObj(projectNode rootNode)
    {
        #TreeNodeSysNodeType
        TreeNode          childNode;
        TreeNodeIterator  rootNodeIterator;
        ;

        if (rootNode)
        {
            rootNodeIterator = rootNode.AOTiterator();
            childNode = rootNodeIterator.next();
            while (childnode)
            {
                if (childNode.treeNodeType().id() == #NT_PROJECT_GROUP)
                {
                    searchAllObj(childNode);
                }
                else
                {
                    //info(strfmt("Group :%1 - Object: %2", rootNode.AOTname(), childNode.AOTname()));
                    info(strfmt("%1$%2", rootNode.name(),childNode.AOTname()));
                }
                childNode = rootNodeIterator.next();
            }
        }
    }
    ;

    if (pn)
    {
        //info(strFmt("Project %1:", projName));
        pnProj = pn.loadForInspection();
        searchAllObj(pnProj);
        pnproj.treeNodeRelease();
    }
    else  
    {
        info("Projet objects");
    }

}

How to identify the user that was used to change an object from AOT in AX2012

Get the object name for which we need to track these (user and date&time) information's. Login to SQL Server Management Studio an...