Vai al contenuto

COGD53DF — DB Frontiera Modula: Gestione Liste Versamento/Prelievo

Sorgente: cbl/cogd53df.cbl | Tipo: Sottoprogramma con interfaccia grafica (griglia interattiva) | Program-ID: COGD53DF

Menu: Programma non a menu — richiamato da COGD53


Scopo

Gestisce l'invio di liste di versamento e prelievo al magazzino automatizzato Modula tramite un database di frontiera (DB Frontiera), in alternativa alla modalita' standard basata su file. Viene attivato quando la configurazione "sistmga001" - "modula-db-frontiera" e' abilitata.

Il programma e' stato introdotto con la build 2026/0042 per supportare la procedura Modula basata su database anziche' su file indicizzati.


Relazione con COGD53

COGD53 e' il programma centralizzato per l'invio delle liste a Modula. Quando la configurazione modula-db-frontiera e' attiva, COGD53 delega l'elaborazione a COGD53DF. La logica di calcolo delle differenze (versamento/prelievo) e' la stessa descritta nella documentazione di COGD53, ma l'output viene scritto su tabelle del database di frontiera anziche' su file, e il programma offre un'interfaccia grafica con griglia interattiva.


Interfaccia (Linkage/Called)

Il programma viene richiamato da COGD53 con i seguenti dati:

Campo Tipo Descrizione
w-dc-d53-ope x(20) Operazione da eseguire (DOC-PRECEDENTE, DOC-ATTUALE, DOC-ESEGUI)
w-dc-d53-causale x(02) Causale del documento (BP = buono prelievo, altro = documento standard)
w-dc-d53-documento x(20) Chiave del documento (magazzino o prelievo)
w-dc-d53-ope-modula x(20) Operazione specifica Modula

Il documento puo' essere interpretato come:

  • Documento di magazzino (w-dc-d53-doc-magaz): magazzino + anno + tipo + numero bolla
  • Documento di prelievo (w-dc-d53-doc-prel): magazzino + anno + numero + mese + giorno

File e Tabelle

File/Tabella Uso
COGTRANS4 File di transito indicizzato per calcolo differenze
COGTESBO Testata documenti magazzino (DDT)
COGMOMAG Righe movimenti magazzino
COGMERCI Anagrafica merci
COGGEANA Anagrafica clienti/fornitori
COGTABEL Tabelle generiche (causali, confezioni)
COGTESBP / COGRIGBP Testata e righe buoni prelievo
COGMERCL / COGMERLT / COGMOVLT Gestione lotti
COGMDTES / COGMDRIG Ordini Modula (testata e righe)
COGMDLCS Configurazione Modula per confezioni
IMPORDTES / IMPORDDET DB Frontiera: tabelle ordini
IMPARTICOLI DB Frontiera: articoli
APSTATOSYN Stato sincronizzazione
T-GRID-DET / T-GRD-FILTRI Tabelle temporanee per griglia interattiva

Programmi chiamati

Programma Scopo
COGU10W Utility valute/divisioni
RNEWCONF Lettura configurazioni
GRIDADMN Gestore griglia interattiva
CRMS06 Gestione CRM
DIALOGS Dialog/messaggi
COGB67 Logica business specifica

Copybook principali

  • cogd53df.wrk, cogd53df.select, cogd53df.fd — Definizioni generate da Screens
  • cogd53df.imppredf-wrk — Working storage per importazione a DB frontiera
  • costanti-modula.cpy — Costanti per operazioni Modula

Logica di Elaborazione

Modalita' operative

Il programma opera in tre fasi, invocate separatamente da COGD53:

Operazione Paragrafo Descrizione
DOC-PRECEDENTE doc-precedente Carica il documento corrente nel file di transito COGTRANS4 (stato "prima")
DOC-ATTUALE doc-attuale Aggiorna il transito con lo stato "dopo" la modifica
DOC-ESEGUI tramite griglia Calcola le differenze e genera gli ordini Modula

Per i buoni prelievo (causale = "BP"), esistono varianti specifiche: doc-precedente-bp e doc-attuale-bp.

Quando la causale e' "BP" (buono prelievo), il programma carica i dati dell'ordine collegato al buono di prelievo tramite il paragrafo m-carica-dati-bdp, anziche' leggere direttamente la testata del documento da COGTESBO. Questo consente di associare correttamente le informazioni dell'ordine originario alle righe del buono.

File di transito (COGTRANS4)

Campo Tipo Descrizione
trs4-mag1 x(01) Magazzino
trs4-anno 9(04) Anno documento
trs4-tipob1 x(01) Tipo bolla
trs4-bolla1 9(06) Numero bolla
trs4-prog 9(04) Progressivo riga
trs4-merce x(09) Codice merce (gruppo+sottogruppo+codice)
trs4-lotto-int 9(06) Lotto interno
trs4-entrusc x(01) E = entrata, U = uscita
trs4-qtamagaz 9(07)v9(03) Quantita' (differenza calcolata)

Logica di calcolo differenze

Per ogni riga del documento, confrontando stato precedente e attuale:

  • Se la riga non esiste nel transito → INSERT
  • Se la quantita' e' uguale → DELETE (nessuna variazione)
  • Altrimenti → UPDATE con delta (± quantita')

Interfaccia griglia

Il programma presenta una griglia interattiva con:

Colonna Descrizione
Merce Codice e descrizione articolo
Lotto Lotto interno (se gestito)
Area Area Modula di destinazione
C1-C10 Quantita' per ciascuna delle 10 confezioni configurate
SFU Quantita' sfusa (bulk)
QTA-TOT Totale calcolato
Segno V = versamento, P = prelievo

Generazione ordini Modula (b-aggiorna)

  1. Legge i dati dalla griglia (T-GRID-DET)
  2. Per ogni articolo, verifica che sia attivo su Modula (attiva-articolo)
  3. Crea ordini Modula separati per:
  4. Ogni area diversa
  5. Operazioni di versamento (LV) e prelievo (LP) separate
  6. Per ogni confezione (1-10 + sfuso), crea righe ordine con quantita' = base × utente
  7. Scrive le testate su COGMDTES e le righe su COGMDRIG
  8. Esporta verso il DB Frontiera su IMPORDTES/IMPORDDET

Regole di business

  1. Filtro merci Modula: solo merci con mer-modula = "S" vengono elaborate
  2. Filtro magazzino: solo documenti del magazzino Modula (az-mag-modula)
  3. Gestione lotti: logica separata per merci con mer-lotti = "S" (ricerca su COGMOVLT)
  4. Confezioni: fino a 10 tipi confezione da COGTABEL + sfuso, con moltiplicatore da COGMDLCS
  5. Trasferimenti: supporto per trasferimenti da magazzino C a 1 (flag trasf-c-1)

Configurazioni

Gruppo Parametro Note
sistmga001 modula-db-frontiera Attiva la modalita' DB Frontiera (prerequisito)
sistmga001 ritorno-liste Controlla il comportamento di ritorno delle liste
bdp cogf64-bdp-merci-lotto Configurazione BDP per merci con lotto

Storico Modifiche

Build Descrizione
2026/0042 Programma nuovo
2026/0070 Gestione uscita forzata
2026/0074 Caricamento dati ordine collegato per buoni prelievo (BP): il programma ora recupera i dati dell'ordine tramite m-carica-dati-bdp anziche' leggere da COGTESBO
2026/0076 Eccezione formato HME da CRM: quando CRMS06 ritorna il formato "HME", il programma passa "Standard" a tm-formato perche' Modula non supporta il formato HME
2026/04 Guard t-gor-r-lotto > 0 prima della STRING che costruisce ordd-sub2 da merce+magazzino+lotto. Applicata in 5 punti (confezioni 1-4 + residuo) per evitare garbage quando il lotto non e' assegnato
2026/05 Troncamento lotto a 7 caratteri per formato GAPI: t-gor-r-lotto-for(1:7) nella costruzione di w-gapi-lotto-x

Documentazione tecnica aggiornata -- 2026-03-27