Vai al contenuto

SWN115 - Post-it

Nome programma SWN115 Linkage section UTILAGPRG - Linkage comune Id processo: 115 Nome processo: POST-IT Tabelle principali gestite

AREA AREAGATE Direzione
COGPOSTT ARPPOSTIT ------>
<------

Logica generale Esportazione delle note post-it Esportazione Esportazione di tutti i record effettivamente modificati (con dati variati). Importazione Importazione delle modifiche effettuate sul web NOTA BENE La tabella Area è stata ristrutturata per poter ospitare più post-it per ciascuna area, mentre ARPPOSTIT no. Quindi per ora si dovrà fare in modo di sincronizzare solo il primo record per ciascuna area attivo, a prescindere da PTT-PROG Update 02-10-2024 ora verrà sincronizzato un post-it specifico, identificato dal flag PTT-FL-SYNC Configurazioni possibili

Gruppo Parametro Note
abilita attiva-areaapp
areaapp cod-azienda
areaapp db-conn-string
areaapp agg-postgres-online

Elaborazione Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi Controllo di esecuzione A.1 - Aggiornamento KEEP-ALIVE Per il momento non lo eseguiamo: il keep-alive viene tenuto aggiornato dal thread autonomo di aglancio; se il programma venisse chiamato in "tempo reale" dal programma di gestione, non necessita comunque del keep-alive. A.2 - Apertura A.2.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: ARPPOSTIT Se fallita inviare una Segnalazione critica e chiudere. C - Importazione aggiornamenti Effettuare una query per estrarre tutti gli elementi aggiornati su APP: SELECT * FROM ARPPOSTIT WHERE a_ptt_azi = azienda AND (a_ptt_agg_app = 'A') C.1 - Importazione elemento nuovo, aggiornato o cancellato logicamente Fare una ricerca su COGPOSTT impostando:

Dato Contenuto
PTT-ANA A-PTT-ANA
PTT-MERCE A-PTT-MERCE
PTT-AREA A-PTT-AREA
PTT-PROG A-PTT-PROG-SYNC

Se A-PTT-PROG-SYNC = 0, potrebbe essere un post-it nuovo creato su APP; quindi in questo caso: * Cercare il primo PTT-PROG libero a parità di condizioni * Creare il nuovo record su COGPOSTT * Aggiornare A-PTT-PROG-SYNC sul record importato inserendo il progressivo appena creato Se l'elemento non esiste, inserirlo. Quindi proseguire con l'aggiornamento di COGPOSTT.

Dato Contenuto
PTT-NOTE A-PTT-NOTE
PTT-FL-CANC A-PTT-FL-CANC

C.2 - Aggiornamento ARPPOSTIT Aggiornare il record di origine impostando:

Dato Descrizione
A-PTT-AGG-APP " "

B - Esportazione informazioni aggiornate * ID SINCRO: gestito * Esportazione differenziale: gestita e ottimizzata * Cancellazione logica: gestita In questa fase si dovrà tenere conto di * Limite record * Limite errori * "Esporta tutto" B.1 - Stato sincronizzazione Sulla tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPPOSTIT"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPPOSTIT"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO 1
A-SYN-VERSIONE 2

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) B.2 - Ricerca record da esportare B.2.1 Ricerca record da esportare

Tipo di elaborazione Condizione Cosa fare
Singolo record AGPRG-KEY <> " " Si legge direttamente il record da aggiornare su COGPOSTT
Verrà eseguita se agg-postgres-online è attiva
Se viene sincronizzato un record cancellato, verrà effettuata la cancellazione logica
Esportazione totale AGPRG-ESPORTA-TUTTO = "S" Si scorrono tutti i record di COGPOSTT; ogni record va considerato
Esportazione standard Si scorrono tutti i record di COGPOSTT, usando la chiave PTT-CHIA4, partendo da A-SYN-DA-GES-DATA+A-SYN-DA-GES-ORA
Pulizia AGPRG-OPE = "PULIZIA" Non prevista

Per ciascun record valido si cercano tutti i record collegati: NESSUNO B.2.2 Verifica ed esportazione record Considerare solo i record con PTT-FL-SYNC = "S" Dopodichè si effettua la ricerca dell'informazione su ARPPOSTIT

Dato Descrizione
A-PTT-AZI Codice azienda
A-PTT-ANA PTT-ANA
A-PTT-MERCE PTT-MERCE
A-PTT-AREA PTT-AREA

Se non esiste, inserirlo. Se esiste, aggiornarlo l'aggiornamento del record deve avvenire solo se almeno un dato tra quelli da modificare è diverso. NB: se è stata richiesta l'esportazione completa (AGPRG-ESPORTA-TUTTO = "S") allora il record dovrà essere esportato a prescindere dal confronto Suggerimento Invece di popolare direttamente i dati del record di destinazione, portarli su delle copie in w/s. Al termine confrontare i dati sulla destinazione con la copia in w/s. Aggiornamento da COGPOSTT

Dato Contenuto Confronto?
A-PTT-AZI Codice azienda
A-PTT-ANA PTT-ANA
A-PTT-MERCE PTT-MERCE
A-PTT-AREA PTT-AREA
A-PTT-NOTE PTT-NOTE Si
A-PTT-FL-CANC PTT-FL-CANC Si
A-PTT-PROG-SYNC PTT-PROG Si
A-PTT-ID-SINCRO Id sincro + 1

(*) Questi campi dovranno essere parsati con GESSTR prima del confronto In questa fase tenere memoria di data+ora dell'ultimo record di input considerato. B.9 - Aggiornamento id syncro Al termine dell'elaborazione, aggiornare il record APSTATOSYN:

Dato Contenuto
A-SYN-AZIENDA Codice azienda
A-SYN-TABELLA "ARPPOSTIT"
A-SYN-DA-GES-DATA Data/ora dell'ultimo record aggiornato
A-SYN-DA-GES-ORA
A-SYN-DA-ID-SINCRO Ultimo id sincro + 1
A-SYN-VERSIONE 2

Estratto da documentazione interna ClickUp