Vai al contenuto

COGZA9 — Conversione configurazione prescrizioni per commessa

Sorgente: cbl/cogza9.cbl | Program-ID: cogza9 | Tipo: Utility batch interattiva (conversione archivi)

Menu: Lab.Odont. > Operativo > Utilita' > Conv.Config.Presc. X Commessa


Scopo

Utilita' di allineamento archivi da eseguire una tantum quando si passa la configurazione aziendale az-lod-presc dal valore "S" (prescrizione = studio) al valore "C" (prescrizione per commessa). Con la nuova modalita' il progressivo della prescrizione diventa il codice commessa: il programma riscrive di conseguenza le tre tabelle collegate, allineando le chiavi:

  • LODPRESC: riscrive lpm-pro (progressivo) uguale a lpm-num (numero), regenerando la chiave;
  • LODCMTES: riscrive lct-pro uguale a lct-cod;
  • LODCMRIG: riscrive lcr-prog uguale a lcr-com.

Il programma e' attivo solo se az-lod-presc = "C"; in caso contrario avvisa che la configurazione non prevede la gestione delle prescrizioni per commessa e annulla l'operazione. Prima dell'elaborazione offre di salvare (backup .arc) le tre tabelle interessate. Al termine, eventuali anomalie sono registrate su un file di log dedicato.


File e tabelle

File Copybook Accesso Scopo
LODPRESC lodpresc.k04 Lettura sequenziale (chia4), delete + write Prescrizioni: riscrittura chiave con pro = num
LODCMTES lodcmtes.k02 Lettura sequenziale, rewrite Testate commesse: riscrittura chiave con pro = cod
LODCMRIG Lettura sequenziale, rewrite Righe commessa: riscrittura chiave con prog = com
LOGFILE logfile.fd / logfile.cpy Scrittura (via makelog) File di log delle anomalie riscontrate

I file principali sono definiti tramite cogza9.fd/cogza9.select; il commento nel sorgente conserva (disattivato) il vecchio schema SELECT di LODCMTES/LODCMRIG.


Programmi chiamati (CALL)

Programma Condizione Scopo
COPIAF salva-lodpresc/-lodcmtes/-lodcmrig, set-logfile-su-client Copia file per il backup .arc delle tabelle e conversione percorso log su client
DIALOGS a-10, esiti salvataggio Dialog di scelta (Esc/F5/F9): salvataggio archivi e gestione errori di backup

Sono inoltre usate le routine di sistema W$FLUSH (aggiornamento contatori a video) e le subroutine di log dei copybook makelog.


Copybook incluse

Working Storage

feurtab.fd, cogfiles.cpy, cogza9.fd, cogza9.select, logfile.fd, logfile.cpy, cogza9.wrk, wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy, utils54.cpy, utils52.cpy, utilnpad.cpy, l-copiaf.cpy, utildlg.cpy

Linkage / Screen

wcont.cpy, u-copiaf.cpy, wcont1.cpy, cogza9-01.scr

Procedure Division

cogza9.decla, stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, mmmask.cpy, opengen.cpy, cogza9.prc, lodcmtes.k02, lodpresc.k04, makelog.cpy


Logica di elaborazione

  1. apri / a4: apre i file e verifica az-lod-presc = "C"; se diverso, avvisa e termina.
  2. a-10: mostra un dialog (DIALOGS) che consiglia il backup e propone tre scelte — Esc (annulla), F5 (prosegui senza salvare), F9 (salva e prosegui). Con F9 esegue salva-archivi.
  3. salva-archivi: chiude ciascuna delle tre tabelle, ne copia il file in un .arc datato (COPIAF) e la riapre. Se un backup fallisce, chiede via DIALOGS se proseguire comunque.
  4. a-90: dopo la conferma finale esegue elabora-prescrizioni e elabora-commesse.
  5. elabora-prescrizioni: scorre LODPRESC per chiave chia4; per ogni record con pro <> num cancella il record vecchio (del), imposta pro = num e riscrive (wr) con la nuova chiave, riposizionandosi. Aggiorna i contatori letti/scritti (tm-p-rd/tm-p-wr).
  6. elabora-commesse: scorre LODCMTES; per ogni testata imposta pro = cod e riscrive (rwr), poi elabora le sue righe.
  7. elabora-righe-commessa-sub-lct: per la testata in area record, scorre LODCMRIG filtrando su lcr-com = lct-chia1, imposta prog = com e riscrive.
  8. check-messaggio-logfile: se sono state registrate anomalie, comunica all'utente il percorso del file di log (convertito su client se thin-client via COPIAF).

Gli errori di riscrittura (rwr/wr non ok) vengono tracciati sul log con la vecchia e la nuova chiave e lo stato del file.


Paragrafi chiave

Paragrafo Scopo
apri / a4 Inizializzazione e verifica configurazione az-lod-presc = "C"
a-10 Dialog di salvataggio pre-elaborazione
salva-archivi / salva-lodpresc / salva-lodcmtes / salva-lodcmrig Backup .arc datato delle tre tabelle via COPIAF
elabora-prescrizioni Riallineamento chiave LODPRESC (pro = num)
elabora-commesse Riallineamento LODCMTES (pro = cod)
elabora-righe-commessa-sub-lct Riallineamento LODCMRIG (prog = com)
new-p-rd/new-p-wr/new-c-*/new-r-* Aggiornamento contatori a video (flush ogni 50 record)
check-messaggio-logfile / set-logfile-su-client Notifica anomalie e conversione percorso log

Note

  • Operazione distruttiva sulle chiavi: modifica in place LODPRESC/LODCMTES/LODCMRIG. Il backup .arc proposto prima dell'elaborazione e' la rete di sicurezza; da eseguire a database libero.
  • Il file di log e' {k-program-id}.LOG in ext-sys-dir.
  • A differenza degli altri programmi del batch, COGZA9 usa uno stile piu' moderno (PERFORM UNTIL, EXIT PARAGRAPH, EXIT PERFORM CYCLE) e non PERFORM THRU.