Page 1 sur 1

Comment copier un fichier json de l'IFS vers l'AS400

Posté : ven. 29 janv. 2021, 10:32:27
par amorf26
Bonjour,

j'ai essayé de copier un fichier json de l'iFS vers l'AS400 avec un CLP ce n'est pas top au niveau des données.
/*-------------------------------------------------------------------*/ 20/01/11
700 DCL VAR(&PFICIFS) TYPE(*CHAR) LEN(200) +
800 VALUE('/DSSQADAQ/Input/DFP/CREATE.ORDER/War+
900 ning/MsgEnAttente/669fc66e600ed5c100547770-+
1000 2021-01-26-18.20.58.235000.json')
1100 DCL VAR(&PBUFFER) TYPE(*CHAR) LEN(30000)
1200 DCLF FILE(QTEMP/DSPJSON)
1300 /* lecture du contenu du json */
1400 /* Fichier temporaire pour r{cup{rer le contenu du json */
1500 DLTF FILE(QTEMP/DSPJSON)
1600 MONMSG MSGID(CPF0000)
1700 CRTPF FILE(QTEMP/DSPJSON) RCDLEN(30000)
1800 /* Copie contenu fichier IFS json dans table Iseries */
1900 CPYFRMIMPF FROMSTMF(&PFICIFS) TOFILE(QTEMP/DSPJSON) +
2000 FROMCCSID(819) RCDDLM(*ALL)
2100 MONMSG MSGID(CPF2817) EXEC(DO)
2200 GOTO CMDLBL(FIN)
2300 ENDDO
2400 LECT: RCVF
2500 MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(FIN)) /* Fin +
2600 de fichier */
2700 CHGVAR VAR(&PBUFFER) VALUE(&DSPJSON)
2800
2900 FIN:
3000 ENDPGM

Le résultat :(
> EVAL &PBUFFER
&PBUFFER =
....5...10...15...20...25...30...35...40...45...50...
1 '£■?ÊÀÁÊäÊÁ/ÈÑ?>@/ÈÁ■■■■■■■■■■■■■}■■■■■■■■■■■■■
61 '

Merci d'avance pour votre aide.

Re: Comment copier un fichier json de l'IFS vers l'AS400

Posté : ven. 29 janv. 2021, 12:52:25
par nbonnet
Bonjour,

Quel est le CCSID du fichier contenant le JSON ? Est-ce bien 819 ? Cela correspond également à l'encodage des données à l'intérieur (l'attribut CCSID du fichier peut ne pas représenter l'encodage réel) ?

Il risque de tout façon d'avoir un problème à la copie :
Quel est le CCSID du fichier créé avec la commande CRTPF ?
Chez moi 65535, même avec un job en 1147 !

Re: Comment copier un fichier json de l'IFS vers l'AS400

Posté : ven. 29 janv. 2021, 14:12:26
par SebastienB
Bonjour,

Pouvez-vous expliciter le besoin initial ? Il existe peut-être d'autres solutions ...
Dans quelle version d'OS êtes-vous ?

Séb.

Re: Comment copier un fichier json de l'IFS vers l'AS400

Posté : ven. 29 janv. 2021, 18:19:02
par monthi
Bonjour

Sujet déjà évoquer sur le forum FOOTING

1900 CPYFRMIMPF FROMSTMF(&PFICIFS) TOFILE(QTEMP/DSPJSON) +
2000 TOCCSID(1147) RCDDLM(*ALL)

Cdlt

Re: Comment copier un fichier json de l'IFS vers l'AS400

Posté : mar. 09 févr. 2021, 18:49:29
par amorf26
Je suis en version V7R1M0

J'ai besoin de copier un contenu json de l'AS400 vers IFS et ensuite de le récupérer sur l'AS400.

Voici mes commandes :
QSYS/CPYTOIMPF FROMFILE(BIB/FILE) TOSTMF('REP IFS FICHIER') STMFCCSID(120
8) RCDDLM(*CRLF) STRDLM(*NONE) RMVBLANK(*TRAILING) FLDDLM(X'05') NULLIND(
*NO) DECPNT(*COMMA)

CPYFRMIMPF FROMSTMF(&PFICIFS) TOFILE(QTEMP/DSPJSON) +
FROMCCSID(1208) RCDDLM(*CRLF) +
STRDLM(*NONE) RMVBLANK(*TRAILING) +
FLDDLM(X'05') DECPNT(*COMMA)

Quand je récupère sur l'AS400 j'ai des données erronnées

....5...10...15...20...25...30...35...40...45...50...55...60
1 '£■?ÊÀÁÊäÊÁ/ÈÑ?>@/ÈÁ■■■■■■■■■■■■■}■■■■■■■■■■■■■■■?ÊÀÁÊäÍÊÊÁ>Ä'
61 'µ■■■áíê■■■/ÀÎ/>È/ÅÁä?ÀÁ■■■■■■■■■■■?ÊÑÅÑ>}Ñ_ÁËÈ/_ø■■■■■■■■■■■'
121 '■■}■■■■■■■■■■■■■■■ÅÑÃÈêÁÃÍË/%■■■■■■ÁÌÈÁÊ>/%!ÊÀÁÊ+Í_ÂÁÊ■■■■■■'
181 '■■■■■■■■■ÄÍËÈ?_ÁÊ■■£■/ÄÄ?Í>È+Í_ÂÁÊ■■■■■■/ÄÄ?Í>Èá_/Ñ%■■■ø/È/Ä'
241 'Ç?>■ ÃÊÁÁ■ÃÊ■■■ÈÑÈ%Á■■■■■■■Ã?ÊÁ>/_Á■■■ä<!á■■■ËÍÊ>/_Á■■■@íâ!ñ'
301 'ë■■■?ÊÀÁÊä?>È/ÄÈá_/Ñ%■■■ÄÇ%?Á■■ ?ÍÈ%??,■ÃÊ■■■ÁÌøÊÁËËã%/Å■■Ã/'
361 '%ËÁ'■■øÊ?ÀÍÄÈË■■$£■ÑÈÁ_ä?ÀÁ■■■■■■■■■■■■■■■ÑÈÁ_{Í/>ÈÑȵ■■■■■?'
421 'ÊÀÁÊ<Ñ>Á+Í_ÂÁÊ■■■■■ÅÊ?ËËí>ÑÈ&ÊÑÄÁ■■■■■■■■■■■ËÈ?Ä, Î/Ñ%/ÂÑ%ÑÈ'
481 'µëÈ/ÈÍË■■■■■/Î/Ñ%/ÂÑ%Ñȵ■■■@ÑËø?>ÑÂ%Á■■■?ÃÃÁÊ<Ñ>Áñ>ÀÑÄ/È?Ê■■'
541 'Ã/%ËÁ■■ÑÈÁ_ä?__ÁÊÄÑ/%êÁÃÁÊÁ>ÄÁ■■■ñ■■■■■■■■■■■■ÅÑÃÈñÈÁ_ñ>ÀÑÄ/'
601 'È?Ê■■Ã/%ËÁ■■ËÑ:Á■■■}/Ñ%%Á■í>ÑÉÍÁ■■■ÅÑÃÈäÇ?ÑÄÁ■■■■■■■■ÅÑÃÈäÇ?'

Re: Comment copier un fichier json de l'IFS vers l'AS400

Posté : sam. 13 févr. 2021, 18:53:05
par monthi
Bonjour

lorsque l'on crée un fichier physique sans DDS celui est crée avec un CCSID à 65535 donc pas de conversion

Donc soit on utilise un fichier avec DDS afin d'avoir un CCSID différent de 65535 (297 ou 1147)
soit on précise le CCSID de destination (paramètre TOCCSID) la commande CPYFRMIMPF

Cdlt

Re: Comment copier un fichier json de l'IFS vers l'AS400

Posté : lun. 15 févr. 2021, 09:22:40
par amorf26
Bonjour,

Merci beaucoup, ça marche bien mieux. :)

Cdlt