Vai al contenuto

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-paro1 PIC X(9) + stcc-prog1 PIC 9(4) COMP-4 - parola di 9 byte + progressivo di chiave primaria
  • stcc-ulti PIC 9(8) COMP-4 - puntatore al primo elemento tabellare libero
  • stcc-punt PIC 9(2) - numero elementi presenti (DEPENDING ON)
  • stcc-tabe OCCURS 0..40 PIC 9(9) COMP-4 - elenco codici centri di costo (cco-chia)

Flusso principale

  1. main / a000 - imposta prog-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.
  2. Legge la configurazione ricerche COGTABEL tipo 70 (arg RICE, key DEFINE) via rd-tab; blocca con messaggio se assente o se euta-c008-cco = 'N' (ricerca centri di costo non abilitata).
  3. a010 - conferma via acc-conf; ESC esce, prosegue solo con F3.
  4. a020 - svuotamento file: open output cogstcco, close, open i-o cogstcco.
  5. a1-agg-mer - posiziona COGCCOPR con start su cco-chia = low-value e scandisce in sequenza (read cogccopr next):
  6. per ogni centro passa cco-des a COGS34 (s34-key = 'RICCCO', s34-l-str = 40) che restituisce le parole di ricerca;
  7. esegue aggpal per inserire nell'indice ciascuna parola col codice centro.
  8. aggpal - per ogni parola non vuota costruisce stcc-key1 (parola + progressivo 0) e legge COGSTCCO:
  9. parola non presente -> aggpal-1: crea il record base della parola con il codice centro come primo elemento;
  10. parola presente con stcc-ulti < 40 -> aggpal-2: aggiunge il codice centro in coda (rewrite);
  11. record saturo (stcc-ulti >= 40): div1 = stcc-ulti / 40, div2 = resto; resto 0 -> aggpal-3 (nuovo record pagina div1), altrimenti -> aggpal-4 (aggiunge alla pagina div1 in posizione div2+1); in entrambi i casi aggiorna stcc-ulti sul record base. Il codice centro cco-chia viene trasferito in wzeta09 PIC 9(9) prima di scriverlo negli elementi stcc-tabe.
  12. A fine scansione mostra "Fine Elaborazione".
  13. 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-file e' presente ma marginale: il ramo di apertura di COGSTCCO e' commentato (*ste); l'apertura effettiva avviene in a020.
  • Etichetta di menu e funzione reale coincidono.