Dynamics AX Blog - Dynamics AX 2012 - sysoperation-framework - Seite 3


RSS-Feed dieser Version
SysOperation-Klassen per Job erstellenWer schon einmal eine Funktion mit Hilfe des SysOperation-Frameworks umgesetzt hat weiß, daß das Erstellen der bis zu vier notwendigen Klassen doch etwas Tipparbeit ist.
Man gibt im Job über die Variable baseClassName einen "Basisnamen" für seine Funktion an und der Job erstellt alle vier Klassen (Controller, Dataprovider, UIBuilder und Service). Zusätzlich gibt es im Job noch eine Map namens dataContractParmsMap aus der - soferne man Inhalte in diese Map eingefügt hat - bei der Generierung des Dataproviders auch gleich passende parm-Methoden erstellt werden. Im Job enthält die Map zwei Einträge für eine Debitorenkontonummer und eine Artikelnummer. |
Aufruf des SysOperation-Frameworks per CodeWenn man eine Funktion die über das SysOperation-Framework abgebildet ist per Code aufrufen möchte, kann der folgende Job zeigen, wie man das machen kann. static void runSysOperationThroughCode(Args _args) { TutorialSysOperationServiceController controller; TutorialSysOperationDataContract dataContract; SysOperationStartResult sysOperationStartResult; controller = TutorialSysOperationServiceController::newFromArgs(new Args()); dataContract = controller.getDataContractObject('_dataContract'); controller.parmExecutionMode(SysOperationExecutionMode::Synchronous); dataContract.parmFilenameSave(@"c:\temp\myFile.txt"); dataContract.parmCustAccount('US-006'); sysOperationStartResult = controller.startOperation(); } |
SysOperation: Formular mit bestimmten Datensatz nach dem Verarbeiten öffnenStellt euch folgende Aufgabenstellung vor: Es soll über eine vom SysOperation-Framework abgeleitete Klasse ein Datensatz erstellt oder aktualisiert werden. Danach soll sich ein bestimmtes Formular mit eben diesem Datensatz öffnen damit der Benutzer gleich mit evtl. weiteren manuellen Änderungen am Datensatz fortfahren kann. Ich nutze für eine solche Aufgabenstellung gerne die afterOperation() der Kontroller-Klasse. In dieser kann ich den operationReturnValue meiner Service-Klasse auslesen und entsprechend verarbeiten. |
AX 2012: SysOperation-Framework: Ein eigenes Formular als Dialog verwenden IIIn dem folgenden Beitrag habe ich schon einmal beschrieben, wie man innerhalb des SysOperation-Frameworks ein eigenes Formular als Dialog einbinden kann. Mittlerweile bin ich auf eine wesentlich einfachere Variante gestossen:
protected FormName templateForm() { FormName ret; ret = formStr(CopyOfSysOperationTemplateForm); return ret; } |
AX 2012: SysOperation-Framework: Security-Hinweis
26.06.2013Microsoft Dynamics AX (Axapta)
Wenn man in einer Service-Klasse das Attribute SysEntryPointAttribute auf True gesetzt hat (wie ich dies beispielsweise in diesem Blog-Beitrag getan habe), darf man nicht vergessen, die jeweilige Methode in den Knoten Permissions > Server Methods eines Security-Privileges einzufügen. Nur das Hinzufügen des MenuItems der jeweiligen Controller-Klasse reicht nicht aus! Sonst kann der Benutzer unter Umständen zwar den Dialog der Funktion aufrufen, diese dann aber nicht starten. Weiters sollte man beachten, daß man Tabellen, die von dieser Klasse verwendet/befüllt werden gleichermassen über ein Privilege berechtigt. |
AX 2012: SysOperation-Framework: Ein eigenes Attribut erstellen
02.04.2013Microsoft Dynamics AX (Axapta)
Die Attribute des SysOperation-Frameworks sind über Klassen abgebildet, die von SysAttribute abgeleitet sind. Dadurch ist es relativ einfach möglich, sich eigene Attribute zu erstellen. Folgende Schritte sind dafür notwendig:
|
|
|
|
|
|
|
Um für eine Funktion, die über das SysOperaton-Framework abgebildet wurde, die Berechtigungen über eine Code Permission abzubilden, sind folgende Schritte notwendig:
Abbildung: Darstellung von Schritt 4
Nachzulesen auf MSDN.