Vai al contenuto

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)

  1. Controllo abilitazione (ctr-abil)
  2. Apertura log di processo
  3. Lettura parametri lancio da util-agprg
  4. Verifica prerequisiti:
  5. az-ges-lo = "S" (gestione laboratorio attiva)
  6. Configurazione Aglancio attiva (tm-cfg-aglancio-attivo = "S")
  7. Sincronizzazione generale attiva (tm-cfg-attiva-areaapp <> "N")
  8. Attivazione automatica LOG su COGMERFO (archivio 32 in FEURTAB) se non gia' attivo
  9. Apertura tabelle DB (APSTATOSYN, ARPSTPRC, ARPMERCA)
  10. Lettura parametri processo da ARPSTPRC (limiti record/errori)
  11. Direzione forzata a "E" (solo esportazione)
  12. Avvio esportazione

Esportazione (b-esportazione)

  1. Lettura stato sincronizzazione da APSTATOSYN (tabella "ARPMERCA-F")
  2. Se prima volta (data = 0) o esportazione completa richiesta: scansione totale COGMERFO
  3. 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:

  1. Recupera la chiave reale da LOGIDREC
  2. Se operazione "C" (cancellazione): propaga cancellazione logica su ARPMERCA
  3. 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 richiede tm-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