Vai al contenuto

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'overlay w-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 in tm-delim). Il parsing avviene campo per campo tramite fill-record / get-token (con fill-record-abi a 5 campi e fill-record-cab a 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 modifica COGBNCA, 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

  1. apri (main): imposta prog-err/w-nome-hlp, esegue ctr-abil, z-99-init-program, rd-azi, open-files. Definisce F3 (conferma), crea il pulsante custom "Trova file (F7)", imposta titolo "Importazione file banche".
  2. a4: inizializza tab-maschera con i default (tm-tipo-file = "2", tm-tipo-agg = "M", tm-tipo-delim = "T", tm-nome-campi-su-prima = "S"). Tramite COPIAF prova a copiare dal server i file template tababi.txt e tababicab.txt verso il client, precompilando i percorsi (tm-file-abi-client, tm-file-cab-client).
  3. 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.
  4. 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 a tm-tipo-file:
  5. "1" -> elabora-file-abicab;
  6. "2" -> elabora-file-abi (se indicato il file ABI) e/o elabora-file-cab (se indicato il file CAB).
  7. elabora-file-abicab: copia il file sul server (COPIAF), lo apre e lo scorre; per ogni riga valuta wi-tip-rec (11/21/31) e chiama elabora-abicab-aggiorna-abi / elabora-abicab-aggiorna-cab. In modalita' "L" scrive sul log i totali virtuali.
  8. elabora-file-abi: copia e scorre il file ABI delimitato; per ogni record valido (fill-record, 5 campi) legge COGBNCA (rd-cogbnca, bnc-tipo = "B"); se esiste aggiorna il sostituto/descrizione (rwr-cogbnca), altrimenti lo inserisce (wr-cogbnca), aggiornando i contatori.
  9. elabora-file-cab: copia e scorre il file CAB delimitato; per ogni record valido (fill-record, 9 campi) legge COGBNCA (bnc-tipo = "S", bnc-abi + bnc-cab); se non esiste lo inserisce (wr-cogbnca) con indirizzo/localita'/CAP/provincia.
  10. elabora-abicab-aggiorna-abi / elabora-abicab-aggiorna-cab: applicano la logica M/A/L su COGBNCA (rilettura, riscrittura o inserimento), aggiornando i contatori ABI/CAB.
  11. 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 via COPIAF.
  12. 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-computer sono impostati a pc-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