Re: Ancora su Trasferimento TXT da IFS a file AS...
[ Nouvelle discussion
| Répondre au groupe
|
it.comp.as400 ]
On 15 Lug, 12:27, "L'Enigmista" <S...@tuasorella.it> wrote:
> >> 11 - Il parametro RCDDL per un file di flusso può essere solo *CR,
> >> *CRLF,
> >> *LF o *LFCR e per un file di database può essere *EOR o un valore
> >> valido.
> >> Correzione . . . :
> >> 11 - Usare il valore RCDDLM valido per il parametro.
> >Come si può chiaramente leggere nel messaggio di errore, devi
> >specificare il parametro RCDDLM(*CRLF).
> >Il formato record mi sembra fisso, quindi dovrai anche specificare
> >DTAFMT(*FIXED) e valutare i successivi parametri.
> >Leggi l' help del comando.
>
> Si ci ho provato a leggere ma essendo molto a digiuno di conoscenza su
> queste problematiche mi sono trovato molto in difficoltà:
> ho messo RCDDLM(*CRLF) e DTAFMT(*FIXED) ma quando dò invio quest'ultimo
> parametro mi richiede anche il parametro File di definizione campo:
> FLDDFNFILE.
> Sono andato a vedere e ho visto che va creato questo file FDF come spiega
> qui:
> CPYFRMIMPF FROMSTMF('/dir1/FixedFormatFile.stmf') TOFILE(MYLIB/TOFILE) +
> RCDDLM(*CRLF) DTAFMT(*FIXED) FLDDFNFILE(MYLIB/FDF)
> The DDS for the FLDDFNFILE(MYLIB/FDF) looked like this:
>
> ******* Beginning of data ****
> R FDFREC
> ONEFLD 20
> ******* End of data **********
>
> The DDS for the TOFILE(MYLIB/TOFILE) looked like this:
>
> ****** Beginning of data ****
> R MYREC
> FLDA 10
> FLDB 10
> ******* End of data **********
>
> UPDDTA can be used to insert records into the Field Definition File ( UPDDTA
> MYLIB/FDF ). The records in the Field Definition File describe the Field
> Name, Starting and Ending positions of each field, and the Null Character
> value. The last record to be inserted will contain the value of *END to
> signify that we are done describing how the data in the FROMFILE or FROMSTMF
> should be mapped to the fields in the TOFILE. Each column must be separated
> by a blank character. Each row must be sequentially ordered. A DSPPFM of
> MYLIB/FDF looks similar to the following:
>
> *...+....1....+....2....+....3....+....4
> FLDA 1 10 0
> FLDB 11 20 0
> *END
Questo è l' help in italiano:
Note per dati fissi: Le informazioni per ogni campo del file a
formato fisso devono essere nel seguente ordine:
Nome Posizione Posizione Posizione carattere
campo iniziale finale nullo
_________________________________________________________
Campo1 1 10 11
Campo2 12 15 16
*END
Le informazioni per questo file di definizione campo sono:
1. Il Nome campo è il nome del campo nel file di destinazione.
2. La posizione iniziale indica la posizione byte nel file di
provenienza per iniziare a copiare dati per il campo.
3. La Posizione finale indica la posizione byte nel file di
provenienza per terminare la copia dei dati per il campo.
4. La Posizione carattere nullo rappresenta la posizione byte nel
file di provenienza per indicare se il campo è nullo. Un
valore di 'Y' significa che il campo è nullo. Un valore di 'N'
significa che il campo non è nullo. Se questo valore è 0, non
viene fornito alcun carattere nullo.
5. *END è l'indicatore per la fine del file di definizione campo.
Il file di definizione campo per l'esempio sopra riportato è:
Campo1 1 10 11
Campo2 12 15 16
*END
6. Un'alternativa per la creazione del File di definizione campo
è rappresentata dall'utilizzo della parola chiave *COL invece
dei nomi effettivi delle colonne. *COL indica le posizioni dei
dati nel file di flusso per tutte le colonne nei file di
destinazione elencati in ordine.
Un esempio del file corrispondente sopra File di definizione
campo utilizzando *COL:
*COL 1 10 11
*COL 12 15 16
*END
> Mi sembra di capire che per ogni riga FLDA, FLDB, io avrò gli 0 finali pechè
> non ho caratteri separatori;
No, lo 0 specifica che non c'è l' indicatore di valore nullo.
> Crearsi questo file e manutenerlo mi sembra un pò noioso...
Crearlo sì, ma non mi sembra che abbia bisogno di molta manutenzione.
Inoltre ti garantisce massima flessibilità, perchè ti permette di fare
una copia tipo *MAP, cioè con posizioni diverse delle colonne.

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|