Dynamics AX Blog - Beiträge von 2012 - Seite 2
AX 2012: SSRS: Einen Parameter einrichten
26.09.2012Microsoft Dynamics AX (Axapta)
In einem anderen Beitrag habe ich beschrieben, wie man beispielsweise einen SSRS-Report auf Basis eines Dataproviders erstellt. Dieser Beitrag ist quasi eine Fortsetzung in dem im demonstrieren möchte, wie man einen Parameter erstellt. Ein solcher Parameter ist einerseits notwendig, wenn man den Bericht als Subreport verwenden möchte oder aber auch wenn man Funktionalitäten abbilden möchte, die über den Dataprovider nicht abgebildet werden können. Im folgenden Beispiel soll der Bericht auf Basis eines Parameters so eingeschränkt werden können, sodaß Zeilen ohne Relevanz (im konkreten Fall Artikel, die noch nicht innerhalb einer Auftragsposition verwendet wurden) ausgeblendet werden können.
Schritt 1: Erstellen des Parameters |
Fehlermeldungen temporär übersetzen
08.09.2012Microsoft Dynamics AX (Axapta)
Kurzer Tipp zum Thema Fehleranalyse während des Entwickelns: Oft treten in Dynamics AX Fehlermeldungen auf, die auf den ersten Blick nicht verständlich sind und eine Suche nach beispielsweise deutschprachigen Fehlermeldungen im Internet ist oft nicht erfolgreich. Mit Hilfe des nachstehenden Jobs kann man einfach kurzfristig die Ausgabesprache des InfoLogs ändern - z.b. auf en-us - um anschließend mit der englischsprachigen Fehlermeldung eine möglicherweise erfolgreichere Internetrecherche anzustossen. static void changeInfologLanguage(Args _args) { infolog.language("en-us"); } Danach nur nicht vergessen, die Sprache wieder zurückstellen ;-) |
AX 2012: SSRS: Einen Bericht auf Basis eines Dataproviders erstellen
05.09.2012Microsoft Dynamics AX (Axapta)
Ein Dataprovider ist eine Klasse, die dazu verwendet wird um Daten für die Verwendung durch die SQL Reporting Services (SSRS) aufzubereiten. Ein solcher Dataprovider ist in jenen Fällen sehr hilfreich, wenn die anzuzeigenden Daten nicht - oder nur sehr mühsam - über einen Query ermittelt werden können. Im folgenden eine Schritt-für-Schritt Anleitung, wie man einen solchen Dataprovider erstellt und in den SSRS verwendet.
Schritt 1: Klasse erstellen, abgeleitet von SRSReportDataProviderBaseclass DmoSalesLineCountDataProvider extends SRSReportDataProviderBase
{ DmoSalesLineCountTmp DmoSalesLineCountTmp; } |
AX 2012: Erweitern des Formulares zur Anlage von Produkten/Artikel
02.09.2012Microsoft Dynamics AX (Axapta)
Um einen Artikel bzw. ein Produkt in Dynamics AX 2012 anzulegen, wird das Formular EcoResProductCreate verwendet. Im folgenden eine Kurzbeschreibung zur Einbindung eines Beispielfeldes MyCustomField (vom Extended Datatype MyCustomId): 1.) Hinzufügen einen Formcontrols auf Basis des EDT MyCustomId zum Formular und setzen der Eigenschaft AutoDeclaration auf YES und Vergabe eines eindeutigen Namens (beispielsweise gleichlautend wie der Name des Feldes) 2.) Anpassen der Methode createData2Controls() des Formulares wie folgt: private void createData2Controls()
{ data2Controls = [ //--> (1) //[tableStr(InventTable), [[fieldNum(InventTable, bomUnitId), formControlStr(EcoResProductCreate, BOMUnitId)]]], [tableStr(InventTable), [[fieldNum(InventTable, bomUnitId), formControlStr(EcoResProductCreate, BOMUnitId)], [fieldNum(InventTable, MyCustomId), formControlStr(EcoResProductCreate, MyCustomField)]]], //<-- (1) [identifierStr(Purch), [[fieldNum(InventTableModule, UnitId), formControlStr(EcoResProductCreate, PurchUnitId)], [fieldNum(InventTableModule, TaxItemGroupId), formControlStr(EcoResProductCreate, PurchTaxItemGroupId)]]], [identifierStr(Invent),[[fieldNum(InventTableModule, UnitId), formControlStr(EcoResProductCreate, InventUnitId)]]], [identifierStr(Sales), [[fieldNum(InventTableModule, UnitId), formControlStr(EcoResProductCreate, SalesUnitId)], [fieldNum(InventTableModule, TaxItemGroupId), formControlStr(EcoResProductCreate, SalesTaxItemGroupId)]]], [tableStr(EcoResStorageDimensionGroupItem), [[fieldNum(EcoResStorageDimensionGroupItem, StorageDimensionGroup), formControlStr(EcoResProductCreate, StorageDimensionGroup)]]], [tableStr(EcoResTrackingDimensionGroupItem), [[fieldNum(EcoResTrackingDimensionGroupItem, TrackingDimensionGroup), formControlStr(EcoResProductCreate, TrackingDimensionGroup)]]], [tableStr(InventItemGroupItem), [[fieldNum(InventItemGroupItem, ItemGroupId), formControlStr(EcoResProductCreate, ItemGroupId)]]], [tableStr(InventModelGroupItem), [[fieldNum(InventModelGroupItem, ModelGroupId), formControlStr(EcoResProductCreate, ModelGroupId)]]] ]; }
|
Erweitern von Dynamics AX um neue Icons
26.08.2012Microsoft Dynamics AX (Axapta)
Es ist allerdings nicht möglich, diese Embedded Ressources um eigene Icons/Bilder zu erweitern. |
AX 2012: Erfahrungen zum Thema Import von Modellen
22.08.2012Microsoft Dynamics AX (Axapta)
Um ein Modell in eine Instanz von Dynamics AX 2012 zu importieren wird das Kommandozeilen-Tool AXUTIL benötigt. Nach dem Import eines Modelles wird ein Hinweis ausgegeben, der leicht zu überlesen ist aber lt. meinen Erfahrungen ernorm wichtig ist. Dieser Hinweis lautet:
Auf Basis dieses Hinweises und aus der Erfahrung heraus führe ich nach dem Import eines Modelles immer folgende Schritte aus:
Wenn ich nur einen der genannten Schritte weggelassen habe, hatte ich immer wieder mit Phänomenen zu kämpfen. Einiger solcher Phänomene waren:
Leider sind die oben genannten Schritte teilweise recht zeitintensiv, die investierte Zeit war es in der Regel aber wert. |
|
|
|
|
|
|
Als Titel eines vom SysOperation-Framework generierten Dialoges wird in der Regel der Label des aufrufenden MenuItems angezeigt.
Möchte man diesen Titel bewusst übersteuern, so muss man in der Service Controller Class (=abgeleitet von SysOperationServiceController) die nachstehenden beiden Methoden einbinden/überschreiben:
{
// Base class is setup to get the caption from the
// the class name or from the menu item. Reroute it
// to the caption override.
return this.caption();
}
{
ClassDescription ret;
ret = "Tutorial-SysOperation-Framework";
return ret;
}