Funzionamento (storicizzazione - cancellazione)

Descrizione

Questo modello è richiamato dal menù "Utilizzo / Storicizzazione - Cancellazione". Permette di eseguire una storicizzazione e/o una cancellazione di una o di tutte le parametrizzazioni. Il programma è automatizzato per le tabelle principali e quelle collegate. Una tabella principale può avere fino a 20 tabelle collegate. Una tabella può essere collegata ad una tabella principale quando la sua chiave primaria inizia con la chiave primaria della tabella principale.

A fine elaborazione viene visualizzata una traccia per indicare il numero di record storicizzati ed il numero di record cancellati.

La storicizzazione
Il dossier storicizzato va creato. 
La storicizzazione avviene se è stata prevista a livello della parametrizzazione e se la si richiede in fase di lancio. 

Il filtro dei record da elaborare si effettua con la società, il sito, la data e la formula.

Il programma supervisore crea la tabella nel dossier storicizzato se necessario. La crea con i 2 campi supplementari CREHISDAT e CREHISUSR. Crea i record nelle tabelle del dossier storicizzato e poi elimina i record in quelle del dossier corrente.

La cancellazione
La cancellazione avviene se è stata prevista a livello della parametrizzazione e se la si richiede in fase di lancio.

Il filtro dei record da elaborare si effettua con la società, il sito, la data e la formula, nel caso di una cancellazione semplice. Se la parametrizzazione prevede una cancellazione, il filtro verte sulla società, il sito e la data in funzione del campo CREHISDAT (nessun filtro con la formula né con la variabile FILTSUP). 

Il programma supervisore elimina i record del dossier corrente o del dossier storicizzato se la parametrizzazione prevede una storicizzazione.

I programmi

Il modello è un programma supervisore che richiama due programmi annessi: il programma standard ed il programma specifico, se sono presenti nella formula di storicizzazione. 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). 

Le Azioni

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 si trova l'elenco delle azioni. In seguito si ritroverà la descrizione dettagliata di queste azioni. Viene descritto il contesto chiamante e l'obiettivo di queste azioni.

Aggiunta di azioni specifiche sullo standard

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  trait_std             ( chiamata dello standard)
If GPE=0
   Gosub  ACTION  From  trait_spé.            ( 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