SWA061 - Esportazione aziende gruppo¶
Logica generale Import/export della tabella "aziende del gruppo" tra gestionale e database KPN Al momento è previsto solo l'esportazione da gestionale (GRPAZIEN+COGAZGRP->APGRPAZIEN) Ad ogni esportazione saranno aggiornati sulla tabella APGRPAZIEN i seguenti record: * I record modificati dopo l'ultimo aggiornamento eseguito * I record cancellati sul gestionale (sarà alzato il flag di cancellazione) Restrizioni Il programma non sarà eseguito se non è configurata la gestione dei gruppi azienda. Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| abilita | gruppo-aziende |
Elaborazione A - Esportazione tipi contratto aggiornati Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "GRPAZIEN"; se il record non esiste, crearlo impostando
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "GRPAZIEN" |
| 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 GRPAZIEN; per ciascun record letto considerare solo quelli dove AO-AZI-DA-DATA+AO-AZI-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 ciascuna azienda da esportare leggere anche il corrispondente record su COGAZGRP:
| Dato | Contenuto |
|---|---|
| AZG-COD | AO-AZI-COD |
Poi cercare su APCRMDOSTP l'esistenza di un record avente:
| Dato | Contenuto |
|---|---|
| A-AO-AZI-AZI | Codice azienda |
| A-AO-AZI-COD | AO-AZI-COD |
Se non esiste, inserirlo. Se esiste, aggiornarlo: Informazioni con cui inserire/aggiornare un record su APGRPAZIEN:
| Dato | Contenuto |
|---|---|
| A-AO-AZI-AZI | Id azienda |
| A-AO-AZI-COD | AO-AZI-COD |
| A-AO-AZI-TIP | AO-AZI-TIP |
| A-AO-AZI-STATO | AO-AZI-STATO |
| A-AO-AZI-DES | AO-AZI-DES |
| A-AO-AZI-NOTE | AO-AZI-NOTE |
| A-AO-AZI-PATH-UNIVOCO | AO-AZI-PATH-UNIVOCO |
| A-AO-AZI-MAG-SEDE | AO-AZI-MAG-SEDE |
| A-AO-AZI-RIF-CLIENTE | AO-AZI-RIF-CLIENTE |
| A-AO-AZI-RIF-FORNITORE | AO-AZI-RIF-FORNITORE |
| A-AO-AZI-ID-SINCRO | Ultimo id sincro + 1 |
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 APGRPAZIEN per l'azienda attiva; per ciascun record trovato, cercare se esiste ancora il record corrispondente lato gestionale, con una lettura di GRPAZIEN:
| Dato | Contenuto |
|---|---|
| AO-AZI-COD | A-AO-AZI-COD |
Se il record non esiste, è necessario marcare come cancellato il record su APGRPAZIEN, aggiornando contemporaneamente l'id di sincronizzazione:
| Dato | Contenuto |
|---|---|
| A-AO-AZI-STATO | "C" |
| A-AO-AZI-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 | "GRPAZIEN" |
| 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