Vai al contenuto

COGV06 - Launcher anagrafica merci

Sorgente: cbl/cogv06.cbl | Program-ID: cogv06 | Tipo: Launcher/dispatcher

Menu: Magazzino > Archivi & Tabelle > Merci


Scopo

COGV06 non contiene logica applicativa propria: e' un programma di lancio ("Programma di lancio dei programmi personalizzati", come dichiarato nell'intestazione del sorgente) che seleziona ed esegue la versione corretta della gestione anagrafica merci in base alla personalizzazione dell'azienda.

Il criterio di selezione e' il campo az-personal (dalla struttura az-rec, copybook cogazien.cpy), valorizzato copiando azien-area all'avvio:

  • Se az-personal non e' vuoto, viene composto dinamicamente il nome del programma personalizzato COGV06<az-personal>.cob (variabile name-call) e lo si esegue con call name-call using stringhe.
  • Se az-personal e' vuoto, oppure la call del programma personalizzato va in on overflow (programma personalizzato non presente/non caricabile), si esegue la versione standard COGV06NO.COB.
  • Se anche la call di COGV06NO.COB va in overflow, si recupera la descrizione dell'errore con C$CALLERR e la si mostra a video tramite box-msg (nessun programma eseguibile).

Al termine il programma chiamato viene rilasciato con cancel name-call.

La versione standard delegata e' COGV06NO (program-id cogv06no, "Gestione anagrafica merci - Versione STANDARD"), che contiene la logica effettiva di gestione dell'anagrafica merci/articoli.

Nota: non e' presente in questo launcher alcun meccanismo di configurazione RNEWCONF/COGU30. La scelta della variante e' guidata esclusivamente dal codice di personalizzazione azienda az-personal.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB Indexed Input Tabella generica Eurosystem (SELECT via cogv06.select, FD via feurtab.fd + cogfiles.cpy). Aperta/gestita dalle procedure generate da Screens

Non ci sono altre tabelle applicative aperte direttamente dal launcher: l'accesso ai dati dell'anagrafica merci avviene nel programma delegato.


Copybook utilizzate

Copybook Descrizione
feurtab.fd SELECT del file FEURTAB (Screen Designer)
cogv06.select SELECT dei file gestiti da Screens (in cbl/screens/)
cogfiles.cpy FD di FEURTAB
cogv06.fd FD dei file gestiti da Screens (in cbl/screens/)
cogv06.wrk Working storage della maschera (in cbl/screens/)
wstato.cpy Working storage stato file
wgrave.cpy Working storage errori gravi
wopenf.cpy Working storage apertura file
wnscr.cpy Working storage screen
cogazien.cpy Dati azienda (fornisce az-rec / az-personal)
wcont.cpy Linkage: struttura stringhe (contesto chiamante)
wcont1.cpy Linkage: contesto aggiuntivo
stato.cpy Gestione stato
stato1.cpy Gestione stato file
winmsg.cpy Gestione messaggi/box (box-msg)
grave.cpy Gestione errori gravi
opengen.cpy Apertura file generica
mmsubw.cpy Init/exit sottoprogramma (z-99-init-program, z-99-exit-subroutine)
cogv06.prc Procedure division della maschera (in cbl/screens/)

Logica di elaborazione

  1. z-99-init-program (da mmsubw.cpy): inizializzazione, apertura file gestiti da Screens.
  2. move azien-area to az-rec: carica i dati azienda, da cui az-personal.
  3. Se az-personal = spaces -> salta alla versione standard (st-80-standard).
  4. Altrimenti compone name-call = 'COGV06' + az-personal + '.cob' (string ... delimited by size) e call name-call using stringhe; su on overflow -> versione standard.
  5. st-80-standard: call 'COGV06NO.COB' using stringhe; su on overflow recupera l'errore con C$CALLERR (in w-ce-status / w-ce-descr) e mostra il box di errore con box-msg.
  6. st-90-ok: cancel name-call (rilascio del programma chiamato).
  7. z-99-exit-subroutine e exit program.

Chiamate a sottoprogrammi

Programma Scopo
COGV06<az-personal>.cob Variante personalizzata della gestione anagrafica merci (nome composto a runtime; eseguita solo se az-personal valorizzato)
COGV06NO Versione standard della gestione anagrafica merci (fallback)
C$CALLERR Routine di sistema AcuCOBOL: recupera stato e descrizione dell'ultimo errore di call (usata solo se anche COGV06NO.COB fallisce)