COGD49 - Importazione Abi/Cab Banche¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGD49 |
| Titolo | Importazione Abi/Cab Banche |
| Modulo | Sistema |
| Posizione menu | Sistema > Utility > Importazioni > Abi/Cab Banche |
Scopo e logica generale¶
COGD49 importa l'anagrafica bancaria (codici ABI e sportelli CAB) da file di testo esterni, alimentando la tabella banche COGBNCA. In COGBNCA i record ABI hanno bnc-tipo = "B" (banca, chiave bnc-abi), i record CAB hanno bnc-tipo = "S" (sportello, chiave bnc-abi + bnc-cab).
Il programma supporta due formati di input (tm-tipo-file):
"1"- file ABI/CAB combinato: un unico file a posizioni fisse in cui ogni riga inizia con un tipo record:11= banca (ABI),21= indirizzo sportello (CAB),31= denominazione sportello (CAB). I campi sono letti tramite l'overlayw-inp-rec(wi-tip-11/wi-tip-21/wi-tip-31)."2"- file ABI e CAB separati e delimitati: due file distinti, in cui i campi sono separati da un delimitatore configurabile (tm-tipo-delim: T = tab, P = punto e virgola, V = virgola, S = spazio, A = altro carattere intm-delim). Il parsing avviene campo per campo tramitefill-record/get-token(confill-record-abia 5 campi efill-record-caba 9 campi). E' possibile indicare se la prima riga contiene i nomi dei campi (tm-nome-campi-su-prima) e una data di validita' aggiornamento (tm-data-agg) per filtrare i record.
Il tipo aggiornamento (tm-tipo-agg) governa il comportamento su record gia' presenti:
"M"(Modifica): aggiorna sempre descrizione/indirizzo/localita' dei record esistenti;"A"(Aggiungi campi mancanti): valorizza solo i campi vuoti dei record esistenti;"L"(Log/simulazione): non modificaCOGBNCA, conteggia soltanto cosa verrebbe inserito/aggiornato (contatori "virtuali").
I file selezionati dall'operatore sono trasferiti tra client e server tramite il modulo COPIAF; le anomalie sono registrate su un file di log (logfile) e segnalate a fine elaborazione. La maschera espone contatori progressivi separati per ABI e CAB (letti -l, validi -v, inseriti -i, aggiornati -a).
Flusso principale¶
apri(main): impostaprog-err/w-nome-hlp, eseguectr-abil,z-99-init-program,rd-azi,open-files. Definisce F3 (conferma), crea il pulsante custom "Trova file (F7)", imposta titolo "Importazione file banche".a4: inizializzatab-mascheracon i default (tm-tipo-file = "2",tm-tipo-agg = "M",tm-tipo-delim = "T",tm-nome-campi-su-prima = "S"). TramiteCOPIAFprova a copiare dal server i file templatetababi.txtetababicab.txtverso il client, precompilando i percorsi (tm-file-abi-client,tm-file-cab-client).- Sezioni di accept (
a-tm-tipo-file,a-tm-tipo-delim,a-tm-delim,a-tm-nome-campi-su-prima,a-tm-file-abi-client,a-tm-file-cab-client,a-tm-data-agg,a-tm-tipo-agg): raccolgono i parametri. F7 sui campi file apre il dialog di selezione (C$OPENSAVEBOX). Alcuni controlli sono abilitati/disabilitati in funzione del tipo file. Su ABI, alla validazione, se manca la data aggiornamento (carica-data-agg) la deduce scorrendo il file. F3 su qualsiasi campo va alla conferma. a-richiesta-conferma: verifica finale (x-imposta-conferma), richiesta conferma (acc-conf); apre un nuovo file di log (open-new-logfile) e smista in base atm-tipo-file:"1"->elabora-file-abicab;"2"->elabora-file-abi(se indicato il file ABI) e/oelabora-file-cab(se indicato il file CAB).elabora-file-abicab: copia il file sul server (COPIAF), lo apre e lo scorre; per ogni riga valutawi-tip-rec(11/21/31) e chiamaelabora-abicab-aggiorna-abi/elabora-abicab-aggiorna-cab. In modalita'"L"scrive sul log i totali virtuali.elabora-file-abi: copia e scorre il file ABI delimitato; per ogni record valido (fill-record, 5 campi) leggeCOGBNCA(rd-cogbnca,bnc-tipo = "B"); se esiste aggiorna il sostituto/descrizione (rwr-cogbnca), altrimenti lo inserisce (wr-cogbnca), aggiornando i contatori.elabora-file-cab: copia e scorre il file CAB delimitato; per ogni record valido (fill-record, 9 campi) leggeCOGBNCA(bnc-tipo = "S",bnc-abi+bnc-cab); se non esiste lo inserisce (wr-cogbnca) con indirizzo/localita'/CAP/provincia.elabora-abicab-aggiorna-abi/elabora-abicab-aggiorna-cab: applicano la logica M/A/L suCOGBNCA(rilettura, riscrittura o inserimento), aggiornando i contatori ABI/CAB.- Chiusura conferma: messaggio "Elaborazione terminata", chiude il log (
close-logfile) e, se sono state riscontrate anomalie, ne segnala il file all'utente (check-messaggio-logfile), eventualmente riportandolo sul client viaCOPIAF. fine/z-chiudi:z-close-files, chiude window,z-99-exit-program,exit program.
File e tabelle acceduti¶
| File | Record | Modalita' | Uso |
|---|---|---|---|
| COGBNCA | bnc-rec (bnc-tipo = "B" ABI / "S" CAB) |
I-O | Lettura/inserimento/aggiornamento dei codici ABI e degli sportelli CAB |
| INPFIL | inp-rec (line sequential, 300 char) |
Input | File di testo ABI/CAB da importare (combinato o delimitato) |
| LOGFILE | logfile |
Output | Registro delle anomalie riscontrate durante l'importazione |
COGTABEL (logico feurtab) |
cogfiles.cpy |
Input | File tabelle di sistema (accesso generalizzato) |
Verbi di accesso a COGBNCA (da cogd49.prc): rd-cogbnca, wr-cogbnca, rwr-cogbnca. Il file di input inpfil e' dichiarato nel sorgente (SELECT + FD) e letto con rdnxt-inpfil.
Copybook principali¶
Strutture dati / FD:
- feurtab.fd, cogfiles.cpy - file fisico generalizzato tabelle.
- logfile.fd, logfile.cpy, makelog.cpy - gestione del file di log delle anomalie.
- opensave.def - strutture per il dialog di apertura/salvataggio file (C$OPENSAVEBOX).
- utilopenfile.cpy - utilita' di apertura file.
- l-copiaf.cpy (link-copiaf), u-copiaf.cpy (linkage u-copiaf-...) - interfaccia verso il modulo di copia file COPIAF.
- utils43.cpy, utils44.cpy, utils52.cpy - aree di utilita' (stringhe, date/calendario).
- utilncnf.cpy - accesso a configurazioni/parametri.
- wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy - working-storage standard.
- wcont.cpy (stringhe), wcont1.cpy (linkage) - aree di comunicazione comuni.
GUI:
- mmmask.cpy - framework maschera GUI.
Screen Designer:
- cogd49.select, cogd49.fd, cogd49.wrk, cogd49.decla, cogd49.prc, cogd49-01.scr - artefatti generati dallo Screen Designer. cogd49.prc fornisce i verbi di accesso a COGBNCA.
Routine finali: stato.cpy, stato1.cpy, opengen.cpy, winmsg.cpy, grave.cpy.
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COPIAF | Copia/trasferimento file client-server, informazioni file e conversione percorsi (operazioni copy, fileinfo, convert-path) |
| C$OPENSAVEBOX | Routine di sistema per il dialog di selezione del file da importare (F7) |
Note¶
- Importazione da file di testo verso
COGBNCA(banche/sportelli): a differenza dei programmi di esportazione della stessa famiglia, scrive/aggiorna una tabella indicizzata. - Due formati input alternativi: file combinato a posizioni fisse (record 11/21/31) oppure file ABI + CAB separati e delimitati (delimitatore configurabile tab/
;/,/spazio/altro). - Tre modalita' di aggiornamento (
tm-tipo-agg):"M"sovrascrive,"A"completa solo i campi mancanti,"L"simula (log/conteggio senza scrivere). - Il trasferimento dei file tra client e server e le informazioni sui file passano da
COPIAF; le anomalie confluiscono in un file di log segnalato all'utente a fine elaborazione. - La gestione interattiva dell'archivio banche/sportelli e' documentata in
programmi/coge64.md. - Rientra nel flusso
flussi/sistema-import-export.md(importazioni). source-computer/object-computersono impostati apc-sperry.- Il flusso di elaborazione usa
go to(stile legacy del sorgente originale). - Nessuna configurazione RNEWCONF letta direttamente nel corpo principale.
Documentazione tecnica -- creata 2026-08-06