Questo modello viene chiamato da un bottone di fondo videata, da un menù, dal menù contestuale di un campo o una funzione per effettuare un'elaborazione procedurale. Questo programma può far riferimento al modello "inserimento finestra" per gestire l'inserimento di una finestra di criteri e l'inserimento di una finestra principale. La finestra di criteri può essere composta da uno o più folder. Viceversa per potersi eseguire in batch, viene limitata a 500 campi e un nome di campo non deve essere presente su più videate. In questo modello "programma standard" vengono chiamate più azioni. L'azione principale è l'azione EXEC; conterrà il programma procedurale. In questo modello non è prevista nessuna transazione di aggiornamento: va quindi prevista nel proprio programma.
Questo programma può essere lanciato con la sottomissione di una richiesta batch. In questo caso è possibile considerare due fasi: fase on-line di inserimento dei parametri di lancio e fase batch di esecuzione del programma. Due variabili globali permettono di conoscere il contesto di lancio:
L'inserimento iniziale dei parametri
Si effettua tramite un box di dialogo o un'inserimento finestra. Quando il programma standard viene lanciato in batch, la prima fase (inserimento iniziale) è on-line e viene lanciata immediatamente, mentre la seconda fase (programma) viene registrata nella coda di attesa dei job del server batch. I parametri inseriti vengono allora registrati nella tabella di sistema ABATRQT, per essere successivamente riletti nella seconda fase dell'elaborazione.
Attenzione!
Il numero di parametri è limitato a 500.
In compenso nessun limite nella lunghezza di un campo alfanumerico.
Salvataggio nella tabella delle richieste:
Il modello è un programma supervisore che fa riferimento a due programmi allegati: il programma standard ed il programma specifico, se sono presenti nel dizionario dell'azione. Questi due programmi sono strutturati allo stesso modo, ovvero iniziano con un'etichetta ACTION che gestisce diversi eventi in grado di verificarsi durante l'esecuzione della funzione.
Il programma standard
Questo programma, fornito da ADONIX, non deve assolutamente essere modificato dallo specifico.
Il programma specifico
Questo programma non è fornito da Adonix, ma può essere sviluppato in specifico (sia per funzioni standard per le quali si desidera effettuare delle implementazioni che per funzioni specifiche).
Il programma standard o specifico inizia quindi con questa etichetta $ACTION da scrivere nel seguente modo (dove XXXXXX è il codice dell'evento):
$ ACTION
Case ACTION
When "XXXXXX" : Gosub XXXXXX
When default
Endcase
Return
Ogni evento viene identificato da un codice alfanumerico, contenuto nella variabile ACTION. Se non vi è codice per un evento, il funzionamento della funzione non sarà di ostacolo. Nel sotto-programma $ACTION si gestisce l'indirizzamento all'etichetta aggiunta. In questa sintassi "case ACTION" si indicheranno tante righe quanti sono gli eventi da completare. La $ACTION viene chiamata dal programma supervisore tramite GOSUB; ciò permette di conseguenza di utilizzare delle variabili locali nel programma supervisore.
In allegato viene presentato l'elenco delle azioni. Sarà poi presente la descrizione dettagliata di queste azioni. Viene descritto il contesto chiamante e l'obiettivo di queste azioni.
Di default, per uno stesso evento, l'azione specifica è chiamata prima dell'azione standard.
Questa può annullare e sostituire l'azione standard se posiziona la variabile GPE al valore 1.
Per eseguire l'azione standard prima dell'azione specifica, in questo caso, si duplica il programma standard nell'azione specifica, si aggiunge il programma specifico e poi si posiziona la variabile GPE al valore 1. Esempio:
Programma supervisore
GPE=0
Gosub ACTION From pgm_std ( chiamata dello standard)
If GPE=0
Gosub ACTION From pgm_spe. ( chiamata dello specifico)
Endif
Programma specifico
$ ACTION
Case ACTION
When "OUVRE" : Gosub OUVRE
When default
Endcase
Return
$OUVRE
... ( azione specifica OUVRE)
GPE = 1 (nessuna chiamata dello standard a seguito dello specifico)
Return