Vai al contenuto

DBF011 - Sincronizzazione matricole assistenza

Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune 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 sincro-attiva
dbfront email-segnalazioni
dbfront db-tipo
dbfront db-conn-string
dbfront db-log-level

Elaborazione A - Controllo di esecuzione Vedi 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: * Esiste: segnalare Informazione: "DF_AMTR_KEY_HOST non collegato ma trovato come s/n sulla matricola con ID: MTR-ID. quindi raccordare il record * Non 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: * Non esiste, segnalare Errore e skippare: "DF_AMTR_KEY_HOST creata ma non trovata: DF_AMTR_ID_AREA". * Esiste: 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
AMTR-ID
AMTR-SN
AMTR-DES
AMTR-VAL
AMTR-MARCA
AMTR-ID-MODELLO
AMTR-CLI
AMTR-DST
AMTR-TECNICO

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

Estratto da documentazione interna ClickUp