Ax 2012

generating method (with specific code) from X++ code

So the issue was that I was supposed to create bunch of methods ( like parm) , when I knew the table fields, and where they had really similar code.

Instead doing that manually I have created a following job. Hope it helps 🙂

static void aka_createDetermineMethods(Args _args)
{
     TreeNode tnclass, tntable,tnfield;
     MemberFunction tnMethod;
     str name;
     str code = "protected %1 %2()\n"+
                "{\n"+
                "//overwritten in sub classes\n"+
                " return '%3';\n"+
                "}";

     tnClass = TreeNode::findNode(@"\Classes\[class to add methods]");
     tntable = TreeNode::findNode(@"\Data Dictionary\Tables\CustTable\Fields");
     tnfield = tntable.AOTfirstChild();

    while (tnfield)
    {
         name = "parm"+tnfield.treeNodeName();
         tnMethod = tnClass.AOTfindChild(name);
        if (!tnMethod)
        {
            tnMethod = tnClass.AOTadd(name);
            info(tnfield.treeNodeName());
        }
        tnMethod.AOTsetSource(strFmt(code, tnfield.AOTgetProperty("ExtendedDataType"), name,name));
        tnfield = tnfield.AOTnextSibling();
   }
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s