Dynamics AX Blog - Seite 38
Whitepaper zum Globalen AdressbuchDas 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. |
Shared Projects vergleichen
26.10.2010Microsoft Dynamics AX (Axapta)
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. Das Ergebnis des Jobs ist in allen Fällen ein einfaches Infolog. Beispiel: Die folgenden beiden Projekte gilt es zu vergleichen |
Tipp: Job in Klasse umwandelnWusstet 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
09.10.2010Microsoft Dynamics AX (Axapta)
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 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
|
Funktion "Gehe zur Haupttabelle" abfragen
02.10.2010Microsoft Dynamics AX (Axapta)
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
25.09.2010Microsoft Dynamics AX (Axapta)
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. |
|
|
|
|
|
|
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,
// ...do something