COGV14W - Worker gestione bolle di entrata¶
| Campo | Valore |
|---|---|
| Sorgente | cbl/cogv14w.cbl |
| Tipo | Worker |
| Chiamato da | COGV14 (programma principale bolle entrata) |
| Righe sorgente | ~27.000 |
Descrizione¶
Worker principale per l'inserimento e la modifica delle bolle di entrata magazzino (delivery notes). Gestisce l'interfaccia grafica a tab (testata + griglia dettaglio righe) per la compilazione del documento, inclusa la validazione dei dati, il calcolo dei prezzi, la gestione lotti, matricole e l'integrazione con il sistema Modula (WMS).
Implementa una funzione di post-aggiornamento (TASK-3648): quando una bolla e' gia' "accertata" (confermata), il programma non permette modifiche al documento ma abilita un sottogruppo di tasti funzione per operazioni successive (stampa, etichette, listino, ecc.).
File e tabelle¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB (cogfiles) | Input | Parametri generali azienda |
Tabelle da cogv14w.select |
I-O | Tabelle gestionale (anagrafica, merci, testate bolle, ecc.) |
| TRAN-D97 | I-O | File transitorio per gestione documenti |
| TRAN-S47 | I-O | File transitorio per elaborazioni |
| TRAN-V32 | External | File transitorio condiviso tra moduli |
| TRAN-U30 | I-O | File transitorio per gestione U30 |
| TRAN-V14W | I-O | File transitorio di comunicazione con COGV15W |
| TRSMATRI | I-O | File transitorio matricole |
| TRAN-S26 | I-O | File transitorio per elaborazioni |
| COGTRANS | I-O | File transitorio indicizzato con chiave primaria e secondaria (ordinamento) |
| COGTRANS2 | I-O | File transitorio secondario |
| COGTRANS3 | I-O | File transitorio terziario |
| COGTRANS4 | I-O | File transitorio quaternario (con chiave alternativa entrusc) |
| COGGENMF | I-O | Listino generale fornitori (gmf-), aggiornato dalla gestione merce fornitore se attiva la config gestione-da-cmf |
| INPFIL | Input | File sequenziale per lettura EAN/quantita' |
| INPFIL2 | Input | File sequenziale per dati generici (600 byte) |
| FILASCII | I-O | File ASCII per import/export |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| cogv14w.wrk / .select / .fd / .tm / .scr | Screen Designer: working, select, fd, tab-maschera, screen |
| cogv14w.imppredf-wrk | Working storage per import predefinito |
| k-u10.cpy | Costanti per conversione divisa |
| k-personal.cpy | Costanti personalizzazioni aziendali |
| costanti-assist.cpy | Costanti per assistenza tecnica |
| costanti-modula.cpy | Costanti per integrazione Modula WMS |
| costanti-cogevlog.cpy | Costanti per log eventi |
| l-copiaf.cpy | Linkage per copia file |
| k-modelli-ie-int-dm.cpy | Costanti per interscambio documenti |
| utilcogpa9.cpy | Interfaccia verso COGPA9 (dati interscambio) |
| utils40.cpy / utils41.cpy / utils42.cpy | Interfacce verso COGS40/COGS41/COGS42 (stringhe di ricerca listino generale fornitori) |
| coggenmf.cpy | Record listino generale fornitori (COGGENMF, gmf-) |
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGY68 | Gestione operazioni su griglia |
| COGU07 | Utilita' generiche |
| COGE22 | Gestione prezzi/sconti |
| COGE18 | Gestione varie |
| COGD02 | Gestione dati |
| COGD92 | Gestione documenti |
| COGF22 | Gestione (obsoleto, solo per personal specifico) |
| COGV37 | Gestione bolle correlate |
| COGV94 | Gestione visualizzazione |
| COGF36 | Gestione |
| COGF64 | Gestione |
| COGH20 | Gestione |
| COGP20 | Gestione stampe |
| COGS38 | Creazione/aggiornamento COGRACMF (ricerca merce fornitore) |
| COGS39 | Gestione COGSTCMF (stringa ricerca codice merce fornitore) |
| COGS40 | Gestione COGRACLF (ricerca merce listino generale fornitori) |
| COGS41 | Gestione COGSTLFM (stringa ricerca codice merce, listino generale fornitori) |
| COGS42 | Gestione COGSTLFD (stringa ricerca descrizione, listino generale fornitori) |
| COGD42 | Stampa bolla (post-aggiornamento F9) |
| COGM44 | Anomalie di fornitura (post-aggiornamento F1) |
| COGP20 | Gestione stampe / stampa etichette (post-aggiornamento F7) |
| COGP53 | Etichette lotti — personal Lori/Modena funghi (post-aggiornamento F8) |
| COGP78 | Etichette lotti standard (post-aggiornamento F8) |
| COGU65 | Stampa etichette supporti (post-aggiornamento S-F9) |
| COGSA9 | Gestione SA9 |
| COGUA8 | Gestione UA8 |
| COGA09 | Gestione A09 |
| COGSW1 | Gestione integrazione Modula |
| WMSW01 | Integrazione WMS Modula |
| GRP002 | Gestione gruppi |
| GRIDADMN | Amministrazione griglia |
| DIALOGS | Gestione dialoghi utente |
Logica di elaborazione¶
Flusso principale¶
- Inizializzazione: apertura file, lettura configurazioni, costruzione griglia dettaglio con colonne personalizzabili per azienda.
- Accept testata: raccolta dati testata bolla (magazzino, anno, tipo, numero, fornitore, causale, condizioni di pagamento).
- Controllo accertamento: se la bolla e' gia' accertata (
tes-fl-acc = "A"), non permette la modifica ma abilita i tasti funzione di post-aggiornamento (vedi sotto). - Griglia righe: gestione inserimento/modifica righe dettaglio con articolo, quantita', prezzo, sconti, lotti, matricole.
- Aggiornamento: salvataggio dati su file transitorio TRAN-V14W per il ritorno al programma chiamante.
Post-aggiornamento su bolle accertate (TASK-3648)¶
Quando la bolla e' gia' accertata, il dialogo di post-aggiornamento e' implementato dal paragrafo tf-post-aggio (chiama DIALOGS) e viene raggiunto da due punti:
- durante l'apertura/controllo accertamento (
tes-fl-acc = "A"); - durante la variazione del documento (
fl-vario = "S"conw-bolla-accertata = "A"): in questo caso, prima si mostrava solo "Impossibile modificarla" e si tornava alla pagina di testata; ora, oltre all'avviso a tre righe, il flusso invocatf-post-aggioe poi termina (go to fine), rendendo disponibili le operazioni accessorie anche su questo percorso.
Per il personal k-personal-sgarbi il comportamento resta invariato (nessun post-aggiornamento).
Tasti funzione abilitati nel dialogo:
| Tasto | Operazione | Sottoprogramma |
|---|---|---|
| ESC | Prosegui (chiudi dialogo) | — |
| F2 | Aggiornamento listino vendita | COGV37 |
| F7 | Stampa etichette | COGP20 |
| F9 | Stampa bolla | COGD42 |
| F1 | Anomalie di fornitura | COGM44 |
| F8 | Etichette lotti (se gestione lotti attiva) | COGP53 (personal Lori/Modena funghi) / COGP78 |
| S-F7 | Protocollo archiviazione ottica (se az-arc-ott = "S") |
COGH20 |
| S-F9 | Stampa etichette supporti (se presenti supporti) | COGU65 |
| F10 | Esegue l'archiviazione ottica (se attiva, escluso personal Lori) | a1-call-ott-bis |
Alcuni tasti sono disabilitati nel post-aggiornamento: inserimento/cancellazione cauzioni (F8 con cauzioni), manutenzione matricole (F5), completamento lotti (F6), collegamento a chiamata (S-F4).
Nomi file temporanei univoci per processo¶
Il nome del file transitorio TRAN-V14W include il PID del processo (ext-pid) per evitare conflitti tra sessioni concorrenti:
#COGV15W_{ext-pid}.{wo-oper}
La stessa convenzione e' usata per COGTRANS e TRAN-S47.
Manutenzione codice merce fornitore (COGMERFO) e stringhe di ricerca¶
Alla conferma delle righe, il paragrafo aggiorna-merce-for allinea la tabella COGMERFO (mfr-, codice merce del fornitore) e le relative stringhe di ricerca COGRACMF/COGSTCMF, gestite dai sottoprogrammi COGS38 e COGS39:
- COGS38 (
s38-ope): crea/aggiorna COGRACMF per la coppia merce/fornitore. - COGS39 (
s39-ope): gestisce COGSTCMF (stringa di ricerca per codice merce fornitore); accetta il codice da inserire (s39-cmf-i) e quello da cancellare (s39-cmf-c).
Casistica (rif. 130726, TASK-1395):
| Situazione COGMERFO | Operazione | Chiamate |
|---|---|---|
| Record inserito ex novo (non esisteva) | s38-ope = "I", s39-ope = "I" |
COGS38 (I) + COGS39 (I) |
| Record gia' esistente con codice fornitore modificato | s39-ope = "V", vecchio codice in s39-cmf-c |
COGS39 (V) solo se mfr-cod-for e' cambiato rispetto a s39-cmf-c |
In precedenza le stringhe di ricerca venivano ricostruite solo all'inserimento del record COGMERFO. Ora, quando il codice merce fornitore di un record esistente viene modificato, COGS39 viene richiamato in variazione ("V") per rimuovere la vecchia stringa e inserire la nuova, mantenendo coerente l'indice di ricerca per codice fornitore. La stessa logica e' presente nel programma ordini fornitori COGO55W (paragrafo agg-prezzi). La modifica non ha impatto sull'interfaccia utente.
Allineamento del listino generale fornitori (COGGENMF)¶
Se e' attiva la configurazione gestione-da-cmf (gruppo LISTGENF, tm-cfg-gestione-da-cmf = "S", slot 60 della tabella RNEWCONF), il paragrafo aggiorna-merce-for propaga la merce del fornitore anche sul listino generale fornitori COGGENMF (gmf-), tramite il nuovo paragrafo aggiorna-coggenmf. Lo scopo (rif. config) e' permettere di gestire dalla scheda merce fornitore, oltre al prezzo netto di acquisto, anche il prezzo lordo e lo sconto, che restano memorizzati sul listino generale.
aggiorna-coggenmf lavora sulla chiave gmf-cf/gmf-cmf (fornitore + codice merce fornitore):
| Caso | Azione su COGGENMF | Ricostruzione stringhe di ricerca |
|---|---|---|
| Record esistente | Aggiorna divisa (gmf-currency), descrizione (gmf-dm) e moltiplicatore prezzo (gmf-molt-pre = 1) con rwr-coggenmf |
Solo se la descrizione e' cambiata: COGS42 in cancellazione (vecchia w-dm) + inserimento (nuova gmf-dm) |
| Record nuovo | Crea la voce con divisa, descrizione, moltiplicatore e prezzi/sconto azzerati (wr-coggenmf) |
COGS40 (I), COGS41 (I), COGS42 (I) come in COGM02 |
Le stringhe di ricerca del listino generale sono gestite dai sottoprogrammi COGS40 (COGRACLF, ricerca merce), COGS41 (COGSTLFM, ricerca per codice merce) e COGS42 (COGSTLFD, ricerca per descrizione, con inserimento/cancellazione della descrizione). La logica di ricostruzione replica quella dell'anagrafica listino generale (COGM02). La modifica non ha impatto sull'interfaccia utente: e' un allineamento dati automatico, subordinato alla configurazione.
Interscambio documenti¶
Il programma supporta l'import/export di righe dettaglio tramite il modulo COGPA9 (interscambio documenti da file Excel). I campi importabili sono: codice merce (maggiore/minore), quantita', prezzo lordo, sconti 1 e 2, prezzo netto, importo, codice merce fornitore.
Note¶
- Il sorgente e' molto esteso (~27.000 righe) e gestisce una quantita' significativa di casistiche legate alle personalizzazioni aziendali (
az-personal). - Il file TRAN-V32 e' dichiarato
EXTERNAL, quindi condiviso in memoria tra programmi co-residenti. - La griglia dettaglio ha colonne personalizzabili: alcune visibili/nascoste in base alla configurazione aziendale (costi di trasporto, prezzi in divisa, codici cliente, ecc.).
Storico modifiche¶
2026-07-29 — Allineamento listino generale fornitori e post-aggiornamento su bolle in variazione¶
Modifica di logica di business con alcune correzioni cosmetiche.
- Allineamento COGGENMF da scheda merce fornitore (rif.
130726/280726): introdotta la configurazione gestione-da-cmf (gruppoLISTGENF, slot 60). Se attiva,aggiorna-merce-forpropaga la merce del fornitore anche sul listino generale fornitori (COGGENMF) tramite il nuovo paragrafoaggiorna-coggenmf, ricostruendo le stringhe di ricerca via i nuovi sottoprogrammi COGS40/COGS41/COGS42 (come in COGM02). Nuovi copybook:utils40.cpy,utils41.cpy,utils42.cpy,coggenmf.cpy. Aggiunta anche la gestione del caso "V" (variazione codice merce fornitore) per COGS39, con nuovo flagw-fl-mod-cogmerfo. - Post-aggiornamento su bolle accertate in variazione (rif.
090426, TASK-3648): quando si tenta di variare una bolla gia' accertata, il flusso non si limita piu' a bloccare la modifica ma richiama il nuovo paragrafotf-post-aggio(dialogo con i tasti funzione accessori) e poi termina. Il paragrafotf-post-aggioe' interamente nuovo e centralizza l'implementazione del dialogo di post-aggiornamento (F1/F2/F7/F8/F9/F10/S-F7/S-F9/ESC). - Dimensionamento tabella righe (rif.
270426): confermato l'aumento a 900 elementi dik-max-ele-grid-dete dei relativi loop (gia' descritto in Casistica problemi noti). - Nome temporaneo TRAN-V14W (rif.
220426): aggiunto il PID (ext-pid) al nome del file#COGV15Wper evitare conflitti tra sessioni (gia' descritto in Nomi file temporanei univoci per processo). - Correzioni cosmetiche: refuso "Esequo" → "Eseguo" nel testo del tasto F10; sistemazione della struttura
end-ifattorno ai tasti S-F7/S-F9 nella costruzione del dialogo.
Casistica problemi noti¶
Tabella righe piena su carichi con molte righe¶
- Sintomo: Entrando in gestione di un carico con molte righe, il programma mostrava "Tabella righe piena" seguito da errori a catena e uscita forzata.
- Causa: La tabella interna per le righe del carico era dimensionata a 200 elementi, insufficiente per documenti con piu' righe.
- Correzione: Aumentata la dimensione della tabella da 200 a 900 elementi.
- Riferimento: dettaglio — ClickUp 869d2fctj