Dynamics AX Blog - Beiträge von 2010 - Seite 2
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. |
Label in einer bestimmten Sprache auslesen
14.08.2010Microsoft Dynamics AX (Axapta)
Um in X++ ein Label in einer ganz bestimmten Sprache auszugeben, nutzt man am besten die Methode labelId2String2 der SysLabel-Klasse: info(any2str(SysLabel::labelId2String2(literalStr("@SYS14204"),"de-at"))); |
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()); } |
selectMultiple und selectSingle
05.08.2010Microsoft Dynamics AX (Axapta)
Beim Stöbern in den vorgefertigten Methoden in der global-Klasse bin ich auf zwei Funktionen gestossen, die ich schon früher das eine oder andere Mal gebraucht hätte: selectMultiple und selectSingle. Was können diese Funktionen? Man übergibt Ihnen einen Container mit möglichen Werten und als Rückgabewert erhält man ebenfalls einen Container mit den vom Benutzer ausgewählten Werten. Dazwischen wird ein Dialog generiert, der nicht benutzerfreundlicher sein könnte, wie ich finde. |
|
|
|
|
|
|
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?