SWA067 - Sincronizzazione sottocommesse¶
Logica generale Esportazione della tabella "testata sottocommesse" tra gestionale e database KPN Al momento è previsto solo l'esportazione da gestionale Ad ogni esportazione saranno aggiornati sulla tabella ARPSOTCM i seguenti record: * I record modificati dopo l'ultimo aggiornamento eseguito * I record cancellati sul gestionale (sarà alzato il flag di cancellazione) NB: attualmente l'esportazione non è ottimizzata, perchè su COGTESCM manca un indice diretto su data-ora aggiornamento. Se necessario si dovrà costruire questo indice. Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
Elaborazione A - Esportazione tipi contratto aggiornati Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPSOTCM"; se il record non esiste, crearlo impostando
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "ARPSOTCM" |
| 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 COGSOTCM; per il momento dobbiamo considerare ogni record dato che non abbiamo nessuna informazione che fa capire quando è aggiornatl A.1 - Esportazione Per ciascun record valido cercare su ARPSOTCM l'esistenza di un record avente:
| Dato | Contenuto |
|---|---|
| A-SOT-AZIENDA | Codice azienda |
| A-SOT-COD | SOT-COD |
Se non esiste, inserirlo. Se esiste, aggiornarlo solo se i dati da sincronizzare sono diversi: Informazioni con cui inserire/aggiornare un record su ARPSOTCM:
| Dato | Contenuto |
|---|---|
| A-SOT-AZIENDA | Id azienda |
| A-SOT-COD | SOT-COD |
| A-SOT-DES | SOT-DES |
| A-SOT-STATO | SOT-FL-STATO |
| A-SOT-ID-SINCRO | Ultimo id sincro + 1 |
| A-SOT-VAL | " " |
| A-SOT-AGG-APP | " " |
In questa fase tenere memoria di data+ora dell'ultimo record aggiornato. A.1.1 - Esportazione sottocommessa "nulla" E' necessario creare sulla tabella sottocommesse una sottocommessa di sistema che identifica l'assenza di sottocommesse; quindi se ancora non esiste creare il record:
| Dato | Contenuto |
|---|---|
| A-SOT-AZIENDA | Id azienda |
| A-SOT-COD | "*" |
| A-SOT-DES | "NESSUNA SOTTOCOMMESSA" |
| A-SOT-STATO | "A" |
| A-SOT-ID-SINCRO | Ultimo id sincro + 1 |
| A-SOT-VAL | " " |
| A-SOT-AGG-APP | " " |
A.2 - Identificazione dei record cancellati Al termine dell'aggiornamento, scorrere il contenuto di ARPSOTCM per l'azienda in elaborazione e per i record non cancellati (A-SOT-VAL = " "); per ciascun record valido verificare l'esistenza della sottocommessa su COGSOTCM; se non esiste, aggiornare il record marcandolo come cancellato:
| Dato | Contenuto |
|---|---|
| A-SOT-ID-SINCRO | Ultimo id sincro + 1 |
| A-SOT-VAL | "C" |
| A-SOT-AGG-APP | " " |
B Aggiornamento id syncro contratto Al termine dell'elaborazione, aggiornare il record APSTATOSYN:
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "ARPSOTCM" |
| 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