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 alpm-num(numero), regenerando la chiave; - LODCMTES: riscrive
lct-prouguale alct-cod; - LODCMRIG: riscrive
lcr-proguguale alcr-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¶
apri/a4: apre i file e verificaaz-lod-presc = "C"; se diverso, avvisa e termina.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 eseguesalva-archivi.salva-archivi: chiude ciascuna delle tre tabelle, ne copia il file in un.arcdatato (COPIAF) e la riapre. Se un backup fallisce, chiede viaDIALOGSse proseguire comunque.a-90: dopo la conferma finale esegueelabora-prescrizionieelabora-commesse.elabora-prescrizioni: scorreLODPRESCper chiavechia4; per ogni record conpro <> numcancella il record vecchio (del), impostapro = nume riscrive (wr) con la nuova chiave, riposizionandosi. Aggiorna i contatori letti/scritti (tm-p-rd/tm-p-wr).elabora-commesse: scorreLODCMTES; per ogni testata impostapro = code riscrive (rwr), poi elabora le sue righe.elabora-righe-commessa-sub-lct: per la testata in area record, scorreLODCMRIGfiltrando sulcr-com = lct-chia1, impostaprog = come riscrive.check-messaggio-logfile: se sono state registrate anomalie, comunica all'utente il percorso del file di log (convertito su client se thin-client viaCOPIAF).
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
.arcproposto prima dell'elaborazione e' la rete di sicurezza; da eseguire a database libero. - Il file di log e'
{k-program-id}.LOGinext-sys-dir. - A differenza degli altri programmi del batch, COGZA9 usa uno stile piu' moderno (
PERFORM UNTIL,EXIT PARAGRAPH,EXIT PERFORM CYCLE) e nonPERFORM THRU.