Dynamics AX Blog - Dynamics AX 2009 - Seite 9

RSS-Feed dieser Version
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? |
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. |
Auslesen von HTML-Quelltext in Dynamics AX 2009
12.08.2010Microsoft Dynamics AX (Axapta)
Vor kurzem wurde ich gefragt, wie man denn in Dynamics AX 2009 den HTML-Quelltext einer Webseite ausliest. Bitteschön... static void GetHTMLSourceCode(Args _args) { CLRObject castObject = null; System.Net.HttpWebRequest request = null; System.Net.HttpWebResponse response = null; System.IO.StreamReader streamReader = null; System.Text.Encoding encoding = null; url url = "http://www.yourdomain.com/yoursite.html"; ; new InteropPermission(InteropKind::ClrInterop).assert(); castObject = System.Net.WebRequest::Create(url); request = castObject; response = request.GetResponse(); encoding = System.Text.Encoding::get_UTF8(); streamReader = new System.IO.StreamReader(response.GetResponseStream(), encoding); info(streamReader.ReadToEnd()); } |
|
|
|
|
|
|
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