Dynamics AX: Das RunBaseBatch-Framework

Man braucht es immer wieder, und genau darum findet Ihr im folgenden eine kurze - und bestimmt auch nicht ganz vollständige - Übersicht, wie dieses RunBaseBatch-Framework benutzt werden kann. Erste Anlaufstelle sollte übrigens in jedem Fall die Klasse Tutorial_RunBaseBatch sein, dort werden die wichtigsten Methoden verwendet und man kann sich so zumindest einen groben Überblick verschaffen, was wie möglich ist.

Um eine stapelverarbeitungsfähige Klasse zu schaffen, ist diese in erster Linie von RunBaseBatch abzuleiten. Dadurch stehen eine Reihe von Methoden zur Verfügung, von welchen ich einige versuche im Folgenden zu erklären.

 

Methoden

Folgende Methoden sind zwingend notwendig, um die Klasse instanzieren zu können

main 
Diese statische Methode muss selbst erstellt werden, am besten nutzt man dafür die entsprechende Skript-Vorlage. Diese Methode wird immer dann aufgerufen, wenn die Klasse über einen Menuitembutton aufgerufen wird
pack 
Sollte verwendet werden, um die Nutzungsdaten zu speichern, retourniert im einfachsten Fall conNull()
unpack 
Sollte verwendet werden, um die Nutzungsdaten auszulesen, liefert im einfachsten Fall true zurück
run 
Hier sollte die eigentliche Logik der Klasse eingebunden werden. Diese Methode wird normalerweise aus der main-Methode heraus aufgerufen

 

Folgende Methoden können überschrieben werden, um den Benutzer Parameter eingeben zu lassen

dialog 
Hier können neue Felder im Standard-Dialog des Framework hinzugefügt werden
getFromDialog 
Hier können Felder, die im Dialog vom Benutzer eingegeben wurden, ausgelesen werden
validate 
Hier sollten die eingegebenen Felder validiert werden. Diese Methode wird automatisch aufgerufen, wenn man über prompt() den Dialog aufruft. Startet man die Klasse per Code, sollte man die Methode entweder direkt aufrufen oder in die run()-Methode integrieren

 

Weitere Methoden

description 
Steuert den Titel des Dialoges und die Anzeige einer Bezeichnung in der Stapelverabeitung (statische Methode)
caption 
Steuert den Titel des Dialoges, überschreibt dabei die description-Methode
canGoBatch 
Darf die Klasse als Stapelverabeitung laufen
isInBatch 
Wird die Klasse innerhalb einer Stapelverabeitung ausgeführt, kann dies über diese Methode abgefragt werden
initParmDefault 
Solange keine Nutzungsdaten für die Klasse vorhanden sind, wird diese Methode verwendet, um evtl. notwendige Parameter zu initialisieren. Sie wird desweiteren ausgeführt, wenn der Benutzer die Schaltfläche Standard betätigt
showQuerySelectButton 
Entfernt die Schaltfläche Auswählen, wenn innerhalb der Klasse mit einer Query gearbeitet wird (d.h. die Methoden queryRun und showQueryValues überschrieben wurden)
showQueryValues 
Wird mit einer Query gearbeitet, so können Felder, die über den Query eingeschränkt sind, hiermit im Dialog ein-/ausgeblendet werden
showClearButton 
Blendet die Schaltfläche Löschen ein oder aus, in diesem Fall sollte die Methode dialogClear aber auch entsprechende Anweisungen enthalten
showDefaultButton 
Blendet die Schaltfläche Standard ein oder aus, in diesem Fall sollte die Methode initParmDefault auch Anweisungen enthalten
dialogSelectCtrl 
Wird ausgeführt, wann immer man den Wert eines Feldes im Dialog bearbeitet. Dazu muss aber die Eigenschaft allowUpdateOnSelectCtrl des Dialog (idealerweise in der Methode dialog) auf true gesetzt sein
queryRun 
Hier kann eine QueryRun-Objekt angegeben werden
dialogClear 
Wird aufgerufen, wenn die Schaltfläche Löschen betätigt wird

 

Aufruf-Reihenfolge der Standard-Methoden in AX 4.0

Aufruf über MenuItemButton

Ohne Query

  • new
  • main
  • prompt
  • getLast
  • allowSaveLast
  • lastValueElementName
  • lastValueDataAreaId
  • lastValueUserId
  • lastValueType
  • lastValueElementName
  • lastValueDesignName
  • initParmDefault
  • showDialog
  • dialogMake
  • dialog
  • dialogInit
  • caption
  • description
  • runBaseDialogModifyType_RU
  • showQueryValues
  • showQueryValues
  • showDefaultButton
  • showClearButton
  • dialogPostInit
  • dialogPost
  • showQueryValues
  • canGoBatch
  • canGoBatch
  • putToDialog
  • canGoBatch
  • sysSignTableId
  • dialogPostRun

Mit Query

  • new
  • main
  • prompt
  • getLast
  • allowSaveLast
  • lastValueElementName
  • lastValueDataAreaId
  • lastValueUserId
  • lastValueType
  • lastValueElementName
  • lastValueDesignName
  • initParmDefault
  • showDialog
  • dialogMake
  • dialog
  • dialogInit
  • caption
  • description
  • runBaseDialogModifyType_RU
  • showQueryValues
  • showQueryValues
  • queryRun
  • queryRun
  • showQueryValues
  • showQuerySelectButton
  • showIndexFields
  • queryRun
  • showDefaultButton
  • showClearButton
  • dialogPostInit
  • dialogPost
  • showQueryValues
  • canGoBatch
  • canGoBatch
  • putToDialog
  • canGoBatch
  • sysSignTableId
  • dialogPostRun

Klick auf OK des Dialogs

Ohne Stapelverabeitung

  • checkCloseDialog
  • getFromDialog
  • canGoBatch
  • validate
  • isSysSignUsed
  • sysSignTableId
  • saveLast
  • allowSaveLast
  • lastValueElementName
  • pack
  • lastValueDataAreaId
  • lastValueUserId
  • lastValueType
  • lastValueElementName
  • lastValueDesignName
  • mustGoBatch
  • run

Mit Stapelverarbeitung

  • checkCloseDialog
  • getFromDialog
  • canGoBatch
  • validate
  • isSysSignUsed
  • sysSignTableId
  • saveLast
  • allowSaveLast
  • lastValueElementName
  • pack
  • lastValueDataAreaId
  • lastValueUserId
  • lastValueType
  • lastValueElementName
  • lastValueDesignName
  • isSysSignUsed
  • sysSignTableId
  • pack
  • initBatch
  • caption
  • description

Klick auf Abbrechen des Dialogs oder Schliessen des Dialogs

  • cleanupDialog

Klick auf den Auswählen-Button, wenn eine Query verwendet wird

  • getFromDialog
  • canGoBatch
  • queryRun

Klick auf OK zur Bestätigung der geänderten Query

  • dialogUpdateQuery
  • queryRun
  • queryRun
  • showIndexFields

Klick auf die Standard-Schaltläche, soferne verfügbar

Die Schaltfläche Standard ist nur verfügbar, wenn die Methode showDefaultButton überschrieben wurde und true retourniert. In diesem Falle sollte aber auch die Methode initParmDefault sinnvolle Anweisungen enthalten.

Ohne Query

  • reset
  • unpack
  • initParmDefault
  • putToDialog
  • dialogReInit
  • queryRun
  • queryRun
  • dialogUpdate
  • dialogUpdateQuery

Mit Query

  • reset
  • unpack
  • initParmDefault
  • putToDialog
  • dialogReInit
  • queryRun
  • queryRun
  • dialogUpdate
  • dialogUpdateQuery
  • queryRun
  • queryRun
  • showIndexFields

Klick auf die Löschen-Schaltläche, soferne verfügbar

Die Schaltfläche Löschen ist nur verfügbar, wenn die Methode showClearButton überschrieben wurde und true retourniert. In diesem Falle sollte aber auch die Methode dialogClear sinnvolle Anweisungen enthalten.

Ohne Query

  • pack
  • reset
  • dialogClear
  • putToDialog
  • dialogReInit
  • queryRun
  • queryRun
  • dialogUpdate
  • dialogUpdateQuery

Mit Query

  • pack
  • reset
  • dialogClear
  • putToDialog
  • dialogReInit
  • queryRun
  • queryRun
  • dialogUpdate
  • dialogUpdateQuery
  • queryRun
  • queryRun
  • showIndexFields

Aufruf-Reihenfolge der Standard-Methoden innerhalb der Stapelverarbeitung in AX 4.0

  • new
  • runsImpersonated
  • new
  • isSysSignUsed
  • sysSignTableId
  • unpack
  • caption
  • description
  • parmCurrentBatch
  • run
Dieser Beitrag bezieht sich auf die Versionen:
Dynamics AX 2012, Dynamics AX 2009, Axapta 3.0, Axapta 2.5

Kommentar hinzufügen
 
 
 

 

 
 
 
Beiträge des aktuellen Monats
Mai 2019
MoDiMiDoFrSaSo
 12345
6789101112
13141516171819
20212223242526
2728293031 
 
© 2006-2019 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu