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.

Dienstag, 18. März 2014

Fehler „Mixed mode assembly is built against version „v2.0.50727“ of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information." für Visual Studio 2012 WCF Projekte gehosted von Visual Studio 2012 beheben.

Um eine Anbindung eines Archiv System an ein von Entwickeltes AX 2009 Modul zu ermöglich, ohne das eine Direkte Zugriff auf die eigentliche AX Datenbank zu gewähren. Wird von uns ein WCF Dienst eingesetzt der von einem externen Dienstleister konsumiert wird. Innerhalb des WCF Dienstes ist wurde die WCF Host Konfiguration. Um den Folgenden Eintrag erweitert:
 
<startup useLegacyV2RuntimeActivationPolicy="true">
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
Somit kann der Eigentliche Dienst ohne Probleme im Mixed assembly mode arbeiten.
Jedoch bin ich beim Testen des Dienstes immer wieder auf diesen Fehler gestoßen, wenn der WCF Dienst vom Visual Studio gehostet wurden.
Nach langen suchen bin ich auf folgende Lösung gestoßen:
 
Hier wurde die eigentliche Konfiguration angepasst, die vom Visual Studio verwendet wird. In der Standard Installation sollte die WcfScvHost.exe.config unter C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE zu finden sein. Hier wurde die WcfScvHost.exe.config um den entsprechenden Eintrag erweitert.
Meine WcfScvHost.exe.config sieht nun wie folgt aus:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
                <startup useLegacyV2RuntimeActivationPolicy="true">
                                <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
                </startup>
                <runtime>
                               <DisableMSIPeek enabled="true"/>
                </runtime>
</configuration>