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