Freitag, 21. Oktober 2016

Verwenden von third-party DLL in AX2012 C# Projekten



Wenn man in einer AX2012 C# Projekt eine third-party DLL, oder ein Nuget Package verwendet möchte. Müssen diese manuell hinzugefügte werden. AX gibt euch folgende Meldung aus, wenn das Paket nicht gefunden werden kann:


This project refers to at least one nuget package missing on this computer. enable the restoration of nuget packages to download the missing file.


Hierbei kann man wie folgt vorgehen:


1.       Ladet die third-party DLL über nuget herunter oder nutzt eine bereits bestehende DLL.


2.       Fügt die third-party DLL eurer AX Klassenbibliothek über den Solution Explorer hinzu.


3.       Klickt im Solution Explorer rechts auf euer Projekt und wählt „Ordner im Datei-Explorer öffnen“


4.       Öffnet nun die .cproj Datei mit einem Texteditor


5.       Sucht nach dem XML Tag ItemGroup und fügt die rotmarkierte ItemGroup hinzu.(MyDLL.dll mit dem Namen der von eurer third-party DLL ersetzten.



6.       Speicher die Änderungen


7.       Visual Studio fragt euch nun ob die Projektdatei neu eingelesen werden soll. Die bestätigt Ihr.


8.       Fügt nun die Änderungen dem AOT hinzu in dem Ihr über den Solution Explorer mit „Add to AOT“
Somit ist die third-party DLL nun auch für das AX bereitgestellt und kann verwendet werden

Siehe auch http://daxmusings.codecrib.com/2013/07/auto-deploying-dlls-and-other-resources.html



Freitag, 23. Oktober 2015

Spaltenüberschriftenzeile auf jeder Seite SSRS Dynamics AX 2012

Während Entwicklung von SSRS Report für Dynamics AX 2012, fand ich heraus, dass wenn Bericht über mehreren Seiten geht, Spaltenüberschrift nicht auf alle Seiten wiederholt werden.

Obwohl die Eigenschaft RepeatColumnHeaders der Tabelle auf true gesetzt wurde.

Um das Problem zu lösen muss die Eigenschaft RepeatOnNewPage für die Spaltenüberschrift gesetzt werden.

Wählt hierfür das Tablix und unterhalb der rechten Seite der Spalten Gruppenkopf, und klickt dort auf die kleine Pfeilspitze und wählt den erweiterten Modus.


Jetzt über rechten Maustaste auf klicken statische in Zeilengruppen, oder F4 drücken, um das Eigenschaften Fenster zu öffnen.

Von Eigenschaften Fenster die Eigenschaft RepeatOnNewPage auf True stellen.


Wenn Ihr den Bericht bereitstellen habt, wird die Spaltenüberschrift nun auf jeder Seite angezeigt.

Bis zum nächstem mal.....

Dienstag, 30. September 2014

Dokumenten Druck aus dem EP über SSRS Reports

Für ein Projekt war es nötig das über das Enterprise Portal ein Dokument aus dem AX 2012 erstellt wird und im Browser als neues Tab angezeigt wird.
In diesem Post werden ich nur auf die Call aus dem EP an eine AX Klasse, die die Erstellung und Ablage des Dokuments in einem Share übernimmt, sowie das Aufrufen des Dokuments aus dem EP beschreiben.
Die eigentliche Erstellung eines PDF über den SSRS können Sie dem MSDN entnehmen:

Reporting in Microsoft Dynamics AX [AX 2012]

Beginnen wir mit dem erstellen der AX Klasse EPPrintDocuments. Im Grunde hält diese Klasse nur die Statischen Methode die aus dem EP angesprochen werden:















Die Klasse liefert uns als Rückgabe wert eine Kommaseparierte Liste der Dateipfade zu den erstellten Dokumenten.

Im DynamicsAXUserControl habe ich eine Button hinterlegt der die Klasse EPPrintDocuments wie folgt aufruft:


Damit der Redirect in einem neuen Tab geöffnet wird verwende ich die Response.Redirect Extension Methode auf folgenden Projekt Response.Redirect into a new window
















welche das gewünschte verhalten per JavaScript Befehl an den Client sendet.

ich wünsche noch viel Spaß beim selber ausprobieren, bis zum nächsten mal....

Dienstag, 23. September 2014

Datenabrufe aus AX2012 R3 aus einer Windows App

Der AX2012 R3 bietet uns von hause aus schon einige Web Service mit deren Hilfe wir Daten aus dem AX konsumieren können. Hier bei möchte ich den QueryService Web Service hervorheben. Mit diesem lassen sich sowohl statische Querys aus dem AX ausführen als auch eigen Querys die in der Applikation definiert werden.

hier ein kleines Beispiel für eine AX Query Ausführung:












und nun das Beispiel für eine eigenes Query:



die im den Beispiel verwendeten Methode FetchData iteriert das zurück gelieferte XML und wandelt es in eine ObservableCollection des jeweiligen erwarteten Datentyps um.

Freitag, 22. August 2014

Enterprise Protal AX2012: Erstellen eines Table Context aus einem AxRecordAdapter

Im ersten Moment hatte ich versucht gemäß des MSDN Artikel Using Context from Code in Enterprise Portal [AX 2012] vorzugehen.

Da dies sich nicht so umsetzten lies hab ich folgende Lösung verwendet um einen Table Context zu erstellen:

Dienstag, 8. Juli 2014

Fehler bei der Datenbank Synchronisierung für AX 2012 R3


Es ist letztlich vorgekommen das die Datenbank Synchronisierung  für AX 2012 R3 fehlgeschlagen ist mit der folgender Fehlermeldung die sehr Aufschlussreich war o_O 

Ein Befehl der Datendefinitionssprache kann nicht für () ausgeführt werden.
Die SQL-Datenbank hat einen Fehler gemeldet.
Naja, für jemanden der schon länger mit AX arbeitet ist so was Aussagekräftiges nicht ungewöhnliches. Nach ein wenig suchen konnte ich auch SQL Anweisung finde die diesen Fehler verursachte. Das kuriose war nur das es sich dabei um ein View handelt deren Konfigurationsschlüsse deaktiviert sind.

SQL-Anweisung: ALTER TABLE TAXINTGREXPORTDOCUMENTVIEW_CN DROP COLUMN PARTITION#14, PARTITION#13, PARTITION#12, PARTITION#11, PARTITION#10, PARTITION#9, PARTITION#8, PARTITION#7, PARTITION#6, PARTITION#5, PARTITION#4, PARTITION#3, PARTITION#2, DATAAREAID#14, DATAAREAID#9, DATAAREAID#5, DATAAREAID#3

Man konnte den Fehler nicht aus dem AX heraus beheben, dafür musste man auf dem SQL Server die fehlerhafte View löschen selbst vom SQL-Server löschen.
 
DROP VIEW TAXINTGREXPORTDOCUMENTVIEW_CN
 
Danach konnte die Datenbank wieder normal Synchronisiert werden.
http://community.dynamics.com/ax/f/33/t/103490.aspx

Montag, 31. März 2014

Kompilierung im AX2012 mit AxBuild.exe


Ab dem  CU7 gibt es für AX2012 R2 ein neues Command Line Utility namens AxBuild.exe, mit dem das Kompilieren parallel über die Kommandozeile ohne den „Bottelneck“ des AX-Clients durchgeführt werden kann.

Mit Hilfe der AxBuild.exe konnten wir den gesamten X++ Source unserer Entwicklung in ca. 30 Min Kompilieren.