Dynamics AX Blog - Dynamics AX 2012 - Microsoft Dynamics AX (Axapta) - Seite 30

In den letzten Jahren, in denen ich mich fast hauptsächlich mit der Entwicklung im Umfeld von Microsoft Dynamics AX (vormals Axapta) beschäftigt habe, ist das eine oder andere Code-Fragment entstanden, von dem ich mir vorstellen könnte, daß es auch für andere AX-Entwickler ganz nützlich sein könnte. Aber auch Tips und Tricks zu dem mächtigen ERP-System werde ich in dieser Kategorie präsentieren.
RSS-Feed dieser Kategorie
RSS-Feed dieser Version
AX 2012: SysOperation-Framework: Titel des Dialoges ändern
20.10.2012Microsoft Dynamics AX (Axapta)
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: public LabelType parmDialogCaption(LabelType _dialogCaption = '')
{ // 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(); }
public ClassDescription caption()
{ ClassDescription ret; ret = "Tutorial-SysOperation-Framework"; return ret; }
|
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. |
|
|
|
|
|
|
Wenn man in einem Data Contract die Klasse SysOperationInitializable über den Befehl implements einbindet, kann man die dadurch zur Verfügung stehende Methode initialize() einbinden.
Mit Hilfe dieser Methode kann man Variablen innerhalb des Data contracts initialisieren. Diese Methode wird allerdings nur aufgerufen, solange keine Nutzungsdaten gefunden werden bzw. diese nicht aktiviert sind.
class TutorialSysOperationDataContract
implements SysOperationInitializable
{
date dialogDate;
}
public TransDate parmDialogDate(TransDate _dialogDate = dialogDate)
{
dialogDate = _dialogDate;
return dialogDate;
}
{
dialogDate = systemDateGet() - 365;
}