Vai al contenuto

COGR15 - Ricostruzione ricerca: Piano Dei Conti

Sorgente: cbl/cogr15.cbl | Tipo: Programma di menu / elaborazione batch | Program-ID: COGR15

Menu: Sistema > Archivi > Ricostruzioni > Ricerche [Piano Dei Conti]


Scopo

COGR15 svuota e ricostruisce l'archivio di ricerca per stringa del piano dei conti COGSTPCO. Scandisce integralmente il piano dei conti (COGPNCON) e, per ogni conto, spezza la descrizione (pco-des) in parole-chiave di ricerca tramite la subroutine COGS34; per ciascuna parola aggiorna un indice inverso parola -> elenco dei codici conto. E' la struttura usata a runtime dalle finestre di ricerca del piano dei conti per descrizione.

File e tabelle principali

File/Tabella Copybook Uso
COGPNCON cogpncon.fd / cogpncon.cpy (pco-rec) Piano dei conti: sorgente scandita in sequenza su pco-chia; letta la descrizione pco-des
COGSTPCO cogstpco.fd / cogstpco.cpy (stpc-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 COGSTPCO (cogstpco.cpy) - record a lunghezza variabile 17..337:

  • stpc-key1 = stpc-paro1 PIC X(9) + stpc-prog1 PIC 9(4) COMP-4 - parola di 9 byte + progressivo di chiave primaria
  • stpc-ulti PIC 9(8) COMP-4 - puntatore al primo elemento tabellare libero
  • stpc-punt PIC 9(2) - numero elementi presenti (DEPENDING ON)
  • stpc-tabe OCCURS 0..40 PIC 9(10) COMP-4 - elenco codici piano dei conti (pco-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 Piano Dei Conti" 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-pco = 'N' (ricerca piano dei conti non abilitata).
  3. a010 - conferma via acc-conf; ESC esce, prosegue solo con F3.
  4. a020 - svuotamento file: open output cogstpco, close, open i-o cogstpco.
  5. a1-agg-mer - posiziona COGPNCON con start su pco-chia = low-value e scandisce in sequenza (read cogpncon next):
  6. per ogni conto passa pco-des a COGS34 (s34-key = 'RICPCO', s34-l-str = 40) che restituisce le parole di ricerca;
  7. esegue aggpal per inserire nell'indice ciascuna parola col codice conto.
  8. aggpal - per ogni parola non vuota costruisce stpc-key1 (parola + progressivo 0) e legge COGSTPCO:
  9. parola non presente -> aggpal-1: crea il record base della parola con il codice conto come primo elemento;
  10. parola presente con stpc-ulti < 40 -> aggpal-2: aggiunge il codice conto in coda (rewrite);
  11. record saturo (stpc-ulti >= 40): div1 = stpc-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 stpc-ulti sul record base. Il codice conto pco-chia viene trasferito in wzeta10 PIC 9(10) prima di scriverlo negli elementi stpc-tabe.
  12. A fine scansione mostra "Fine Elaborazione".
  13. fine - close cogpncon cogstpco cogtabel, z-99-exit-program, exit program.

Sottoprogrammi chiamati

Programma Ruolo
COGS34 Tokenizzatore: spezza pco-des in parole-chiave di 9 byte secondo i parametri della tabella #70 individuata da s34-key = 'RICPCO'; interfaccia util-s34 (utils34.cpy). Richiamato con call + cancel a ogni conto

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-pco (cnfgrice.cpy) Abilitazione ricerca piano dei conti: se N la ricostruzione e' bloccata
#70 RICPCO - (letta da COGS34) Parametri di spezzatura descrizione in parole di ricerca conti

Note

  • 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 conti.
  • Il paragrafo search-file (con go to ... depending on w-ind-fl) e' presente ma di fatto marginale: il ramo di apertura di COGSTPCO e' commentato (*ste); l'apertura effettiva del file di destinazione avviene in a020.
  • Etichetta di menu e funzione reale coincidono.