Vai al contenuto

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

  1. apri (main): imposta prog-err/w-nome-hlp, esegue ctr-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).
  2. a4: inizializza tab-maschera (azzera i contatori e i campi UM), carica i controlli, azzera fl-ins-var.
  3. a-tm-old-um: accept della vecchia unita' di misura. ESC esce dal programma (fine). Controllo obbligatorieta' via x-controlla-tm-old-um.
  4. a-tm-new-um: accept della nuova unita' di misura. Controllo via x-controlla-tm-new-um: obbligatoria e diversa dalla vecchia.
  5. a-inizio-dati: verifica finale (x-imposta-conferma) e richiesta conferma (acc-conf); se l'utente non conferma con F3 torna a a-tm-old-um.
  6. b-elabora / b-10-loop (nucleo dell'elaborazione massiva):
  7. move low-values to mer-chia + st-cogmerci-may per posizionarsi all'inizio dell'anagrafica merci.
  8. Ciclo b-10-loop: rdnxt-cogmerci-lk (lettura sequenziale con lock). A fine file va a b-90.
  9. Per ogni merce incrementa tm-m-l (lette) e aggiorna il display.
  10. Se mer-um not = tm-old-um salta al record successivo.
  11. Altrimenti incrementa tm-m-c (corrispondenti), imposta mer-um = tm-new-um, riscrive il record (rwr-cogmerci), incrementa tm-m-m (modificate) e aggiorna il display.
  12. b-90: messaggio "Fine Elaborazione".
  13. 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-l lette, tm-m-c corrispondenti, tm-m-m modificate) 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-computer sono impostati a acu-cobol (non pc-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