COGM23 — Raggruppamenti merci¶
Sorgente: cbl/cogm23.cbl | Tipo: Programma interattivo a griglia | Program-ID: COGM23
Menu: Magazzino > Archivi & Tabelle > Tabelle > Gruppi/raggruppamenti > Raggruppamenti merci
Scopo¶
Gestisce le tabelle di raggruppamento merci: consente di definire, per ogni tipo di raggruppamento, l'elenco dei singoli codici di raggruppamento con relativa descrizione ed eventuale tipologia cliente collegata. I raggruppamenti servono a classificare gli articoli in famiglie trasversali usate da statistiche, sincronizzazioni e altre elaborazioni.
I dati sono memorizzati nella tabella generalizzata COGTABEL (record euta) con tipo euta-tipo = 17. La descrizione del tipo raggruppamento è a sua volta un record COGTABEL tipo 17 con chiave a euta-cfg-key = spaces.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGTABEL | cogtabel.cpy (via feurtab) |
Tabelle generalizzate; questo programma tratta i record con euta-tipo = 17 |
| CRMTIPCL | (via feurtab) |
Tipologie cliente CRM; usata per validare/descrivere euta-rm-tcl (campo tcl-cod/tcl-des) |
| COGAZIEN | cogazien.cpy |
Dati azienda |
Tabella di lavoro tab-maschera (tm-tab) |
(interna) | Righe raggruppamento in memoria per la griglia (max k-max-ele-tab = 900) |
util-crm010 (linkage call) |
utilcrm010.cpy |
Dialogo con CRM010 per la scelta della tipologia nominativo |
util-ncnf |
utilncnf.cpy |
Lettura configurazione RNEWCONF raggr-merce-per-sincro |
Struttura dei record COGTABEL (tipo 17)¶
euta-tipo = 17(costantek-euta-tipo);euta-cfg-arg(redefineseuta-cod, primi 4 char) = tipo raggruppamento (tm-tip);euta-cfg-key(successivi 6 char) = codice raggruppamento (tm-rag);- record con
euta-cfg-key = spaces→ riga di intestazione tipo, la cuieuta-descrcontiene la descrizione del tipo raggruppamento (tm-tip-des); - record con
euta-cfg-keyvalorizzato → singolo raggruppamento, coneuta-descrridefinita daeuta-raggruppamenti-merce:euta-rm-des(descrizione) +euta-rm-tcl(codice tipologia nominativo CRM).
Flusso di elaborazione¶
Configurazione iniziale (x99-confi)¶
All'avvio (e su richiamo con F1) il programma legge via RNEWCONF la chiave di configurazione clipot / raggr-merce-per-sincro in tm-cfg-raggr. Questo valore identifica il tipo raggruppamento speciale usato per la sincronizzazione: quando tm-tip = tm-cfg-raggr, il programma abilita il campo tipologia cliente (flag-ok-tipol = "S", controllo x-enabled-tm-tipol).
Selezione tipo e caricamento (a-tm-tip → a-richiesta-conferma → a10-loop)¶
- l'operatore seleziona il tipo raggruppamento (
a-tm-tip, combo gestita daCOGS60viaz-s60-tm-tip) e ne conferma/modifica la descrizione (a-tm-tip-des); la descrizione del tipo viene scritta come recordCOGTABELconeuta-cfg-key = spaces; - alla conferma (F3) si esegue il caricamento:
st-cogtabel-notminposizionato sueuta-tipo=17+euta-cfg-arg=tm-tip, poi looprdnxt-cogtabel; - il loop si ferma quando cambia
euta-tipooeuta-cfg-arg, salta i record coneuta-cfg-key = spaces(l'intestazione tipo), e per ogni raggruppamento valorizzatm-righe (i):tm-rag=euta-cfg-key,tm-des=euta-rm-des,tm-tipol=euta-rm-tcl; se la tipologia è valorizzata leggeCRMTIPCL(rd-crmtipcl) per la descrizionetm-desl.
Modalità e gestione griglia (a-grid / a-accept-grid)¶
Il programma alterna due modalità (a-modalita): (A)ggiornamento e (S)elezione — quest'ultima usata quando COGM23 è richiamato da un altro programma (w-dc-called = "S"). In aggiornamento sono attivi:
- INVIO / doppio click → modifica riga (
a-operazione = "M"), previo controllow-abi-agg; - CTRL-A → inserimento (
a-operazione = "I"), previo controllow-abi-ins; - CTRL-E → cancellazione con conferma (
c-cancella→del-cogtabel), previo controllow-abi-del; - F3 → commuta modalità / conferma; SHIFT-F4 → personalizzazione griglia.
Dettaglio riga (a-riga-dettaglio → a-riga-dettaglio-fine)¶
Accetta in sequenza: codice gruppo (a-tm-rag, non modificabile in variazione), descrizione (a-tm-des), tipologia cliente (a-tm-tipol, abilitata solo se tm-tip = tm-cfg-raggr). Sul campo tipologia il tasto F8 apre CRM010 per la scelta assistita.
In conferma:
- controlli
x-imposta-conferma(x-controlla-tm-rag,x-controlla-tm-des,x-controlla-tm-tipol); - aggiornamento griglia via
GRIDADMN; - rilettura del record (
rd-cogtabel-lk) con eventuale commutazione inserimento/modifica; - scrittura:
wr-cogtabel(inserimento) orwr-cogtabel(modifica), valorizzandoeuta-rm-deseeuta-rm-tcl.
Chiamate a sottoprogrammi¶
| CALL | Scopo |
|---|---|
GRIDADMN |
Gestione griglia (preparazione colonne, add/modify/svuota record) |
COGS60 |
Combo di scelta del tipo raggruppamento (via util-s60 / z-s60-tm-tip) |
CRM010 |
Scelta assistita della tipologia nominativo CRM (F8 sul campo tipologia); ritorna crm010-out-cod |
RNEWCONF |
Lettura configurazione clipot / raggr-merce-per-sincro |
Copy standard: mmmask.cpy, wgrid.cpy, utilgrid.cpy, utilgdad.cpy.
Note¶
- Il tipo raggruppamento
tm-cfg-raggrletto dalla configurazione è quello per cui è significativa la tipologia cliente (euta-rm-tcl); per gli altri tipi il campo è disabilitato e viene azzerato. - Il numero massimo di raggruppamenti caricabili in griglia è 900 (
k-max-ele-tab); inz-costruisci-griduntm-pntmaggiore viene troncato a tale soglia. - La descrizione del tipo raggruppamento è essa stessa un record
COGTABEL(chiave coneuta-cfg-key = spaces): modificarla aggiorna solo l'intestazione, non i singoli raggruppamenti.