Where allowed to run: All environments (*ALL) Threadsafe: No |
Parameters Examples Error messages |
https://www.neroni.it/NERONI2/JFROMCSV.NERONI2.HTML
Il comando permette di caricare un file di flusso in formato CSV dall'IFS ad un file fisico dell'AS400.
Normalmente il file di flusso proviene da un foglio Excel scaricato in formato CSV e giacente in un indirizzario IFS.
Per indirizzario IFS si intende un indirizzario giacente su AS400 ed indirizzabile tramite il comando WRKLNK. Sul lato pc si accede al medesimo indirizzario essenzialmente tramite FTP. In una rete ben fatta e' solitamente possibile vedere un indirizzario IFS anche tramite la gestione risorse del pc.
Il comando e' una semplice interfaccia verso il CPYFRMIMPF veramente delicatuccio per un rapido uso.
Purtroppo, inoltre, il caricamento da Excel tende cronicamente a fallire a causa di dati sporchi che vorrebbero entrare in campi numerici. Non volendo intervenire a monte sulla qualita' dei dati nel foglio CSV da caricare, si consiglia quindi di trasportare egualmente tali dati in un transito dotato di soli campi alfanumerici.
A tale scopo, la presente utility fornisce anche un file di comodo JFROMCSV1 da usare come prototipo per caricare qualunque flusso CSV con un tracciato di 256 campi alfanumerici (il numero massimo di colonne in Excel) con campi lunghi fino a 100 caratteri. Se si trovano dati oltre i 100 caratteri, si puo' usare un secondo prototipo JFROMCSV2 con un tracciato di 163 campi alfanumerici lunghi fino a 200 caratteri. 163 perche', moltiplicato per la lunghezza dei campi 200, raggiunge la insuperabile lunghezza massima di un record nel database. I campi di questi due file sono tutti alfanumerici. Lo scopo e' il caricamento a tutti i costi dei dati su AS400 in un transito da elaborare in seconda battuta con programma di pulizia ad hoc dei dati sporchi. In tal modo si possono preelaborare quei dati che non e' possibile caricare, cosi' come sono, nei campi numerici, loro destinazione finale.
Top |
Keyword | Description | Choices | Notes |
---|---|---|---|
PROTOFILE | Prototype file | Qualified object name | Required, Positional 1 |
Qualifier 1: Prototype file | Name, JFROMCSV1, JFROMCSV2 | ||
Qualifier 2: library | Name, *LIBL | ||
TOFILE | To database file | Single values: *PROTOFILE Other values: Qualified object name |
Required, Positional 2 |
Qualifier 1: To database file | Name | ||
Qualifier 2: library | Name, QTEMP, *LIBL, *PROTOLIB | ||
FROMCSV | From CSV file (no extension) | Path name, *PROTOFILE, *TOFILE | Required, Positional 3 |
FROMDIR | From directory | Path name, *USR, '/home/mydir', *UF, *XX | Optional, Positional 4 |
RPLTOFILE | Replaces existing to file | *NO, *YES | Optional, Positional 5 |
FROMRCD | Copy from record number | Decimal number, 2 | Optional, Positional 6 |
REFPGM | Reference program for messages | Name, *CPP | Optional, Positional 7 |
Top |
Nome del file dati contenente il tracciato secondo il quale deve essere ricaricato il file CSV proveniente da Excel.
Il valore e' obbligatorio.
Valori permessi:
Valori speciali:
Nome della libreria in cui risiede il file.
Valori permessi:
Valori speciali:
Top |
Nome del file AS400 destinato a contenere i dati provenienti dal file CSV a sua volta scaricato da Excel.
Se il file ricevente preesiste ed e' diverso dal prototipo, viene prima cancellato e poi ricreato.
Il valore e' obbligatorio.
Valori permessi:
Valori speciali:
Nome della libreria in cui risiede il file ricevente.
Valori permessi:
Valori speciali:
Top |
Nome del file di provenienza giacente nell'IFS in formato CSV, scaricato da Excel e da caricare nel file AS400 di destinazione.
Il nome qui riportato deve essere senza estensione poiche' l'estensione obbligatoria del file diprovenienza e' sempre ".CSV".
Il valore e' obbligatorio.
Valori permessi:
Valori speciali:
Top |
Nome dell'indirizzario IFS in cui giace il file di provenienza da caricare.
Tutto quanto e' indirizzabile nel parametro OBJ del comando WRKLNK puo' essere indirizzato anche in questo parametro.
Si raccomanda tuttavia che sia un sottoindirizzario di "/home", come consigliato dalla letteratura per i dati utente.
Valori permessi:
Valori speciali:
Top |
Valori permessi:
Top |
Copia i record dal file di provenienza a partire dal numero progressivo di record qui richiesto.
Normalmente il primo record di un file CSV contiene le intestazioni nella forma di testo che non trovano posto nel tracciato del file AS400 corrispondente. Il parametro corrente permette di saltare quei primi record CSV che darebbero errore sul file ricevente.
Valori permessi:
Valori speciali:
Top |
Nei tool complessi a piu' livelli, il presente parametro compare in tutti i comandi di interfaccia dal primo all'ultimo dei chiamati in cascata e permette di condividere il programma di riferimento al cui chiamante verranno spediti i messaggi emessi da tutti i tool coinvolti.
Il programma di riferimento e' il command processing program del tool di cappello che in cascata chiama tutti gli altri. Il cappello, dopo aver riempito con il proprio nome il parametro "programma di riferimento", lo passa anche ai tool chiamati che lo utilizzano per spedire i propri messaggi.
Valori permessi:
I messaggi emessi dal programma corrente saranno indirizzati al chiamante del programma di riferimento, preferibilmete un video comandi.
Utile quando il comando corrente e' chiamato da un altro comando con il quale condivide il presente parametro.
Valori speciali:
I comandi da questo chiamati (e che prevedono lo stesso parametro) faranno riferimento al programma corrente e i messaggi emessi da tali programmi saranno indirizzati al chiamante del programma corrente.
Utile quando il comando corrente e' il primo chiamante da un video comandi e a sua volta chiama altri tool condividendo il presente parametro.
Top |
Esempio zero: Crea ambiente di prova
Per costruire l'esempio avendo un file CSV con caratteristiche conosciute, si genera preliminarmente il file CSV in IFS facendo uso del comando JTOCSV e dell'esempio di scarico spiegato nell'help relativo, qui ricapitolato.
Genera un file da scaricare:
> DSPFD FILE(NERONI2/JRSNMSG) TYPE(*MBRLIST) OUTPUT(*OUTFILE) OUTFILE(QTEMP/TEST) Il file di emissione TEST e' stato creato nella libreria QTEMP. Il membro TEST e' stato aggiunto al file di emissione TEST nella libreria QTEMP. 6 record sono stati aggiunti al membro TEST nel file TEST in QTEMP.
Scarica il file CSV:
> JTOCSV FROMFILE(QTEMP/TEST) RMVBLANK(*TRAILING) Copiato il file di database datore QTEMP/TEST nel file IFS ricevente /home/NERONI/QTEMP-TEST.csv > /**/DSPF STMF('/home/NERONI/QTEMP-TEST.csv')
Esempio 1: Carica da IFS un file CSV in un file di database usando come prototipo di definizione il file di database che genero' lo scarico.
Carica il file ottenuto in IFS tramite il soprastante "Esempio zero".
> JFROMCSV PROTOFILE(QTEMP/TEST) TOFILE(TESTRELOAD) FROMCSV('QTEMP-TEST') FROMRCD(3) Copiato il file datore IFS /home/NERONI/QTEMP-TEST.csv nel file di database ricevente QTEMP/TESTRELOAD, prototipo QTEMP/TEST > /**/RUNQRY QRYFILE((QTEMP/TESTRELOAD)) RCDSLT(*YES)
Per vedere il risultato si puo' duplicare ed eseguire il comando prototipo /**/ visibile nel log.
Esempio 2: Carica da IFS un file CSV in un file di database usando come prototipo di definizione un file generico di servizio.
Carica il file ottenuto in IFS tramite il soprastante "Esempio zero".
> JFROMCSV PROTOFILE(JFROMCSV1) TOFILE(TESTRELOAD) FROMCSV('QTEMP-TEST') RPLTOFILE(*YES) FROMRCD(3) Copiato il file datore IFS /home/NERONI/QTEMP-TEST.csv nel file di database ricevente QTEMP/TESTRELOAD, prototipo NERONI2/JFROMCSV1 > /**/RUNQRY QRYFILE((QTEMP/TESTRELOAD)) RCDSLT(*YES)
Per vedere il risultato si puo' duplicare ed eseguire il comando prototipo /**/ visibile nel log.
Top |
Top |