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

configuration Apache, Zend et PHP , Web services
Répondre
amorf26
Messages : 3
Enregistré le : ven. 29 janv. 2021, 10:19:32

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

Message 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.

nbonnet
Messages : 197
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

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

Message 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 !
Nathanaël

SebastienB
Messages : 51
Enregistré le : ven. 22 janv. 2021, 10:21:13

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

Message 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.

monthi
Messages : 77
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

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

Message par monthi »

Bonjour

Sujet déjà évoquer sur le forum FOOTING

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

Cdlt

amorf26
Messages : 3
Enregistré le : ven. 29 janv. 2021, 10:19:32

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

Message 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 'È?Ê■■Ã/%ËÁ■■ËÑ:Á■■■}/Ñ%%Á■í>ÑÉÍÁ■■■ÅÑÃÈäÇ?ÑÄÁ■■■■■■■■ÅÑÃÈäÇ?'

monthi
Messages : 77
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

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

Message 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

amorf26
Messages : 3
Enregistré le : ven. 29 janv. 2021, 10:19:32

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

Message par amorf26 »

Bonjour,

Merci beaucoup, ça marche bien mieux. :)

Cdlt

Répondre