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

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2024
MoDiMiDoFrSaSo
1234567
891011121314
15161718192021
22232425262728
2930 
 
© 2006-2024 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