Dynamics AX Blog - Dynamics AX 4.0 - Beiträge von 2008

RSS-Feed dieser Version
Dynamics AX: Die Aktualisierung muss im Rahmen einer Buchung ausgeführt werden
12.11.2008Microsoft Dynamics AX (Axapta)
...heisst nichts anderes, als daß man beim Entwickeln ttsbegin/ttscommit vergessen hat. Eine nicht ganz glücklich ins Deutsche übersetzte Fehlermeldung ;-) |
Zertifizierungsprüfung Microsoft Dynamics AX 4.0 Development Introduction
01.09.2008In eigener Sache
Nach rund 5 Jahren Entwicklung im Umfeld von Microsoft Dynamics AX habe ich heute meine erste Zertifizierungsprüfung bestanden. Leider nur mit 98%, d.h. eine der 75 Fragen habe ich falsch beantwortet. Trotzdem: Juchu ;-) Weitere Prüfungen werden folgen, schließlich wäre ich irgendwann gerne Microsoft Certified Business Management Solutions Specialist for Microsoft Dynamics AX. |
Dynamics AX: Illegal property valueWenn man in Dynamics AX versucht die Eigenschaft AllowDuplicates eines Tabellen-Indexes von No auf Yes zu ändern, kann folgende Fehlermeldung auftreten: Illegal property value In diesem Fall ist vermutlich der betroffene Index als PrimaryIndex oder ClusteredIndex der Tabelle eingetragen. Eigentlich auch logisch :-) |
Dynamics AX: Container Quicktipp
24.07.2008Microsoft Dynamics AX (Axapta)
Container sind ja was feines, und aus diesem Grund verwende ich sie immer wieder gerne beim Programmieren unter Dynamics AX. Durch einen Blog-Beitrag bei SysDictCoder bin ich auf einen kleinen Trick gestossen, der mir in Zukunft etwas Tipp-Arbeit ersparen wird. Und zwar habe ich bisher Container immer ähnlich wie im folgenden befüllt: container fieldCon = conNull();
; fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "accountNum"); fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "name"); fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "zipcode"); fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "countryregionid"); fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "county"); Wesentlich rascher ist die folgende Schreibweise: container fieldConFast = conNull();
; fieldConFast += "accountNum"; fieldConFast += "name"; fieldConFast += "zipcode"; fieldConFast += "countryregionid"; fieldConFast += "county"; SysDictCoder geht in seinem Artikel etwas mehr ins Detail, deshalb meine Empfehlung dort mal vorbeizuschauen. |
Dynamics AX: SalesTable2LineField
22.06.2008Microsoft Dynamics AX (Axapta)
In der Auftragserfassung gibt es im Auftragskopf Felder, die, wenn sie aktualisiert werden, entweder vollautomatisch bzw. nach Rückfrage beim Benutzer in den Auftragszeilen ebenfalls aktualisiert werden. Welche Felder das sind kann in den Debitorenparametern, Register Aktualisierungen über die Schaltfläche Auftragspositionen aktualisieren eingesehen werden. Dort kann auch parametriert werden, wie sich Dynamics AX bei der Aktualisierung dieser Felder verhalten soll. Um nun ein weiteres Feld in diese Logik mitaufzunehmen bedarf es einiger Schritte. Im folgenden demonstriere ich die notwendigen Änderungen anhand des neuen Feldes DevReceiptDateRequested (abgeleitet vom EDT DevSalesReceiptDateRequested):
Übrigens, die gleiche Logik gibt es natürlich auch einkaufsseitig. Die obige Abfolge und die Codebeispiele wurden unter AX3 entwickelt. Update vom 28.07.2010: In Dynamics AX 2009 funktioniert die beschriebene Lösung genauso. Lediglich beim auszuführenden Job hat sich der Datentyp des Feldes table2LineUpdate geändert. |
Dynamics AX: Methode des "Callers" aufrufen
17.06.2008Microsoft Dynamics AX (Axapta)
Immer wieder besteht die Notwendigkeit, ein Formular über ein anderes zu öffnen und aus diesem heraus Methoden des Aufrufers aufzurufen. Einfaches Beispiel: Ich öffne aus der Auftragsmaske (Salestable) irgendein anderes Formular (über einen MenuItemButton) und möchte nun beim Schliessen dieses Formulares eine Methode in der Salestable-Maske aufrufen. Achtung: IntelliSense funtioniert in diesem Fall nicht (außer ich möchte eine Methode aufrufen, die im FormRun-Objekt enthalten ist). if (element.args() && element.args().caller()) { if (element.args().caller().name() == formStr(Salestable)) { element.args().caller().myMethod(); } } |
|
|
|
|
|
|
Mit der Debug-Klasse stellt Microsoft dem Dynamics AX-Entwickler eine Klasse zur Seite, mit deren Hilfe man während des Debuggen von Code sich Informationen anzeigen lassen kann, ohne die Infolog-Klasse missbrauchen zu müssen.