Posizione nel menu
Programma non a menu
Linkage section
Nome processo: MATR-ASSI
Tabella: DFMATRICOLEASSI - Matricole di assistenza
Logica generale
Sincronizzazione dell'anagrafica matricole di assistenza tra AREA e il DB frontiera.
Per il momento funziona solo in IMPORT
Configurazioni possibili
Gruppo |
Parametro |
Note |
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
Elaborazione
A - Controllo di esecuzione
B - Apertura
B.1 Apertura tabelle
Tentare l'apertura della tabella da sincronizzare: DFMATRICOLEASSI. Se fallita inviare una segnalazione grave e chiudere.
Tentare l'apertura della tabella semaforo: DFSEMAFORO. Se fallita inviare una segnalazione grave e chiudere.
B.2 Blocco semaforo
Lettura del record DFSEMAFORO:
Nome campo |
Note |
DF_SMF_TABELLA |
DFMATRICOLEASSI |
Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF_SMF_USO_HOST = 1) segnalare sul log e chiudere.
Dopodichè aggiornare il semaforo impostando:
Nome campo |
Note |
DF_SMF_USO_AREA |
1 |
DF_SMF_VERSIONE |
Versione attuale: 1 |
B.3 Aggiornamento stato
Aggiornamento dello stato sul record specifico; in particolare:
Dato |
Contenuto |
DBFST-STATO |
"I" |
DBFST-ATT-DATA |
Data sistema |
DBFST-ATT-ORA |
Ora sistema |
DBFST-SCHED-DATA |
Sommare il tempo di attesa a data/ora sistema |
DBFST-SCHED-ORA |
|
DBFST-ERRORI |
0 |
DBFST-MSG-ERRORE |
" " |
DBFST-LOG-PROCEDURA |
" " |
C - Sincronizzazione (Importazione)
C.1 Selezione record da importare
Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST:
SELECT * FROM DFMATRICOLEASSI WHERE df_amtr_agg_host = 1i
C.2 Controllo record
Per ciascun record letto, verificare la correttezza delle informazioni contenute:
Controllo DF_AMTR_KEY_HOST
Questa informazione deve essere significativa, altrimenti segnalare Errore .
Controllo DF_AMTR_SN
Questa informazione deve essere significativa, altrimenti segnalare Errore .
Controllo DF_AMTR_ID_AREA
DF_AMTR_ID_AREA è l'id matricola di AREA.Se:
•Vuoto: la matricola non è stata ancora importata, quindi il s/n non dovrebbe esistere: effettuare quindi una ricerca su ASNMATRI, verificando se DF_AMTR_SN è presente come AMTR-SN. Se:
oEsiste: segnalare Informazione: "DF_AMTR_KEY_HOST non collegato ma trovato come s/n sulla matricola con ID: MTR-ID. quindi raccordare il record
oNon esiste: siamo in fase di Inserimento
•Non vuoto: significa che la matricola è già importata; quindi controllare l'esistenza su ASNMATRI usando DF_AMTR_ID_AREA, che dovrà corrispondere a AMTR-ID. Se:
oNon esiste, segnalare Errore e skippare: "DF_AMTR_KEY_HOST creata ma non trovata: DF_AMTR_ID_AREA".
oEsiste: siamo in fase di Variazione
Controllo DF_AMTR_VAL
Questo campo potrà valere: " " o "C"; se è presente un valore diverso segnalare Errore e skippare: "DF_AMTR_KEY_HOST; DF-AMTR-VAL contiene un valore errato: DF_AMTR_VAL"
Controllo DF_AMTR_ANA_KEY_HOST
Questo dato è obbligatorio; se non lo è segnalare Errore.
Deve corrispondere ad un cliente già raccordato; quindi eseguire la ricerca su COGANAP2 su AAP2-RACCORDO.
Se non trovato, segnalare Errore e skippare: "DF_AMTR_KEY_HOST; il cliente DF_AMTR_ANA_KEY_HOST non è ancora acquisito.
Controllo DF_AMTR_IND_KEY_HOST
Questo dato non è obbligatorio.
Se indicato deve corrispondere ad una ubicazione (indirizzo) già acquisito; quindi, controllare su DFINDIR, l'esistenza di un indirizzo con DF_IND_KEY_HOST = DF_AMTR_IND_KEY_HOST. Se non esiste segnalare errore e skippare: "DF_AMTR_KEY_HOST; l'indirizzo DF_AMTR_IND_KEY_HOST non è stato esportato dall'HOST."
Se invece esiste deve risultare già acquisito su AREA: di conseguenza i dati DF_IND_AREA_TIP/COD/PROG saranno significativi, e dovranno corrispondere ad una destinazione esistente (COGDESTI); se non è cosi', segnalare errore e skippare: "DF_AMTR_KEY_HOST; l'indirizzo DF_AMTR_IND_KEY_HOST non è stato importato su AREA."
Se i dati sono significativi e non corrispondono ad un record su COGDESTI, segnalare errore e skippare: "DF_AMTR_KEY_HOST; l'indirizzo DF_AMTR_IND_KEY_HOST corrisponde ad una destinazione non esistente su AREA."
Controllo DF_AMTR_MARCA
Se indicato, dovrà corrispondere ad una marca esistente. Se non esistente, in fase di aggiornamento dovrà essere creata.
Controllo DF_AMTR_MODELLO
Se indicato, dovrà corrispondere ad un modello esistente sulla marca indicata. Se non esistente, in fase di aggiornamento dovrà essere creata.
Effettuare la ricerca su ASNMODEL usando AMOD-CHIA2, cercando un modello corrispondente a DF_AMTR_MODELLO, collegato alla marca DF_AMTR_MARCA.
Anche in questo caso, se non esiste, creare un nuovo modello su ASNMODEL.
C.3 Importazione record
Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della matricola; quindi se DF_AMTR_AREA_COD è:
➢Presente: Variazione
➢Non presente: Inserimento con attribuzione di un nuovo AMTR-ID.
I record da aggiornare sono:
ASNMATRI |
|
Nome campo |
Note |
AMTR-ID |
•Inserimento: nuovo codice progressivo •Variazione: DF_AMTR_ID_AREA |
AMTR-SN |
DF_AMTR_SN |
AMTR-DES |
DF_AMTR_DES |
AMTR-VAL |
DF_AMTR_FL_VAL |
AMTR-MARCA |
DF_AMTR_MARCA Se la marca non esiste su ASNMARCH, creare un record nuovo e notificarlo sul log. Ripetere il codice marca su AMRC-DES |
AMTR-ID-MODELLO |
Se DF_AMTR_MODELLO è significativo, come spiegato sopra, cercare il modello su ASNMODEL o crearne uno nuovo. Qui si dovrà memorizzare AMOD-ID |
AMTR-CLI |
Il codice cliente trovato |
AMTR-DST |
Se la destinazione è presente, l'id destinazione trovata. |
AMTR-TECNICO |
DF_AMTR_TEC_HOST |
C.4 Aggiornamento stato record
Aggiornare il record DFMATRICOLEASSI impostando:
Nome campo |
Contenuto |
DF_AMTR_AGG_HOST |
0 |
DF_AMTR_AGG_AREA |
0 |
In caso di inserimento dobbiamo anche raccordare la nuova matricola a questo record, quindi aggiorneremo:
Nome campo |
Contenuto |
DF_AMTR_ID_AREA |
AMTR-ID |
D - Sincronizzazione (esportazione)
Fase non prevista in questo programma
E - Chiusura
E.1 Rilascio semaforo
Aggiornare il record semaforo relativo a DFMATRICOLEASSI, impostando
Nome campo |
Note |
DF_SMF_USO_AREA |
0 |
E.2 Chiusura tabelle
Chiudere le tabella DFMATRICOLEASSI e DFSEMAFORO
E.3 Aggiornamento stato
Aggiornamento dello stato sul record specifico; in particolare:
Dato |
Contenuto |
DBFST-STATO |
"A" |
DBFST-ERRORI |
Numero di errori rilevati |
DBFST-MSG-ERRORE |
Ultimo errore rilevato |
DBFST-LOG-PROCEDURA |
Codice procedura di gestione log |