SWN140 - Esportazione Codici Merce Fornitore¶
Sorgente: cbl/swn140.cbl | Program-ID: SWN140 | Tipo: Subroutine di sincronizzazione (solo esportazione)
Id processo: 140 Nome processo: ARPMERCA-F
Scopo¶
Esporta i codici merce fornitore (tabella COGMERFO) verso la tabella APP ARPMERCA con tipo-codice = "F". Il programma gestisce solo l'esportazione (nessuna importazione). L'esportazione e' differenziale tramite LOGAGREC su COGMERFO: vengono esportati solo i record effettivamente modificati dall'ultima esecuzione.
Se e' la prima esecuzione (data ultima sincronizzazione = 0) o viene richiesta l'esportazione completa, viene effettuata una scansione completa di COGMERFO.
Tabelle principali¶
| AREA | AREAGATE | Direzione |
|---|---|---|
| COGMERFO | ARPMERCA (tipo "F") | ------> |
File e tabelle¶
| File/Tabella | Modalita' | Descrizione |
|---|---|---|
| FEURTAB | I-O | Tabella generale Eurosystem (per attivazione LOG su COGMERFO) |
| COGMERFO | Input | Codici merce fornitore (sorgente) |
| ARPMERCA | I-O (DB) | Tabella APP destinazione (codici merce alternativi) |
| LOGAGREC | I-O | Log aggiornamenti per esportazione differenziale |
| LOGIDREC | I-O | Chiavi reali dei record da LOGAGREC |
| APSTATOSYN | I-O (DB) | Stato sincronizzazione (tabella "ARPMERCA-F") |
| ARPSTPRC | Input (DB) | Parametri processo (limiti record/errori) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
swn140.select, .fd, .wrk, .prc, .decla |
Definizioni generate da Screens |
cogfiles.cpy |
Struttura FEURTAB |
logagrec.cpy, .fd |
Log aggiornamenti |
logidrec.cpy, .fd |
Chiavi record log |
k-tipi-cogtabel.cpy |
Costanti tipi tabella |
costanti-sync.cpy |
Costanti sincronizzazione |
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy |
Working standard |
cogazien.cpy |
Dati azienda |
utilswgets.cpy |
Utility sincronizzazione |
utilgesstr.cpy |
Utility stringhe |
utilgesdebug.cpy |
Log di processo |
utilncnf.cpy |
Configurazioni RNEWCONF |
utilagprg.cpy |
Linkage parametri lancio |
Logica di elaborazione¶
Inizializzazione (m-00)¶
- Controllo abilitazione (
ctr-abil) - Apertura log di processo
- Lettura parametri lancio da
util-agprg - Verifica prerequisiti:
az-ges-lo = "S"(gestione laboratorio attiva)- Configurazione Aglancio attiva (
tm-cfg-aglancio-attivo = "S") - Sincronizzazione generale attiva (
tm-cfg-attiva-areaapp <> "N") - Attivazione automatica LOG su COGMERFO (archivio 32 in FEURTAB) se non gia' attivo
- Apertura tabelle DB (APSTATOSYN, ARPSTPRC, ARPMERCA)
- Lettura parametri processo da ARPSTPRC (limiti record/errori)
- Direzione forzata a "E" (solo esportazione)
- Avvio esportazione
Esportazione (b-esportazione)¶
- Lettura stato sincronizzazione da APSTATOSYN (tabella "ARPMERCA-F")
- Se prima volta (data = 0) o esportazione completa richiesta: scansione totale COGMERFO
- Altrimenti: esportazione differenziale via LOGAGREC
Esportazione differenziale (b-esporta-differenziale)¶
Scorre LOGAGREC per file "cogmerfo" a partire dalla data/ora dell'ultima esportazione. Per ogni record:
- Recupera la chiave reale da LOGIDREC
- Se operazione "C" (cancellazione): propaga cancellazione logica su ARPMERCA
- Se inserimento/modifica: rilegge COGMERFO e chiama
b-esporta-record
Esportazione singolo record (b-esporta-record)¶
Costruisce la chiave ARPMERCA:
| Campo ARPMERCA | Valore |
|---|---|
a-mca-azi |
Codice azienda |
a-mca-merce |
mfr-merce (gruppo+sotto+codice) |
a-mca-tipo-codice |
"F" (Fornitore) |
a-mca-ana |
"F" + mfr-for (codice fornitore) |
Cerca il record esistente con b-cerca-arpmerca-fornitore (start+rdnxt sui primi 4 campi chiave):
- Se trovato: aggiorna descrizione (
a-mca-des = mfr-desc), resetta flag cancellazione, incrementa id-sincro - Se non trovato: inserisce nuovo record con tutti i campi compilati (date di inserimento e aggiornamento)
Cancellazione logica (b-cancella-arpmerca)¶
Cerca il record su ARPMERCA e imposta a-mca-fl-canc = "C".
Esportazione singola chiave (b-esporta-key)¶
Per chiamate in tempo reale (ESPORTA-KEY): esporta un singolo record identificato dalla chiave in agprg-key (struttura mfr-chia1: merce 9 + fornitore 5). Se il record sorgente non esiste piu', propaga la cancellazione logica.
Configurazioni¶
| Gruppo | Parametro | Uso |
|---|---|---|
| abilita | attiva-areaapp | Attivazione sincronizzazione |
| areaapp | cod-azienda | Codice azienda |
| areaapp | db-conn-string | Stringa connessione DB |
| areaapp | agg-postgres-online | Sincronizzazione online |
| areaapp | aglancio-attivo | Attivazione Aglancio |
Note¶
- Il programma e' solo esportazione: la direzione e' forzata a "E" indipendentemente dai parametri.
- L'attivazione del LOG su COGMERFO (archivio 32) viene fatta automaticamente alla prima esecuzione se non gia' attiva.
- La sincronizzazione online (
ESPORTA-KEY) e' supportata ma richiedetm-cfg-agg-online = "S". - Il campo
a-mca-tipo-codice = "F"distingue i codici merce fornitore da altri tipi di codice su ARPMERCA. - La ricerca su ARPMERCA usa start+rdnxt sui primi 4 campi della chiave primaria (azienda, merce, tipo-codice, anagrafica) poiche' per un fornitore il codice e' unico.
Documentazione tecnica generata -- 2026-04-09