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-numePIC 9(8) COMP-4 - numero interno progressivo (chiave primaria)ran-chia1=ran-tipoPIC X(1) +ran-anaPIC 9(5) - tipo e codice anagrafica (chiave secondaria)
Flusso principale¶
main / a000- init programma (z-99-init-program),ctr-abil,open-files,rd-azi(dati azienda), accept data di sistema,x-carica-lingua.a4- legge la configurazione ricerche daCOGTABELtipo 70 (argRICE, keyDEFINE) viard-tab:- se la tabella e' assente -> messaggio "Configurazione Assente" e fine;
- se
euta-c008-ana = 'N'(ricerca anagrafiche non abilitata) -> messaggio "Manca Abilitazione" e fine. - Chiede conferma "Confermi ricostruzione legame Anagrafiche/Numero ?" (
acc-conf-custom); solo con F3 prosegue. - Svuotamento file:
close cogracan, poiopen output cogracan(azzera il contenuto),close, poiopen i-o cogracan. Ogni open e' controllata; su errore stato diverso da "00" mostra box-msg e termina. a1-agg-mer- azzera i contatori (anagrafiche lette / raccordi scritti), posizionaCOGGEANAconstartsuana-chia = low-valuee scandisce in sequenza (read coggeana next):- per ogni anagrafica incrementa
w-nume(numero interno); - inizializza
ran-rec, impostaran-nume = w-nume,ran-tipo = ana-tipo,ran-ana = ana-cod; write ran-recsuCOGRACAN.- A fine scansione visualizza i totali (anagrafiche lette in
ctr-m-l, raccordi scritti inctr-m-s) e mostra "Fine Elaborazione". 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-numeviene 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 daCOGRACANper popolare le stringhe di ricercaCOGSTANA. - Il file viene azzerato con la sequenza
open output/close/open i-o: se l'open outputfallisce 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-ssono aggiornati a video ogni 10 record (test sul campo-decine).