PSW004 - Esportazione documenti¶
Nome programma PSW004 Linkage section UTILAGPRG - Linkage comune Id processo: 90004 CUSTOM Nome processo: PSW004 Tabelle principali gestite
| AREA | AREAGATE | Direzione |
|---|---|---|
| COGTESBO COGMOMAG |
PSWDOCTES PSWDOCDET |
----> |
Tabella APSTATOSYN
| A-SYN-TABELLA | VERSIONE ATTUALE | Cosa fare se precedente |
|---|---|---|
| PSWDOCTES-D | 1 |
Versione tabella: 1 Logica generale DB APP Incassettamento Esportazione dei movimenti di vendita Esportazione Esportazione di tutti i record effettivamente modificati (con dati variati). Importazione Non prevista Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| abilita | attiva-areaapp | |
| areaapp | cod-azienda | |
| areaapp | db-conn-string | |
| areaapp | agg-postgres-online | |
| dbfront | db-conn-string |
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: DFDOCTES Se fallita inviare una Segnalazione critica e chiudere. 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 PSWDOCTES Sulla tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "PSWDOCTES"; se il record non esiste, crearlo impostando
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "PSWDOCTES" |
| A_SYN_DA_GES_DATA | 0 |
| A_SYN_DA_GES_ORA | 0 |
| A_SYN_DA_ID_SINCRO | 1 |
| A-SYN-VERSIONE | 1 |
B.2 - Ricerca record da esportare B.2.1 Ricerca record da esportare
| Tipo di elaborazione | Condizione | Cosa fare |
|---|---|---|
| Singolo record | AGPRG-KEY <> " " (tes-chia3) |
Si legge direttamente il documento da aggiornare su COGTESBO 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 COGTESBO; ogni record va considerato |
| Esportazione standard | Si scorrono tutti i record di COGTESAP, usando la chiave TSA-CHIA3, partendo da A-SYN-DA-GES-DATA+A-SYN-DA-GES-ORA | |
| Pulizia | AGPRG-OPE = "PULIZIA" | Non prevista |
Ciascun record letto corrisponde ad un documento; B.2.1.1 Controlli documento Il documento viene considerato se: * Il tipo documento è "I" o "D" B.2.2 Documento valido B.2.2.1 Cancellazione logica righe Effettuare la cancellazione fisica delle righe presenti su PSWDOCDET tramite una query: DELETE FROM DFDOCDET WHERE p_dtes_azienda = azienda AND p_dtes_doc_tip = "D" AND p_dtes_doc_key = tes-chia3 B.2.2.2 Esportazione testata documento Verifichiamo se il documento inserito/aggiornato è già stato esportato, con una ricerca diretta su PSWDOCTES, usando P-DTES-CHIA1, impostando:
| Nome campo | Contenuto |
|---|---|
| P-DTES-AZIENDA | azienda in elaborazione |
| P-DTES-DOC-TIP | "D" |
| P-DTES-DOC-KEY | TES-CHIA3 |
Se il record esiste dovrà essere aggiornato, altrimenti inserirlo. Attenzione: se il documento esiste e P-DTES-STATO-PREP <> "N", allora dare una segnalazione di errore sul log ed skippare I campi da aggiornare sono:
| Dato | Descrizione |
|---|---|
| P-DTES-AZIENDA | azienda in elaborazione |
| P-DTES-DOC-TIP | "D" |
| P-DTES-DOC-KEY | TES-CHIA3 |
| P-DTES-KEY-EDIT | Chiave editata es. "1/2023/I/000100" |
| P-DTES-DATA | TES-DATA |
| P-DTES-ANA | TES-NONNO |
| P-DTES-DST-TIP | TES-DST-ID-TIP |
| P-DTES-DST-IDX | TES-DST-ID-TIP |
| P-DTES-GIRO | TES-AGENTE |
| P-DTES-NOTE | TES-DESCR + TES-DESCR1 |
| P-DTES-STATO-PREP | "N" |
| P-DTES-FL-CANC | " " |
| P-DTES-ID-SINCRO | Nuovo id di sincronizzazione |
| P-DTES-AGG-APP | "N" |
B.2.2.3 Ricerca movimenti su COGMOMAG Per il documento in esame si ricercano i movimenti su COGMOMAG Per ciascun movimento effettuare l'inserimento su APCOGMOMAG Dovranno essere esclusi i movimenti dalla riga con codice merce avanzato "DESC", che contengono i riporti del giorno precedente.
| Dato | Descrizione |
|---|---|
| P-DDET-AZIENDA | azienda in elaborazione |
| P-DDET-DOC-TIP | "D" |
| P-DDET-DOC-KEY | TES-CHIA3 |
| P-DDET-DOC-RIGA | MAG-PROG |
| P-DDET-MERCE | MAG-MERCE3 |
| P-DDET-QTA-DOC | MAG-QTAMAGAZ |
| P-DDET-QTA-EVA | 0 |
| P-DDET-QTA-MANCANTE | 0 |
B.3 - Ricerca documenti cancellati Scorrere COGEVLOG per gli eventi di tipo k-evl-canc-cogtesbo (vedi SWN117) Per ciascun record esistente: PSWDOCTES/APCOGMOMAG * Controllare se il documento è ancora esistente su COGTESBO (potrebbe essere stato ricreato nel frattempo) * Se non esiste, effettuare la cancellazione logica su PSWDOCTES
| Nome campo | Contenuto |
|---|---|
| P-DTES_FL_CANC | "C" |
| P-DTES-ID-SINCRO | Nuovo ID sincro progressivo |
| P-DTES-AGG-APP | "N" |
Al termine cancellare il record di COGEVLOG B.9 - Aggiornamento id syncro aggiornare il record APSTATOSYN:
| Dato | Contenuto |
|---|---|
| A-SYN-AZIENDA | Codice azienda |
| A-SYN-TABELLA | "PSWDOCTES" |
| A-SYN-DA-GES-DATA | Data/ora memorizzata anche sul record precedente |
| A-SYN-DA-GES-ORA | |
| A-SYN-DA-ID-SINCRO | Ultimo id sincro + 1 |
| A-SYN-VERSIONE | 1 |
Estratto da documentazione interna ClickUp