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
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
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
Folgende Methoden können überschrieben werden, um den Benutzer Parameter eingeben zu lassen
Weitere Methoden
Aufruf-Reihenfolge der Standard-Methoden in AX 4.0
Aufruf über MenuItemButton
Ohne Query
Mit Query
Klick auf OK des Dialogs
Ohne Stapelverabeitung
Mit Stapelverarbeitung
Klick auf Abbrechen des Dialogs oder Schliessen des Dialogs
Klick auf den Auswählen-Button, wenn eine Query verwendet wird
Klick auf OK zur Bestätigung der geänderten Query
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
Mit Query
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
Mit Query
Aufruf-Reihenfolge der Standard-Methoden innerhalb der Stapelverarbeitung in AX 4.0