Vai al contenuto

PSW003 - Sincronizzazione merci

Nome programma PSW003 Linkage section UTILAGPRG - Linkage comune Id processo: 90003 CUSTOM Nome processo: PSW003 Tabelle principali gestite

AREA AREAGATE Direzione
COGMERCI PSWMERCI ----->
<-----
COGDBASE PSWDBASE ----->

Tabella APSTATOSYN

A-SYN-TABELLA VERSIONE ATTUALE Cosa fare se precedente
PSWMERCI 1

Versione tabella: 1 Logica generale DB APP Incassettamento Sincronizzazione dell'anagrafica merci/prestazioni e delle distinte base collegate Esportazione Esportazione di tutti i record effettivamente modificati (con dati variati). Importazione E' prevista l'importazione di alcune informazioni relative alla merce che verranno modificate su APP NB: questo processo non è stato ottimizzato: la parte elaborativa è identica a quella presente nel precedente SWA035 Se ci sarà tempo in futuro proveremo ad ottimizzarlo. Configurazioni possibili

Gruppo Parametro Note
abilita attiva-areaapp
areaapp cod-azienda
areaapp db-conn-string
areaapp agg-postgres-online
areaapp giorni-esportazione-merci
ecommerce shop-attivo
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: PSWMERCI Se fallita inviare una Segnalazione critica e chiudere. C - Importazione aggiornamenti Effettuare una query per estrarre tutti gli elementi aggiornati su APP: SELECT * FROM PSWMERCI WHERE p_mer_azienda = azienda AND (p_mer_agg_app = 'A') Ogni articolo trovato viene considerato come aggiornato C.1 - Importazione elemento aggiornato Aggiornamento raggruppamento 3 (suddivisione dolce/salato/altro) Fare una ricerca su COGMERAP impostando:

Dato Contenuto
MAP-CHIA P-MERCE

L'articolo deve esistere. Quindi proseguire con l'aggiornamento di COGMERAP; i dati attualmente aggiornabili sono:

Dato Contenuto
MAP-RAGR-3 P-MER-RAGR-3

Aggiornamento raggruppamento produzione: Ricerca su COGANRAG con

Dato Contenuto
ARAG-CLASSE "PR"
ARAG-TIP "M"
ARAG-ID P-MERCE

Se P-MER-RAGR-PROD è: * Vuoto: cancellare il record se esiste, altrimenti non fare nulla * Non vuoto: inserire il record se non esiste, altrimenti aggiornarlo impostando: * ARAG-ID-PADRE = P-MER-RAGR-PROD Verifica esistenza raggruppamento: Se P-MER-RAGR-PROD è significativo, verificare anche se il raggruppamento esiste sulla classe:

Dato Contenuto
ARAG-CLASSE "PR"
ARAG-TIP "R"
ARAG-ID P-MER-RAGR-PROD

Se il record non esiste, inserirlo, indicando per ora descrizione vuota B - Esportazione informazioni aggiornate * ID SINCRO: gestito * Esportazione differenziale: gestita e non ottimizzata * Cancellazione logica: gestita In questa fase si dovrà tenere conto di * Limite record * Limite errori * "Esporta tutto"

Tipo di elaborazione Condizione Cosa fare
Singolo record AGPRG-KEY <> " " Si legge direttamente la merce da aggiornare su COGMERCI
Verrà eseguita se agg-postgres-online è attiva
Se viene sincronizzato un record cancellato, verrà effettuata la cancellazione logica
Esportazione totale AGPRG-ESPORTA-TUTTO = "S" Vedi il punto B.2
Esportazione standard Vedi il punto B.2

B - Esportazione articoli B.1 - Pulizia merci cancellate Si cancellano da PSWMERCI le merci che risultano cancellate, attraverso la lettura dell'evento specifico su COGEVLOG: * Scansione di COGEVLOG per tutti gli eventi di tipo K-EVL-CANC-MERCI non ancora visti (EVL-VISTO = "N"); per ciascuna merce: * Si esegue la cancellazione logica del record PSWMERCI * P-MER-STATO = "C" * Si aggiorna il record evento impostando EVL-VISTO = "S" B.2 - Esportazione articoli Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "PSWMERCI"; se il record non esiste, crearlo impostando

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

B.2.2 - Esportazione aggiornamenti Scansione di COGMERCI. Se AGPRG-KEY è significativo eseguire la start direttamente sulla chiave merce presente e fermarsi immediatamente dopo l'elaborazione della merce richiesta. B.2.2.1 - Controlli Per ciascun record, saranno effettuati i seguenti controlli: * nessun controllo Arrivati a questo punto, se non è configurata l'esportazione di tutte le merci (configurazione giorni-esportazione-merci = 9999), scartare la merce se ha MER-DATA-AGG < A_SYN_DA_GES_DATA. Filtri aggiuntivi Per ciascuna merce/servizio di cui si dovrà effettuare l'elaborazione, si dovrà dovrà effettuare una verifica di esportazione tramite SWAFME - Filtro esportazione merci (programma che verifica se la merce deve essere esportata, in funzione di alcuni filtri specifici per ciascun cliente, quando previsto). Se viene restituito SWAFME-DA-ESPORTARE = "N", allora: - Se l'articolo è già presente sulla tabella di destinazione, si esporterà come "cancellato" (come se avesse MER-VAL = "C") - Se l'articolo non è presente, si salta. Note sull'esportazione di merci/servizi cancellati Quando si esporta un articolo su PSWMERCI/ARPMESER, il cui stato è "C", l'esportazione delle tabelle collegate dovrà marcare lo stato di cancellato "C" anche su di esse, quando è previsto il dato. B.2.2.2 - Esportazione articolo Inserimento/aggiornamento PSWMERCI

Dato Contenuto
P-MER-AZI Azienda attiva
P-MER-CODICE Merce in elaborazione
P-MER-CMA RCM-COD-AVA
P-MER-DES Per ora qui viene esportato il contenuto di MER-DESCR
P-MER-DES-LINGUA MAP-DESC
P-MER-CLASSE MER-CLASSE
P-MER-STATO MER-VAL
P-MER-ID-SINCRO Ultimo id sincro "PSWMERCI"
P-MER-UM MER-UM
P-MER-RAGR-1 MAP-RAGR-1
P-MER-RAGR-2 MAP-RAGR-2
P-MER-RAGR-3 MAP-RAGR-3
P-MER-SCO-MIN MER-SCO-MIN
P-MER-QTA-TEGLIA MA2-QTA-X-BANCALE
P-MER-RGR-PROD Id raggruppamento per la classe "Produzione" (classe "PR")
P-MER-PADRE MER-PADRE
P-MER-UNITA-PROD MA3-UNITA-PRODUTTIVA
P-MER-RGR-TRAC Id raggruppamento per la classe "Tracciabilità" (classe "TR")
P-MER-GESTIONE-LOTTI MER-LOTTI

B.2.2.3 - Esportazione distinta base Come prima cosa effettuare la cancellazione di tutti i record di PSWDBASE collegati alla merce, usando un comando SQL Poi scorrere COGDBASE, impostando

Dato Contenuto
DBA-MERCE Merce in elaborazione

Per ciascun record inserire il record su PSWDBASE impostando

Dato Contenuto
P-DBA-AZI Azienda attiva
P-DBA-MERCE DBA-MERCE
P-DBA-TIPO-DISTINTA MER-TIPO-DISTINTA
P-DBA-VERSIONE " "
P-DBA-PROG DBA-PROG
P-DBA-COMP DBA-MERCE-F
P-DBA-FL-CANC " "
P-DBA-ID-SINCRO 0

B.2.4 - Aggiornamento APSTATOSYN Leggere il record relativo alla tabella/oggetto da sincronizzare "PSWMERCI" e aggiornare:

Dato Contenuto
A_SYN_DA_GES_DATA Data di elaborazione
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO Ultimo id sincro memorizzato su PSWMERCI
A-SYN-VERSIONE 1

Estratto da documentazione interna ClickUp