Dynamics AX Blog - Beiträge von 2008
Dynamics AX: Excel-Datei einlesenVor kurzem musste ich mich gezwungenermaßen damit beschäftigen, wie man aus einer Excel-Datei Daten in AX einliest. Deshalb nun im folgenden ein Job mit einer Art Grundgerüst, wie man so etwas in X++ lösen kann. static void importFromExcel(Args _args) { Filename fileNameExcel = "C:\\temp\\file.xls"; SysExcelApplication sysExcelApplication; SysExcelWorkbooks sysExcelWorkbooks; SysExcelWorksheets sysExcelWorksheets; SysExcelWorksheet sysExcelWorksheet; SysExcelRange sysExcelRange; SysExcelCells sysExcelCells; SysExcelWorkbooks sysExcelWorkBooksCollection; str column_a; str column_b; str column_c; str column_d; int i = 0; #Excel ; sysExcelApplication = SysExcelApplication::construct(); sysExcelWorkbooks = sysExcelApplication.workbooks(); sysExcelWorkbooks.open(fileNameExcel); sysExcelWorksheets = sysExcelApplication.worksheets(); sysExcelWorksheet = sysExcelWorksheets.itemFromNum(1); sysExcelRange = sysExcelWorksheet.rows(); sysExcelCells = sysExcelWorksheet.cells(); try { ttsbegin; while (sysExcelCells.item(i+1, 1).value().variantType() != ComVariantType::VT_EMPTY) // In der Annahme, dass die erste Spalte nicht leer ist { i++; column_a = sysExcelCells.item(i, 1).value().bStr(); column_b = sysExcelCells.item(i, 2).value().bStr(); column_c = sysExcelCells.item(i, 3).value().bStr(); column_d = sysExcelCells.item(i, 4).value().bStr(); // ... do something ... } ttscommit; info("Finished"); sysExcelApplication.quit(); sysExcelApplication = null; } catch (Exception::Error) { sysExcelApplication.quit(); sysExcelApplication = null; } } |
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 ;-) |
Dynamics AX: Was macht eine Synchronisation?
01.11.2008Microsoft Dynamics AX (Axapta)
Im Zuge eines Reuqest bei Microsoft hatten wir die Frage, was genau denn eine Synchronisation macht. Diese wurde uns netterweise beantwortet und im folgenden findet Ihr nun diese Antwort in meinen Worten, also so wie ich die Antwort verstanden habe und sie teilweise unter AX 4.0 auch ausprobiert habe. |
Dynamics AX 2009: AxDBUpgrade.exe
29.10.2008Microsoft Dynamics AX (Axapta)
Kleiner Tip zum Microsoft Dynamics AX DB Upgrade Prepartion Tool (AxDBUpgrade.exe): Im Upgrade-Guide wird erwähnt, daß man dieses Tool am Datenbank-Server starten sollte, aus meiner Erfahrung heraus ist dies fast schon ein Muss! Ansonsten begegnet man diversen Fehlermeldungen wie z.B. SqlState 37000, NativeError 8180 |
AX 3.0: Shrinker.Err beim Kompilieren
28.10.2008Microsoft Dynamics AX (Axapta)
Wer unter Windows XP, Windows Server 2003 oder Windows Server 2008 eine Axapta-Applikation der Version 3.0 kompiliert, kann schon mal über nachstehende Fehlermeldung stolpern.
Die Lösung ist einfach einer neuere Version dieser Datei in das Client\Bin-Verzeichnis zu kopieren. Eine solche findet man z.b. unter http://www.janusys.com/janus/beta/downloads_patches.htm. |
Dynamics AX 2009: Datenbank-Synchronisation schlägt fehl
25.10.2008Microsoft Dynamics AX (Axapta)
Beim Upgraden einer Dynamics AX 4.0-Installation auf AX 2009 hatte ich beim Schritt "Datenbank synchronisieren" der Aktualisierungscheckliste eine Fehlermeldung, daß vier Tabellen nicht synchronisiert werden konnten. Ein Befehl der Datendefinitionssprache kann nicht für () ausgeführt werden. |
|
|
|
|
|
|
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.