Tutto quello che c’è da sapere per creare un batch in Microsoft Dynamics AX 4.
Prima di mostrarti come creare un batch è doveroso effettuare una piccola premessa per capire innanzitutto che cosa sono e a che cosa servono.
Un batch non è altro che una classe che viene eseguita automaticamente e con una determinata frequenza impostata dall’utente su un server Batch. Essi, quindi, sono molto utili ad esempio per la stampa di report, l’invio di documenti in formato elettronico ai clienti e molto altro. L’esecuzione di queste classi in automatico su un server permette, oltre a “sollevare” l’utente dalla gestione manuale, di non rallentare il computer/server durante la normale giornata lavorativa.
In Microsoft Dynamics AX 4 l’elaborazione avviene in maniera sequenziale, cioè un batch non parte fin tanto che quello in esecuzione non termina.
Inoltre, è molto utile creare dei gruppi batch in modo tale da dividere le classi a seconda del compito da esse svolte.
Per creare correttamente un batch è necessario:
- Creare una nuova classe aggiungendo l’estensione RunBaseBatch
- Creare all’interno della classe alcuni metodi standard
- Impostare la frequenza di ripetizione del processo
- Assegnare la classe ad un gruppo
Nell’esempio qui sotto riportato andremmo a creare una classe denominata BatchTest ed andremmo a sovrascrivere alcuni metodi standard come segue:
1. ClassDeclaration
//Aggiunto il valore extends RunBase Batch per permettere l'esecuzione della classe in batch class BatchTest extends RunBaseBatch { #define.CurrentVersion(1) #define.Version1(1) }
2. Pack
public container pack() { return [#CurrentVersion]; }
3. Unpack
public boolean unpack(container packedClass) { Version version = RunBase::getVersion(packedClass); ; return true; }
4. Construct
server static BatchTest construct() { return new BatchTest(); }
5. Description
static ClassDescription description() { //Nome visualizzato nella form per il lancio della classe return "Classe da mettere in batch"; }
6. Main
static void main(Args args) { //Creo un oggetto della mia classe BatchTest BatchTest = BatchTest::construct(); ; //Faccio uscire la maschera prima di lanciare il run if (BatchTest.prompt()) BatchTest.run(); }
7. Run
void run() { //All'interno di questo metodo andremmo a scrivere il nostro codice //cioè quello che la classe dovrà effettuare }
Come impostare la ricorrenza ed associarlo ad un gruppo.
Completata la creazione di classe ora possiamo lanciarla. Ecco come si presenta la form per la selezione dei parametri della nostra classe BatchTest.
Per metterla correttamente in batch occorre:
- Selezionare il campo Elaborazione batch
- Selezionare un Gruppo batch
- Impostare una Ricorrenza. Qui di seguito tutte le possibile frequenze impostabili
- Cliccare Ok
Da quel momento in avanti la classe girerà nel server batch con la ricorrenza impostata
Codice scritto e testato per la versione 4 di Microsoft Dynamics AX.
Potrebbe interessarti anche:
Commenta per primo