Vai al contenuto

SWA064 - Sincronizzazione destinazioni diverse

Nome programma SWA064 Area di linkage UTILAGPRG - Linkage comune Logica generale Import/export delle destinazioni diverse tra gestionale e database KPN Configurazioni possibili

Gruppo Parametro Note

Elaborazione Se AGPRG-CALLED = "AGPRG-CALLED", significa che il programma è stato richiamato dall'esterno, e potrebbe contenere la richiesta di una operazione particolare: * "AGGIORNA-KEY": esegue l'aggiornamento solo per la chiave passata in AGPRG-KEY * "ESPORTA-TUTTO": in caso di esportazione, questa non sarà differenziale ma sarà esportato tutto l'insieme dei dati previsti A - Importazione destinazioni Non eseguire se è stata richiesta l'operazione "AGGIORNA-KEY" Scorrere APCOGDESTI eseguendo una apposita query che permetta di restituire i record aggiornati (A-DST-AGG-APP = "S"). Per ciascun record trovato, se il campo: A_DST-ID-DST-TIP vale: * " ": significa che è una nuova destinazione inserita su APP; eseguire A.1 * <> " ": significa che sullo smartphone la destinazione è stata aggiornata; eseguire A.2 A.1 - Inserimento nuova destinazione Significa che il record è stato inserito da uno smartphone; in questo caso avremo anche A-DST-ID-DISPOSITIVO e A-DST-IDD-PROG significativi. A.1.1 - Creazione nuova destinazione Creazione di un nuovo record su COGDESTI:

Nome campo Note
DST-ANA A-DST-ANA
DST-ID-TIP A-DST-ID-DST-TIP
DST-ID-IDX Primo progressivo libero a parità di anagrafica e tipo destinazione
DST-RAG-SOC A-DST-RAG-SOC
DST-IND A-DST-IND
DST-CAP 0
DST-LOCA A-DST-LOCA
DST-PROV A-DST-PROG
DST-FL-DEFAULT A-DST-FL-DEFAULT
DST-FL-CANC A-DST-FL-CANC
DST-EMAIL A-DST-FL-EMAIL
DST-CAP-ALFA A-DST-CAP
DST-LATITUDINE A-DST-LATITUDINE
DST-LONGITUDINE A-DST-LONGITUDINE
DST2-ZONA A-DST-ZONA
DST2-NOTE A-DST-NOTE
DST2-CODICE-HOST A-DST-CODICE-HOST
DST2-AGENTE A-DST-AGENTE

A.1.2 - Rimozione record di input Il record di origine da cui siamo partiti su APCOGDESTI va cancellato. A.1.3 - Creazione immediata destinazione "ufficiale" A questo punto è necessario effettuare immediatamente l'esportazione della destinazione appena importata. Si può effettuare semplicemente eseguendo l'operazione già creata per eseguire il punto B.1.2 Dopodichè aggiornare il record APCOGDESTI per memorizzare:

Nome campo Contenuto
A-DST-IDD-ORIG A-DST-ID-DISPOSITIVO del record appena cancellato
A-DST-IDD-PROG-ORIG A-DST-IDD-PROG del record appena cancellato

A.2 - Aggiornamento destinazione esistente esistente In questo caso avremo A_DST_ID_DISPOSITIVO e A_DST_IDD_PROG = 0, mentre avremo gli altri campi chiave significativo. A.2.1 - Aggiornamento destinazione Posizionarsi sul record destinazione identificato dai campi in grassetto e modificare i restanti campi:

Nome campo Note
DST-ANA A-DST-ANA
DST-ID-TIP A-DST-ID-DST-TIP
DST-ID-IDX A-DST-ID-DST-IDX
DST-RAG-SOC A-DST-RAG-SOC
DST-IND A-DST-IND
DST-CAP 0
DST-LOCA A-DST-LOCA
DST-PROV A-DST-PROG
DST-FL-DEFAULT A-DST-FL-DEFAULT
DST-FL-CANC A-DST-FL-CANC
DST-EMAIL A-DST-FL-EMAIL
DST-CAP-ALFA A-DST-CAP
DST-LATITUDINE
DST-LONGITUDINE
Se sono vuoti, importarli da A-DST-LATITUDINE, A-DST-LONGITUDINE, altrimenti lasciarli invariati
DST2-ZONA A-DST-ZONA
DST2-NOTE A-DST-NOTE

A.2.2 - Aggiornamento APCOGDESTI Aggiornare il record di origine impostando:

Dato Descrizione
A-DST-AGG-APP "N"

B - Esportazione destinazioni Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "COGDESTI"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "COGDESTI"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO 1

Qui otterremo due informazioni importanti: * Data/ora ultima esportazione da gestionale a postgres (A_SYN_DA_GES_DATA e A_SY_DA_GES_ORA) * Prossimo ID sincronizzazione da memorizzare sulla tabella (A_SYN_ID_SINCRO) B.1 - Ricerca record da esportare Per il momento esportiamo solo le destinazioni "merce", quindi per ciascun record letto: * * Se DST-ID-TIP <> "D" scartare i record Poi, a seconda dell'operazione richiesta:

Operazione Effetto
" " Scorrere COGDESTI; per ciascun record letto considerare solo quelli dove DST-DA-DATA >= a A_SYN_DA_GES_DATA
ESPORTA-TUTTO Scorrere COGDESTI e considerare tutte le destinazioni
AGGIORNA-KEY Elaborare solo la destinazione con DST-CHIA1 = AGPRG-KEY

Quindi per ciascuna destinazione da esportare: B.1.1 - Destinazione da esportare Cercare l'esistenza di un record APCOGDESTI avente:

Dato Descrizione
A-DST_AZIENDA Codice azienda
A-DST-ID-DISPOSITIVO 0
A-DST-IDD-PROG 0
A-DST-ANA DST-ANA
A-DST-ID-DST-TIP DST-ID-TIP
A-DST-ID-DST-IDX DST-ID-IDX

Se non esiste, inserirlo. Se esiste, aggiornarlo: se pero' A-DST-AGG-APP = "A" o "C", inserire una segnalazione sul file di log. Informazioni con cui inserire/aggiornare un record su APCOGDESTI:

Nome campo Note
A-DST-AZI Codice azienda
A-DST-ID-DISPOSITIVO " "
A-DST-IDD-PROG 0
A-DST-ANA DST-ANA
A-DST-ID-DST-TIP DST-ID-TIP
A-DST-ID-DST-IDX DST-ID-IDX
A-DST-RAG-SOC DST-RAG-SOC
A-DST-IND DST-IND
A-DST-CAP DST-CAP-ALFA
A-DST-LOCA DST-LOCA
A-DST-PROV DST-PROV
A-DST-FL-DEFAULT DST-FL-DEFAULT
A-DST-FL-CANC DST-FL-CANC
A-DST-EMAIL DST-EMAIL
A-DST-LATITUDINE Vedi B.1.2
A-DST-LONGITUDINE
A-DST-ZONA DST2-ZONA
A-DST-NOTE DST2-NOTE
A-DST-ID-SINCRO A-SYN-ID-SINCRO
A-DST-FL-CANC " "
A-DST-AGG-APP "N"
A-DST-AGENTE DST2-AGENTE

B.1.2 - Aggiornamento coordinate geografiche Se i dati della destinazione sono diversi da quelli già presenti (indirizzo, cap, località, provincia), o se la destinazione è nuova, azzerare la destinazione. Altrimenti, se le coordinate su COGDEST2 sono diverse da quelle su APCOGDESTI, esportarle (vedi anche SWA031). Se dopo l'aggiornamento le coordinate (A-DST-LATITUDINE/A-DST-LONGITUDINE) sono vuote, alzare un flag FL-RICALCOLO-GEOMAPPING) C - Aggiornamento coordinate geografiche Al termine dell'esportazione delle destinazioni, se una di quelle aggiornate ha le coordinate vuote (FL-RICALCOLO-GEOMAPPING), allora innescare in comando che invoca un apposito script che permette il ricalcolo su WEB; vedi SWA004, procedura b-geomapping-clienti; il comando in questo caso è : string "https://kpngate.es2000.it/coordinate/" "getCoordinate2.php?azienda=" tm-cfg-cod-azienda D - Aggiornamento APSTATOSYN Aggiornare il record APSTATOSYN relativo a:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "COGDESTI"

e aggiornare i dati:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "COGDESTI"
A_SYN_DA_GES_DATA Data/ora di aggiornamento maggiore trovata sui record esportati
A_SYN_DA_GES_ORA
A_SYN_DA_ID_SINCRO Sommare 1 al valore precedente

Estratto da documentazione interna ClickUp