COGR16 - Ricostruzione ricerca: Centri Di Costo¶
Sorgente: cbl/cogr16.cbl | Tipo: Programma di menu / elaborazione batch | Program-ID: COGR16
Menu: Sistema > Archivi > Ricostruzioni > Ricerche [Centri Di Costo]
Scopo¶
COGR16 svuota e ricostruisce l'archivio di ricerca per stringa dei centri di costo COGSTCCO. Scandisce integralmente l'anagrafica centri di costo (COGCCOPR) e, per ogni centro, spezza la descrizione (cco-des) in parole-chiave di ricerca tramite la subroutine COGS34; per ciascuna parola aggiorna un indice inverso parola -> elenco dei codici centro di costo. E' la struttura usata a runtime dalle finestre di ricerca dei centri di costo per descrizione.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGCCOPR | cogccopr.fd / cogccopr.cpy (cco-rec) |
Anagrafica centri di costo: sorgente scandita in sequenza su cco-chia; letta la descrizione cco-des |
| COGSTCCO | cogstcco.fd / cogstcco.cpy (stcc-rec) |
Indice di ricerca per parola: file di destinazione, svuotato e ricostruito |
| COGTABEL | cogtabel.fd / cogtabel.cpy (euta-rec) + cnfgrice.cpy |
Tabella #70 (arg RICE, key DEFINE): abilitazione ricerche |
feurtab (cogfiles.cpy) |
cogfiles.cpy |
File tabellare generale usato dal framework |
Struttura del record COGSTCCO (cogstcco.cpy) - record a lunghezza variabile 17..177:
stcc-key1=stcc-paro1PIC X(9) +stcc-prog1PIC 9(4) COMP-4 - parola di 9 byte + progressivo di chiave primariastcc-ultiPIC 9(8) COMP-4 - puntatore al primo elemento tabellare liberostcc-puntPIC 9(2) - numero elementi presenti (DEPENDING ON)stcc-tabeOCCURS 0..40 PIC 9(9) COMP-4 - elenco codici centri di costo (cco-chia)
Flusso principale¶
main / a000- impostaprog-err,ctr-abil,open-files,rd-azi; disegna la finestra di stato (vis-win) con intestazione "Stringhe Centri di Costo" e i tasti ESC/F3.- Legge la configurazione ricerche
COGTABELtipo 70 (argRICE, keyDEFINE) viard-tab; blocca con messaggio se assente o seeuta-c008-cco = 'N'(ricerca centri di costo non abilitata). a010- conferma viaacc-conf; ESC esce, prosegue solo con F3.a020- svuotamento file:open output cogstcco,close,open i-o cogstcco.a1-agg-mer- posizionaCOGCCOPRconstartsucco-chia = low-valuee scandisce in sequenza (read cogccopr next):- per ogni centro passa
cco-desa COGS34 (s34-key = 'RICCCO',s34-l-str = 40) che restituisce le parole di ricerca; - esegue
aggpalper inserire nell'indice ciascuna parola col codice centro. aggpal- per ogni parola non vuota costruiscestcc-key1(parola + progressivo 0) e leggeCOGSTCCO:- parola non presente ->
aggpal-1: crea il record base della parola con il codice centro come primo elemento; - parola presente con
stcc-ulti < 40->aggpal-2: aggiunge il codice centro in coda (rewrite); - record saturo (
stcc-ulti >= 40):div1 = stcc-ulti / 40,div2 = resto; resto 0 ->aggpal-3(nuovo record paginadiv1), altrimenti ->aggpal-4(aggiunge alla paginadiv1in posizionediv2+1); in entrambi i casi aggiornastcc-ultisul record base. Il codice centrocco-chiaviene trasferito inwzeta09PIC 9(9) prima di scriverlo negli elementistcc-tabe. - A fine scansione mostra "Fine Elaborazione".
fine-close cogccopr cogstcco cogtabel,z-99-exit-program,exit program.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGS34 | Tokenizzatore: spezza cco-des in parole-chiave di 9 byte secondo i parametri della tabella #70 individuata da s34-key = 'RICCCO'; interfaccia util-s34 (utils34.cpy). Richiamato con call + cancel a ogni centro |
Le restanti routine (stato file stato, apertura open1, messaggistica winmsg, errori grave, schermo scree) sono incluse via copybook.
Configurazioni (COGTABEL / RNEWCONF)¶
| Tabella | Arg | Key | Campo | Uso |
|---|---|---|---|---|
| #70 | RICE | DEFINE | euta-c008-cco (cnfgrice.cpy) |
Abilitazione ricerca centri di costo: se N la ricostruzione e' bloccata |
| #70 | RICCCO | - | (letta da COGS34) | Parametri di spezzatura descrizione in parole di ricerca centri di costo |
Note¶
- Struttura e logica sono le stesse di COGR15 (piano dei conti), con la sola differenza dell'archivio sorgente (
COGCCOPR), del file di destinazione (COGSTCCO), della chiave COGS34 (RICCCO) e della dimensione del codice memorizzato (9 cifre invece di 10). - Il record di indice usa lo schema a paginazione (record base con progressivo 0 + pagine successive di 40 elementi), che consente a una parola di puntare a piu' di 40 centri di costo.
- Il paragrafo
search-filee' presente ma marginale: il ramo di apertura diCOGSTCCOe' commentato (*ste); l'apertura effettiva avviene ina020. - Etichetta di menu e funzione reale coincidono.