Geänderte oder neue Methoden von Klassen auflisten

Im folgenden findet ihr einen Job, der in einer adaptierten Applikation alle Methoden von Klassen auflistet, die entweder erstellt wurden oder gegenüber dem Standard verändert wurden.

static void ListChangedOrCreatedClassesMethods(Args _args)
{
    SysDictClass    SysDictClass;
    treeNode        treeNode;
    treeNode        treeNodeBase;
    treeNode        treeNodeCustom;
    treeNode        treeNodeClasses;
    UtilEntryLevel  CurrentUtilEntryLevel;

    #AOT
    ;
    treeNodeClasses = TreeNode::findNode(#ClassesPath + #AOTRootPath);
    treeNodeClasses = treeNodeClasses.AOTfirstChild();

    SysDictClass = new SysDictClass((treeNodeClasses.applObjectId()));

    setPrefix('List changed/created classes');

    while(treeNodeClasses)
    {
        SysDictClass = new SysDictClass((treeNodeClasses.applObjectId()));

        setPrefix(SysDictClass.name());

        treeNode = TreeNode::findNode(#ClassesPath + #AOTRootPath + SysDictClass.name() + #AOTRootPath);
        treeNode = treeNode.AOTfirstChild();
        while(treeNode)
        {

            treeNodeBase    = null;
            treeNodeCustom  = null;

            // Partner
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::bup);
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::bus);
            // Solutions
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::sl3);
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::sl2);
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::sl1);
            // Hotfix
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::hfx);
            // Microsoft
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::glp);
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::gls);
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::syp);
            if( !treeNodeBase) treeNodeBase = treeNode.getNodeInLayer(UtilEntryLevel::sys);

            // Custom layers
            if( !treeNodeCustom) { treeNodeCustom = treeNode.getNodeInLayer(UtilEntryLevel::vap);   CurrentUtilEntryLevel = UtilEntryLevel::vap; }
            if( !treeNodeCustom) { treeNodeCustom = treeNode.getNodeInLayer(UtilEntryLevel::var);   CurrentUtilEntryLevel = UtilEntryLevel::var; }
            if( !treeNodeCustom) { treeNodeCustom = treeNode.getNodeInLayer(UtilEntryLevel::cup);   CurrentUtilEntryLevel = UtilEntryLevel::cup; }
            if( !treeNodeCustom) { treeNodeCustom = treeNode.getNodeInLayer(UtilEntryLevel::cus);   CurrentUtilEntryLevel = UtilEntryLevel::cus; }
            if( !treeNodeCustom) { treeNodeCustom = treeNode.getNodeInLayer(UtilEntryLevel::usp);   CurrentUtilEntryLevel = UtilEntryLevel::usp; }
            if( !treeNodeCustom) { treeNodeCustom = treeNode.getNodeInLayer(UtilEntryLevel::usr);   CurrentUtilEntryLevel = UtilEntryLevel::usr; }

            // Changed methods
            if(treeNodeBase)
            {
                if( treeNodeBase.AOTgetSource() != treeNode.AOTgetSource())
                {
                    warning(strFmt( "Method '%1' was changed in layer '%2'.",
                                    treeNode.treeNodeName(),
                                    enum2str(CurrentUtilEntryLevel)));
                }
            }

            // New created methods
            if( !treeNodeBase)
            {
                info(strFmt( "Method '%1' was created in layer '%2'.",
                             treeNode.treeNodeName(),
                             enum2str(CurrentUtilEntryLevel)));
            }

            treeNode = treeNode.AOTnextSibling();
        }

        treeNodeClasses = treeNodeClasses.AOTnextSibling();
    }
}

Ein ähnlicher Job der prinzipiell das Gleiche erledigt, allerdings für alle Tabellenmethoden, ist hier zu finden.

Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2009

 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2025
MoDiMiDoFrSaSo
 123456
78910111213
14151617181920
21222324252627
282930 
 
© 2006-2025 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu