SWA037 - Sincronizzazione raggruppamenti gerarchici¶
Logica generale Import/export dei raggruppamenti gerarchici tra gestionale e database KPN Al momento è previsto solo l'esportazione da gestionale. Ad ogni esportazione saranno aggiornati sulla tabella ARPANRAG 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 |
|---|---|---|
| ecommerce | shop-attivo | |
| merci | classe-categoria |
Elaborazione Se la configurazione shop-attivo è attiva, dobbiamo escludere da tutte le fasi i raggruppamenti collegati alla classe classe-categoria A - Esportazione raggruppamenti aggiornati Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "COGANRAG-R"; se il record non esiste, crearlo impostando
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "COGANRAG-R" |
| 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 Consideriamo solo i record relativi ai raggruppamenti veri e propri (non quindi i collegamenti con le merci che saranno esportati in blocco con l'aggiornamento delle merci): scorrere quindi COGANRAG usando ARAG-CHIA3 e impostando:
| Dato | Contenuto |
|---|---|
| ARAG-TIP | "R" |
Per ciascun letto considerare solo quelli dove ARAG-DA-DATA+ARAG-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 raggruppamento * Per ciascun record valido cercare su ARPANRAG l'esistenza di un record avente:
| Dato | Contenuto |
|---|---|
| A_ARAG_AZIENDA | Codice azienda |
| A_ARAG_CLASSE | ARAG-CLASSE |
| A_ARAG_ID_DISPOSITIVO | 0 |
| A_ARAG_IDD_PROG | 0 |
| A_ARAG_ID | ARAG-ID |
Se non esiste, inserirlo. Se esiste, aggiornarlo: Informazioni con cui inserire/aggiornare un record su ARPANRAG:
| Dato | Contenuto |
|---|---|
| A_ARAG_AZIENDA | Id azienda |
| A_ARAG_CLASSE | ARAG-CLASSE |
| A_ARAG_ID_DISPOSITIVO | 0 |
| A_ARAG_IDD_PROG | 0 |
| A_ARAG_ID | ARAG-ID |
| A_ARAG_DES | ARAG-DES |
| A_ARAG_ID_PADRE | ARAG-ID-PADRE |
| A_ARAG_AGG_APP | " " |
| A_ARAG_FL_CANC | " " |
| A_ARAG_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 ARPANRAG; per ciascun record trovato, cercare se esiste ancora il record corrispondente lato gestionale, con una lettura di COGANRAG:
| Dato | Contenuto |
|---|---|
| ARAG-CLASSE | A-ARAG-CLASSE |
| ARAG-TIP | "R" |
| ARAG-ID | A-ARAG-ID |
Se il record non esiste, è necessario marcare come cancellato il record su ARPANRAG, aggiornando contemporaneamente l'id di sincronizzazione:
| Dato | Contenuto |
|---|---|
| A-ARAG-VAL | "C" |
| A-ARAG-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 | "COGANRAG-R" |
| 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