COGD03 - Modifica Unita' di Misura su Merci (variazione massiva)¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGD03 |
| Titolo | Modifica Unita' di Misura |
| Modulo | Magazzino |
| Posizione menu | Magazzino > Archivi & Tabelle > Varie > Modifica Unita' Misura su Merci |
Scopo e logica generale¶
A differenza degli altri programmi a menu di questa sezione (che gestiscono tabelle), COGD03 e' una utility di modifica massiva: sostituisce una unita' di misura su tutte le merci dell'anagrafica (COGMERCI). L'operatore indica la vecchia unita' di misura e la nuova; il programma scorre l'intera anagrafica merci e, per ogni articolo la cui unita' di misura (mer-um) coincide con quella vecchia, la sostituisce con la nuova e riscrive il record.
Durante l'elaborazione la maschera mostra tre contatori progressivi:
tm-m-l- merci lette (totale scorse);tm-m-c- merci corrispondenti (con unita' di misura = vecchia);tm-m-m- merci modificate (record riscritti).
Non c'e' griglia: e' una maschera con due campi di input (vecchia/nuova UM) e i tre contatori, confermata con F3.
Flusso principale¶
apri(main): impostaprog-err/w-nome-hlp, eseguectr-abil,z-99-init-program,x-carica-lingua,rd-azi,open-files. Definisce i tasti funzione (F3 aggiorna, F8 aiuto), titolo maschera, prepara i controlli (z-costruisci-controlli).a4: inizializzatab-maschera(azzera i contatori e i campi UM), carica i controlli, azzerafl-ins-var.a-tm-old-um: accept della vecchia unita' di misura. ESC esce dal programma (fine). Controllo obbligatorieta' viax-controlla-tm-old-um.a-tm-new-um: accept della nuova unita' di misura. Controllo viax-controlla-tm-new-um: obbligatoria e diversa dalla vecchia.a-inizio-dati: verifica finale (x-imposta-conferma) e richiesta conferma (acc-conf); se l'utente non conferma con F3 torna aa-tm-old-um.b-elabora/b-10-loop(nucleo dell'elaborazione massiva):move low-values to mer-chia+st-cogmerci-mayper posizionarsi all'inizio dell'anagrafica merci.- Ciclo
b-10-loop:rdnxt-cogmerci-lk(lettura sequenziale con lock). A fine file va ab-90. - Per ogni merce incrementa
tm-m-l(lette) e aggiorna il display. - Se
mer-um not = tm-old-umsalta al record successivo. - Altrimenti incrementa
tm-m-c(corrispondenti), impostamer-um = tm-new-um, riscrive il record (rwr-cogmerci), incrementatm-m-m(modificate) e aggiorna il display. b-90: messaggio "Fine Elaborazione".fine/z-chiudi:close cogmerci, chiude window,z-99-exit-program,exit program.
File e tabelle acceduti¶
| File | Record | Modalita' | Uso |
|---|---|---|---|
COGMERCI (logico feurtab) |
mer-rec (chiave mer-chia, campo mer-um) |
I-O con lock (rdnxt-cogmerci-lk, rwr-cogmerci) |
Scansione completa dell'anagrafica merci e riscrittura del campo unita' di misura |
Verbi di accesso (da cogd03.prc): st-cogmerci-may, rdnxt-cogmerci-lk, rwr-cogmerci.
Copybook principali¶
Strutture dati / FD:
- feurtab.fd, cogfiles.cpy - file fisico generalizzato.
- wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy - working-storage standard (stato I/O, errori, apertura file, dati azienda).
- wcont.cpy (stringhe), wcont1.cpy (linkage) - aree di comunicazione comuni.
GUI:
- mmmask.cpy - framework maschera GUI (fornisce z-99-init-program/z-99-exit-program).
Screen Designer:
- cogd03.select, cogd03.fd, cogd03.wrk, cogd03.decla, cogd03.prc, cogd03-01.scr - artefatti generati dallo Screen Designer. Il .fd/.select includono la definizione di accesso a COGMERCI.
Routine finali: stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy.
Programmi chiamati (CALL)¶
Nessuna CALL esplicita ad altri programmi. Tutta la logica e' interna; l'accesso a COGMERCI avviene tramite i verbi generati in cogd03.prc.
Note¶
- Operazione irreversibile e globale: la modifica agisce su TUTTA l'anagrafica merci senza filtri se non l'unita' di misura di partenza. Non esiste un ripristino automatico.
- La lettura e' sequenziale con lock (
rdnxt-cogmerci-lk) e la riscrittura immediata (rwr-cogmerci) merce per merce; non c'e' transazione unica. - I tre contatori (
tm-m-llette,tm-m-ccorrispondenti,tm-m-mmodificate) forniscono all'operatore il riscontro dell'elaborazione a video in tempo reale. - Controlli di input: la nuova UM deve essere valorizzata e diversa dalla vecchia (
x-controlla-tm-new-um). source-computer/object-computersono impostati aacu-cobol(nonpc-sperry).- Il flusso di elaborazione usa
go to(stile legacy del sorgente originale, non modificabile). - Nessuna configurazione RNEWCONF letta.
Documentazione tecnica -- creata 2026-07-10