Dynamics AX Blog - Seite 38

Eingeblendete Dimensionen in Reports abfragen

In manchen Berichten ist es möglich, Lagerdimensionen über den Dialog ein- bzw. auszublenden. Um im Bericht selbst abzufragen, ob eine bestimmte Dimension eingeblendet wurde, kann man den unten stehenden Code verwenden, der eine Instanz der Klasse InventReport_OnHand voraussetzt. Dieser fragt zum Beispiel ab, ob die Palettennummer eingeblendet wurde,

if(InventReport_OnHand.parmInventDimParm().WMSPalletIdFlag))
   // ...do something

 


 
 

Whitepaper zum Globalen Adressbuch

Das Globale Adressbuch ist wohl eine der grossen Neuerungen in Dynamics AX 2009. Und vor allem Umsteiger von früheren Versionen haben dazu die eine oder andere Frage. So manche dieser Fragen beantwortet Microsoft im Whitepaper zum Globalen Adressbuch, mit Sicherheit aber nicht alle ;-)

Denoch sollte sich jeder Entwickler und Berater dieses Whitepaper einmal zu Gemüte führen, so findet man zum Beispiel zum Thema Importieren von Debitoren/Kreditoren bzw. Geschäftsbeziehungen via Excel eine ausführliche Beschreibung.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=052e9dda-667b-42bd-bd13-f8c5aa1bc0f0


 
 

Shared Projects vergleichen

Vor kurzem stand ich wieder einmal vor der Thematik, den Inhalt zweier Projekte vergleichen zu müssen. Da ich bis dato keine Möglichkeit gefunden habe, dies mit Bordmitteln von Dynamics AX durchzuführen, habe ich mir einen Job geschrieben, der genau dies tut.

Der Job verwendet die temporäre Tabelle TmpAOTImport aus dem Standard, in die zuerst mit Hilfe der Klasse TreeNodeTraverser sämtliche AOT-Objekte der beiden Projekte in jeweils einer Tabelleninstanz geschrieben wird. Danach werden diese beiden Instanzen über einen simplen SELECT miteinander verglichen.

Über den Standard-Enum SysMergeDirection (einen besseren habe ich nicht gefunden) kann man definieren, was ausgegeben werden soll.

Beim Wert NONE werden Objekte beider Projekte ausgegeben, die im jeweils anderen nicht vorkommen.
Beim Wert TEXTA werden alle Objekte aufgelistet, die im Projekt1, nicht aber im Projekt2 vorkommen und vice versa beim Wert TEXTB.

Das Ergebnis des Jobs ist in allen Fällen ein einfaches Infolog.

Beispiel: Die folgenden beiden Projekte gilt es zu vergleichen

Projects


 
 

Tipp: Job in Klasse umwandeln

Wusstet Ihr eigentlich, daß man einen Job einfach dadurch in eine einfache Klasse umwandelt, in dem man den Job per Drag & Drop in den Knoten Classes des AOTs zieht?


 
 

Fehler beim Aufrufen des ActiveX-Controls NETRONIC VARCHART XGantt in Dynamics AX

Ich habe mich schon seit längerem über zahlreiche Fehlermeldungen gewundert, die immer dann aufgetreten sind, wenn ich ein Formular geöffnet habe wo das ActiveX-Control NETRONIC VARCHART XGantt eingebettet war, z.B. das Formular Simultanplanungslauf.

Folgende Fehlermeldungen hatte ich da am Bildschirm:

ActXBaseControl::Open failure

D\Work\Projects\Ganft
4.O\NewGanttChart\NewGanttC ha rt_ActiveXsettings\GanttReqTransExplosioniFD

Loading the interface with identifier GanttReqTransExplosion failed

This is an unlicensed version of NETRONIC VARCHART XGantt. 1 Please contact NETRONIC for a Iicensed version.

Eigentlich ist die Lösung ganz einfach! Ich arbeite natürlich auf einer Entwickler-Maschine, wo unterschiedlichste Versionen von Dynamcs AX/Axapta parallel installiert sind. Und die zuerst installierte und somit älteste Version bestimmt die aktuell verwendete Version der ActiveX-Komponente.

Also ist folgendes zu tun: Deinstallieren der "veralteten" Version und installieren bzw. registrieren einer neueren Version z.B. über die Kommandozeile.

REM Uninstall old version
regsvr32.exe /u "C:\Program Files\Microsoft Business Solutions\Axapta\Client\Bin\vcgantt.ocx"

REM Install new version
regsvr32.exe "C:\Program Files\Microsoft Dynamics AX\Common\vcgantt.ocx"

 


 
 

Funktion "Gehe zur Haupttabelle" abfragen

Um in einem Formular zu ermitteln, ob dieses über die "Gehe zur Haupttabelle"-Funktion aufgerufen wurde, kann man sich des folgenden Code bedienen:

if( element.args().record() ||
    element.args().refField() ||
    element.args().lookupValue())
{
    // ...do something ...
}

 
 

Als MenuItem eingebundene Jobs ermitteln

Im Zuge eines Upgrades auf die aktuelle Version von Dynamics AX benötigte ich vor kurzem einen Job, der mir alle Jobs auflistet, die über ein MenuItem möglicherweise laufend in Verwendung sind:

static void ListJobsUsedAsMenuItem(Args _args)
{
    treeNode        treeNode;
    treeNode        treeNodeMenuItems;
    menuFunction    menuFunction;
    MenuItemType    MenuItemType;

    #AOT
    ;

    treeNodeMenuItems = TreeNode::findNode(#MenuItemsPath);
    treeNodeMenuItems = treeNodeMenuItems.AOTfirstChild();

    while(treeNodeMenuItems)
    {
        setPrefix("Jobs used in MenuItems");

        treeNode = treeNodeMenuItems.AOTfirstChild();

        while(treeNode)
        {
            menuFunction = new menuFunction(treeNode.treeNodeName(), str2enum(MenuItemType, treeNodeMenuItems.treeNodeName()));

            if(menuFunction.objectType() == utilelementType::Job)
            {
                setPrefix(strFmt("%1: %2", treeNodeMenuItems.treeNodeName(), treeNode.treeNodeName()));
                info(menuFunction.object());
            }

            treeNode = treeNode.AOTnextSibling();
        }

        treeNodeMenuItems = treeNodeMenuItems.AOTnextSibling();
    }
}

Der Job wurde in Dynamics AX 2009 entwickelt. 


 
 
Seiten « 1 ... 35 36 37 38 39 40 41 ... 53 » 

 

 
 
 
Beiträge des aktuellen Monats
Juni 2025
MoDiMiDoFrSaSo
 1
2345678
9101112131415
16171819202122
23242526272829
30 
 
© 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