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 Screenscogd53df.imppredf-wrk— Working storage per importazione a DB frontieracostanti-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)¶
- Legge i dati dalla griglia (T-GRID-DET)
- Per ogni articolo, verifica che sia attivo su Modula (
attiva-articolo) - Crea ordini Modula separati per:
- Ogni area diversa
- Operazioni di versamento (LV) e prelievo (LP) separate
- Per ogni confezione (1-10 + sfuso), crea righe ordine con quantita' = base × utente
- Scrive le testate su COGMDTES e le righe su COGMDRIG
- Esporta verso il DB Frontiera su IMPORDTES/IMPORDDET
Regole di business¶
- Filtro merci Modula: solo merci con
mer-modula = "S"vengono elaborate - Filtro magazzino: solo documenti del magazzino Modula (
az-mag-modula) - Gestione lotti: logica separata per merci con
mer-lotti = "S"(ricerca su COGMOVLT) - Confezioni: fino a 10 tipi confezione da COGTABEL + sfuso, con moltiplicatore da COGMDLCS
- 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