SWA038 - Sincronizzazione tabelle generiche¶
Logica generale Import/export di tabelle generiche tra gestionale e database KPN Al momento è previsto solo l'esportazione da gestionale. Ad ogni esportazione saranno aggiornati sulla tabella ARPTABELLE 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 tabelle Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPTABELLE"; se il record non esiste, crearlo impostando
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "ARPTABELLE" |
| 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) A.1 - Azzeramento flag di aggiornamento Eseguire una query che azzera lo stato aggiornamento dei record presenti "UPDATE arptabelle set A_TAB_FL_AGG = "N" WHERE A_TAB_AZIENDA = azienda" Poi, per ciascuna tabella da esportare, eseguire il punto A.2 Le tabelle da esportare sono:
| Dato | Provenienza | Tipo tabella |
|---|---|---|
| Causali bolla | "T" (COGTABEL) | "15" |
| Posizioni contatti | "T" (COGTABEL) | "24" |
| Zone | "T" (COGTABEL) | "88" |
| Stato contenzioso | "T" (COGTABEL) | "FU" |
| Qualità articoli | "T" (COGTABEL) | "FV" |
| Evidenza commerciale | "T" (COGTABEL) | "FW" |
A.2 - Esportazione singola tabella Ricerca record da esportare Scorrere il file da esportare (per ora solo COGTABEL) per tutti i record della tabella da esportare (per ora solo "FU"). Per ciascun record letto cerca l'esistenza del corrispondente record su ARPTABELLE:
| Dato | Contenuto |
|---|---|
| A-TAB-AZIENDA | Codice azienda |
| A-TAB-PROVENIENZA | Provenienza |
| A-TAB-TIP | Tipo tabella |
| A-TAB-COD | Il codice in elaborazione |
A questo punto, inserire il record se non esiste su ARPTABELLE, o aggiornarlo se esiste, come segue:
| Nome campo | Contenuto |
|---|---|
| A_TAB_AZIENDA | Codice azienda |
| A_TAB_PROVENIENZA | Provenienza |
| A_TAB_TIPO | Tipo tabella |
| A_TAB_COD | Il codice in elaborazione |
| A_TAB_DES | Descrizione valore tabella |
| A_TAB_ATTRIBUTO_1 | Esportare questo campo in funzione del tipo tabella |
A.2.1 - Aggiornamento record "non aggiornati" Attraverso una apposita query scorrere tutti i record non aggiornati di ARPTABELLE per la tabella in elaborazione; (SELECT ARPTABELLE WHERE A_TAB_AZIENDA = azienda AND A_TAB_PROVENIENZA = provenienza AND A_TAB_TIP = tipo AND A_TAB_FL_AGG = "N" ) per ciascun record trovato, cercare se esiste ancora il record corrispondente lato gestionale, con una lettura di COGTABEL: Se il record non esiste, è necessario marcare come cancellato il record su ARPTABELLE, aggiornando contemporaneamente l'id di sincronizzazione:
| Dato | Contenuto |
|---|---|
| A_TAB_FL_CANC | "C" |
| A_TAB_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 | "ARPTABELLE" |
| A_SYN_DA_ID_SINCRO | Ultimo ID sincro aggiornato |
Estratto da documentazione interna ClickUp