Vai al contenuto

SWA032 - Sincronizzazione prestazioni/materiali di default

Logica generale Import/export della tabella prestazioni/materiali previsti tra gestionale e database KPN Al momento è previsto solo l'esportazione da gestionale. Ad ogni esportazione saranno aggiornati sulla tabella ARPMTRPD i seguenti record: * I record modificati dopo l'ultimo aggiornamento eseguito * I record cancellati sul gestionale (sarà alzato il flag di cancellazione) Configurazioni possibili

Gruppo Parametro Note

Elaborazione A - Esportazione tipi contratto aggiornati Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ASNMTRPD"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ASNMTRPD"
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) Ricerca record da esportare * Scorrere ASNMTRPD; per ciascun record letto considerare solo quelli dove AMPD-DA-DATA+AMPD-DA-TIME sono >= a A_SYN_DA_GES_DATA+A_SYN_DA_GES_ORA (fare il confronto normalizzando e unendo i campi in un unico campo di 8+4 caratteri: AAAAMMGGHHMI) A.1 - Esportazione * Per ciascun record valido cercare su ARPMTRPD l'esistenza di un record avente:

Dato Contenuto
A-AMPD-AZI Codice azienda
A-AMPD-TIPO AMPD-TIPO
A-AMPD-CODICE AMPD-COD
A-AMPD-PROG AMPD-PROG

Se non esiste, inserirlo. Se esiste, aggiornarlo: Informazioni con cui inserire/aggiornare un record su ARPMTRPD:

Dato Contenuto
A-AMPD-AZI Id azienda
A-AMPD-TIPO AMPD-TIPO
A-AMPD-CODICE AMPD-CODICE
A-AMPD-PROG AMPD-PROG
A-AMPD-PRESTAZIONE AMPD-PRESTAZIONE
A-AMPD-QTA AMPD-QTA
A-AMPD-FL-FAT AMPD-FL-FAT
A-AMPD-NOTE AMPD-NOTE
A-AMPD-IMPORTANZA AMPD-IMPORTANZA
A-AMPD-FL-VAL AMPD-FL-VAL
A-AMPD-FL-CONTENITORE AMPD-FL-CONTENITORE
A-AMPD-FL-ESPOSTA AMPD-FL-ESPOSTA
A-AMPD-ID-SINCRO Ultimo id sincro + 1
A-AMPD-FL-CANC AMPD-VAL

In questa fase tenere memoria di data+ora dell'ultimo record aggiornato. A.2 - Identificazione dei record cancellati Attraverso una apposita query scorrere tutti i record non cancellati di ARPMTRPD; per ciascun record trovato, cercare se esiste ancora il record corrispondente lato gestionale, con una lettura di ASNMTRPD: * Per ciascun record valido cercare su ASNMTRPD l'esistenza di un record avente:

Dato Contenuto
AMPD-TIPO A-AMPD-TIPO
AMPD-CODICE A-AMPD-CODICE
AMPD-PROG A-AMPD-PROG

Se il record non esiste, è necessario marcare come cancellato il record su ARPMTRPD, aggiornando contemporaneamente l'id di sincronizzazione:

Dato Contenuto
A-AMPD-VAL "C"
A-AMPD-ID-SINCRO Ultimo id sincro + 1

B Aggiornamento id syncro contratto Al termine dell'elaborazione, aggiornare il record APSTATOSYN:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ASNMTRPD"
A_SYN_DA_GES_DATA Data/ora dell'ultimo record aggiornato
A_SYN_DA_GES_ORA
A_SYN_DA_ID_SINCRO Ultimo ID sincro aggiornato

Estratto da documentazione interna ClickUp