Vai al contenuto

DBF002 - Sincronizzazione destinazioni

Posizione nel menu* Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: INDIR Tabella: DFINDIR - Indirizzi di spedizione Logica generale Sincronizzazione dell'anagrafica destinazioni diverse (indirizzi) 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 Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi Controllo di esecuzione B - Apertura B.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: DFINDIR. 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 DFINDIR

Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF-SMF-USO-HOST = 1) Informazione 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 dfindir WHERE df-ind-agg-host = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute: Controllo DF-IND-ANA-HOST Questa informazione deve essere significativa altrimenti segnalare Errore . Cercare se corrisponde ad un cliente o fornitore, con una ricerca su COGANAPP.AAP2-CHIA2, impostando * AAP2-RACCORDO = DF-IND-ANA-HOST Se il raccordo: * Esiste: il codice anagrafico collegato dovrebbe essere quello presente in DF-IND-AREA-TIP/COD: se non è cosi', segnalare Errore e skippare: "DF-IND-KEY-HOST collegato ad anagrafica diversa: ANA-CHIA" * Non esiste: Il cliente a cui è collegata non è stato ancora acquisito: Informazione e skippare: "DF-IND-KEY-HOST collegato ad anagrafica non ancora importata : DF-IND-ANA-HOST" Controllo DF-IND-KEY-HOST Questa informazione deve essere significativa altrimenti segnalare Errore . Verificare se risulta già collegata ad una destinazione su COGDEST2: quando abbiamo in linea l'anagrafica a cui è collegata, eseguire una ricerca sequenziale su COGDEST2 a parità di anagrafica collegata (non esiste una chiave diretta su DST2-CODICE-HOST). Se risulta raccordato, la chiave dovrebbe corrispondere all'indieme di DF-IND-AREA-COD+DF-IND-AREA-PROG (a meno che non siano vuoti, al che verranno collegati automaticamente). Vedi anche Attività sistemistiche Controllo DF-IND-AREA-COD Controllo DF-IND-AREA-PROG A seguito dell'introduzione del raccordo su COGDEST2, questo raccordo viene lasciato solo come campo informativo: verrà aggiornato in fase di importazione, ma non viene controllato. Controllo DF-IND-NOME Controllo DF-IND-IND Questi due campi dovranno essere significativi, altrimenti segnalare Errore e skippare. Controllo DF-IND-PROV Se significativa, la provincia dovrà esistere nella apposita tabella, altriumenti segnalare Errore e skippare: "DF-IND-KEY-HOST con provincia non trovata: DF-IND-PROV" Controllo DF-IND-COMUNE Se significativo, cercare l'esistenza su COGTBCOM, usando TCI-CHIA5, impostando:

Nome campo Contenuto
TCI-COD-FISCALE DF-IND-COMUNE

Se non trovato segnalare Errore e skippare: "DF-IND-KEY-HOST con comune non trovato: DF-IND-COMUNE" Controllo DF-IND-NAZIONE Se significativo, cercare se raccordato ad una nazione presente sulla tabella in AREA; scorrere quindi la tabella nazione, e verificare se ne esiste una con EUTA-ST-CODICE-HOST = DF-IND-NAZIONE; se non esiste segnalare Errore e skippare: "DF-IND-KEY-HOST con nazione non raccordata: DF-IND-NAZIONE" Controllo DF-IND-VAL Questo campo potrà valere: " " o "C"; se è presente un valore diverso segnalare Errore e skippare: "DF-IND-KEY-HOST; DF-IND-VAL contiene un valore errato: DF-IND-VAL" Controllo DF-IND-ZONA Se significativo, cercare se raccordato ad una zona presente sulla tabella in AREA; scorrere quindi la tabella zone, e verificare se ne esiste una con EUTA-ZON-CODICE-HOST = DF-IND-ZONA; se non esiste segnalare Errore e skippare: "DF-IND-KEY-HOST con zona non raccordata: DF-IND-ZONA" Controllo DF-IND-FL-LUNEDI...DOMENICA Questi campi possono contenere un valore da 0 a 3 Controllo DF-IND-FL-DEFAULT Questo campo potrà contenere "S" o " " C.3 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della destinazione; quindi se DF-IND-AREA-PROG è: * Presente: Variazione * Non presente: Inserimento con attribuzione di un nuovo codice progressivo. I record da aggiornare sono:

COGDESTI
Nome campo
DST-ANA-TIP
DST-ANA-COD
DST-ID-TIP
DST-ID-IDX
DST-RAG-SOC
DST-IND
DST-CAP
DST-LOCA
DST-PROV
DST-FL-CANC
DST-EMAIL
DST-CAP-ALFA
DST-FL-DEFAULT
COGDEST2
Nome campo
DST2-ANA-TIP
DST2-ANA-COD
DST2-ID-TIP
DST2-ID-IDX
DST2-RAG-SOC
DST2-NAZIONE
DST2-TELEFONO
DST2-EMAIL
DST2-ZONA
DST2-LATITUDINE
DST2-LONGITUDINE
DST2-AGENTE
DST2-FL-LUNEDI
...
DST2-FL-DOMENICA
DST2-LEAD-TIME-PREP
DST2-LEAD-TIME-CONS

C.4 Aggiornamento stato record Aggiornare il record DFINDIR impostando:

Nome campo Contenuto
DF-IND-AGG-HOST 0
DF-IND-AGG-AREA 0

In caso di inserimento dobbiamo anche raccordare la nuova destinazione a questo record, quindi aggiorneremo:

Nome campo Contenuto
DF-IND-AREA-TIP DST-ANA-TIP
DF-IND-AREA-COD DST-ANA-COD
DF-IND-AREA-PROG DST-ID-IDX
DF-IND-AGG-AREA 1

D - Sincronizzazione (esportazione) Fase non prevista in questo programma E - Chiusura E.1 Rilascio semaforo Aggiornare il record semaforo relativo a DINDIR, impostando

Nome campo Note
DF-SMF-USO-AREA 0

E.2 Chiusura tabelle Chiudere le tabella DFINDIR 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