Vai al contenuto

COGR13 - Ricostruzione ricerca: Legame Anagrafiche/Numero

Sorgente: cbl/cogr13.cbl | Tipo: Programma di menu / elaborazione batch | Program-ID: COGR13

Menu: Sistema > Archivi > Ricostruzioni > Ricerche [Legame Anagrafiche/Numero]


Scopo

COGR13 svuota e ricostruisce da zero il file di raccordo COGRACAN, che associa a ogni anagrafica cliente/fornitore/socio (COGGEANA) un numero interno progressivo. Questo numero interno e' la chiave "compatta" usata dagli archivi di ricerca per stringa delle anagrafiche (COGSTANA, popolato da COGR14): la tabella degli indici memorizza i numeri interni, non la chiave tipo+codice, per contenere l'occupazione.

La ricostruzione serve quando COGRACAN risulta disallineato rispetto a COGGEANA (record mancanti, numerazione corrotta). Il programma scandisce integralmente le anagrafiche e riassegna la numerazione da 1 in avanti.

File e tabelle principali

File/Tabella Copybook Uso
COGGEANA cogfiles.cpy (ana-rec) Anagrafica cli/for/soci: sorgente scandita in sequenza sulla chiave primaria ana-chia
COGRACAN cogr13.fd / cogracan.cpy (ran-rec) Raccordo anagrafica/numero: file di destinazione, svuotato e ricostruito
COGTABEL cogfiles.cpy (euta-rec) + cnfgrice.cpy Tabella #70 (arg RICE, key DEFINE): abilitazione ricerche

Struttura del record COGRACAN (cogracan.cpy):

  • ran-chia = ran-nume PIC 9(8) COMP-4 - numero interno progressivo (chiave primaria)
  • ran-chia1 = ran-tipo PIC X(1) + ran-ana PIC 9(5) - tipo e codice anagrafica (chiave secondaria)

Flusso principale

  1. main / a000 - init programma (z-99-init-program), ctr-abil, open-files, rd-azi (dati azienda), accept data di sistema, x-carica-lingua.
  2. a4 - legge la configurazione ricerche da COGTABEL tipo 70 (arg RICE, key DEFINE) via rd-tab:
  3. se la tabella e' assente -> messaggio "Configurazione Assente" e fine;
  4. se euta-c008-ana = 'N' (ricerca anagrafiche non abilitata) -> messaggio "Manca Abilitazione" e fine.
  5. Chiede conferma "Confermi ricostruzione legame Anagrafiche/Numero ?" (acc-conf-custom); solo con F3 prosegue.
  6. Svuotamento file: close cogracan, poi open output cogracan (azzera il contenuto), close, poi open i-o cogracan. Ogni open e' controllata; su errore stato diverso da "00" mostra box-msg e termina.
  7. a1-agg-mer - azzera i contatori (anagrafiche lette / raccordi scritti), posiziona COGGEANA con start su ana-chia = low-value e scandisce in sequenza (read coggeana next):
  8. per ogni anagrafica incrementa w-nume (numero interno);
  9. inizializza ran-rec, imposta ran-nume = w-nume, ran-tipo = ana-tipo, ran-ana = ana-cod;
  10. write ran-rec su COGRACAN.
  11. A fine scansione visualizza i totali (anagrafiche lette in ctr-m-l, raccordi scritti in ctr-m-s) e mostra "Fine Elaborazione".
  12. fine / z-chiudi - z-close-files, chiusura finestra corrente, z-99-exit-program, exit program.

Sottoprogrammi chiamati

Il programma non chiama sottoprogrammi applicativi specifici: usa solo le routine standard di framework incluse via copybook (gestione errori grave, stato file stato/stato1, apertura opengen, messaggistica winmsg, subroutine base mmsubw).

Configurazioni (COGTABEL / RNEWCONF)

Tabella Arg Key Campo Uso
#70 RICE DEFINE euta-c008-ana (cnfgrice.cpy) Abilitazione ricerca anagrafiche cli/for: se N la ricostruzione e' bloccata

Note

  • La numerazione ran-nume viene riassegnata sempre da 1: dopo la ricostruzione i numeri interni delle anagrafiche possono cambiare rispetto a prima. Per questo COGR13 va normalmente eseguito prima di COGR14, che legge i numeri interni da COGRACAN per popolare le stringhe di ricerca COGSTANA.
  • Il file viene azzerato con la sequenza open output / close / open i-o: se l'open output fallisce il file resta nello stato precedente e l'elaborazione si interrompe con messaggio.
  • Etichetta di menu e funzione reale coincidono: il programma crea effettivamente il legame anagrafiche/numero (COGRACAN).
  • I contatori ctr-m-l / ctr-m-s sono aggiornati a video ogni 10 record (test sul campo -decine).