Vai al contenuto

ASN091 - Caricamento raccordo clienti Assist-Portale da file

Intestazione

Campo Valore
Programma ASN091
Titolo Caricamento da file (raccordo clienti Portale WEB)
Modulo Assist 2.0
Posizione menu Assist 2.0 > Archivi > Portale WEB > Caricamento da file
Sorgente cbl/asn091.cbl (~704 righe)
Tipo Import file Excel/CSV con creazione record COGGENER tipo 'AG'

Scopo

Importa massivamente la tabella di raccordo tra codici cliente del gestionale ("Assist") e codici cliente del portale WEB ("GIS"). Crea record su COGGENER con gnr-tip = 'AG', gnr-parte-1(1:5) = codice cliente Assist, gnr-parte-2 = codice cliente GIS.

Accetta sia file .xls (convertito tramite ESTRXLS) che file di testo con delimitatore configurabile.


Flusso

  1. Init: ctr-abil, z-99-init-program, open-files, rd-azi, x99-load-config
  2. Setup: F1, F3, F8, pulsante custom F7 (trova file)
  3. Input file (a-tm-file): accept percorso file con possibilita' di selezione tramite C$OPENSAVEBOX
  4. Conferma (a-richiesta-conferma) -> validazione (x-imposta-conferma)
  5. Copia file in ext-tmp-dir (gestione thin-client con prefisso @[DISPLAY]:)
  6. Conversione Excel se tm-file-ext = "xls": chiamata ESTRXLS per ottenere .txt con delimitatore ;
  7. Import (b-importa): apertura cogseque in input, scan riga per riga con unstring delimitato da w-delimiter

Logica di import (b-importa)

Per ogni riga letta da cogseque (saltando la riga 1 = intestazione):

  1. unstring seq-rec -> w-seq-cli-gis, w-seq-cli-ass
  2. function numval(w-seq-cli-ass) -> w-cli-ass
  3. Validazioni: codice Assist non zero; per az-personal = "TI" codice >= 50000
  4. Verifica raccordo Assist gia' esistente: st-coggener-notmin con chiave 'AG' + cli-ass, rdnxt, controllo gnr-parte-1(1:5) = w-cli-ass
  5. Verifica cliente Assist in anagrafica: rd-coggeana tipo k-ana-tipo-cli
  6. Verifica codice Portale non spaces
  7. Verifica raccordo Portale gia' esistente: st-coggener-notmin-chia2 (chiave alternativa per gnr-parte-2), rdnxt
  8. Scrittura: wr-coggener con gnr-tip = 'AG', gnr-parte-1(1:5) = w-cli-ass, gnr-parte-2 = w-cli-gis, gnr-prog = 0
  9. add 1 to tm-inseriti

Al termine: messaggio "Raccordi caricati: N".


File acceduti

File Record Modo Uso
COGGENER gnr-rec I-O Tabella raccordi (wr + st-notmin / st-notmin-chia2 / rdnxt) - chiave secondaria coggener.k02 per gnr-parte-2
COGGEANA ana-rec Input Anagrafica clienti per validazione esistenza
cogseque seq-rec x(600) Input File di lavoro line-sequential (assegnato a w-seqname) per leggere il sorgente
cogrisul ris-rec x(120) Output File di risultato/log (aperto e chiuso, attualmente non scritto)

Programmi chiamati (CALL)

Programma Scopo
C$COPY Copia file dal client al server (gestisce thin-client)
C$OPENSAVEBOX Finestra di selezione file (F7)
ESTRXLS Conversione file Excel .xls -> testo delimitato
RNEWCONF Lettura configurazione delimitatore (x99-load-config)

Configurazioni (RNEWCONF)

Indice Gruppo Chiave Variabile Effetto
01 cogesys delimitatore-colonne-excel tm-cfg-delimiter Carattere di separazione colonne (default per file txt)

Linkage

Programma standalone - wcont, wcont1.


Tasti funzione

Tasto Funzione
F3 Conferma e avvia import
F7 Apertura C$OPENSAVEBOX (pulsante custom)
F8 Aiuto
F1 Configurazione

Validazioni input file

Controllo (x-controlla-tm-file) Esito
tm-file = spaces "Nome file obbligatorio"
tm-file contiene > 1 . "Nome file non corretto: impossibile stabilire l'estensione"
Estrazione tm-file-base/tm-file-ext via unstring "." -

La verifica di esistenza fisica del file e' delegata a C$COPY (codice ritorno).


Logica thin-client

Se ext-thin-client = "S", il percorso file passato a C$COPY viene prefissato con @[DISPLAY]: per indicare che il file e' sul client e va trasferito al server. Altrimenti viene usato cosi' com'e'.


Note implementative

  • La prima riga del file viene saltata incondizionatamente (intestazione).
  • Le righe scartate non bloccano l'import: viene mostrato un box-msg per ogni errore e si passa alla successiva.
  • Le configurazioni az-personal = "TI" attivano la soglia di codice cliente >= 50000 (cliente Telecom Italia).
  • Il file cogrisul e' aperto in output ma nel codice corrente non viene scritto (placeholder per log di errori - era previsto un controllo a-controlla rimasto commentato).
  • Il programma NON cancella i raccordi esistenti: solo inserimenti.
  • L'extensione del file viene preservata nel nome temporaneo (import.{ext}), poi se e' xls viene convertita in import.txt.

Copybook utilizzate

wgrave, wnscr, wopenf, wstato, cogazien, utilncnf, utilopenfile, utilestrxls, opensave.def, coggener.k02. Copybook .prc/.fd/.select/.wrk generate da Screens.