Fil d’Ariane du forum – Vous êtes ici :ForumForums techniques: AS/400Comment copier un fichier json su …
Vous devez vous identifier pour créer des messages et des sujets.

Comment copier un fichier json sur AS400

Bonjour,

j'ai essayé de copier un fichier json de l'iFS vers l'AS400. ce n'est pas top au niveau des données.
    DCL        VAR(&PFICIFS) TYPE(*CHAR) LEN(200) +
VALUE('/DSSQADAQ/Input/DFP/REQUEST.CATALOG/+
Warning/MsgEnAttente/8d4b02155fb51d4e000007+
32-2020-12-22-10.30.13.139000.json')
j'ai essayé par un CPYFRMIMPF
CPYFRMIMPF FROMSTMF(&PFICIFS) TOFILE(QTEMP/DSPJSON)
RCDDLM(*ALL)
les données  ne sont pas top 🙁
      ....5...10...15...20...25...30...35...40.
1   '£■ÄÍËÈ?_ÁÊ■■£■/ÄÄ?Í>È+Í_ÂÁÊ■■■■■■■

61   '
Merci d'avance pour votre aide.
Bon we !

Bonjour

il faut spécifier le ccsid de destination

CPYFRMIMPF FROMSTMF(&PFICIFS) TOFILE(QTEMP/DSPJSON)
RCDDLM(*ALL) TOCCSID(819)

 

 

Bonjour,

j'ai toujours le problème de conversion 🙁

ÄÍËÈ?_ÁÊ■■£/ÄÄ?Í>Èá_/Ñ%■■■Èø?>ÄÇ/ÍÈ ÁÌÈÀ/_/ÊÈÄ?_'

voici mon code du CLP

DCL VAR(&PFICIFS) TYPE(*CHAR) LEN(200) +
VALUE('/DSSQADAQ/Input/DFP/ADD.DELIVERY.ADD+
RESS/Warning/MsgEnAttente/TSTAMO.json')
DCL VAR(&PBUFFER) TYPE(*CHAR) LEN(30000)
DCLF FILE(QTEMP/DSPJSON)
/* lecture du contenu du json */
/* Fichier temporaire pour r{cup{rer le contenu du json */
DLTF FILE(QTEMP/DSPJSON)
MONMSG MSGID(CPF0000)
CRTPF FILE(QTEMP/DSPJSON) RCDLEN(30000)
/* Copie contenu fichier IFS json dans table Iseries */
CPYFRMIMPF FROMSTMF(&PFICIFS) TOFILE(QTEMP/DSPJSON) +
TOCCSID(819) RCDDLM(*ALL)
MONMSG MSGID(CPF2817) EXEC(DO)
GOTO CMDLBL(FIN)
ENDDO
LECT: RCVF
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(FIN)) /* Fin +
de fichier */
CHGVAR VAR(&PBUFFER) VALUE(&DSPJSON)

 

Bonjour

 

quelle est le CCSID du fichier DSPJSON?

Si il est a 65535 il n'y aura pas de conversion de données.

Il faut qu'il soit  297 ou 1147 (pour la France)

 

petit erreur dans ma réponse précédent c'est le parametre FROMCCSID qui doit être a 819 pour un CPYFRMIMPF

Cdlt

 

quelle est le CCSID du fichier DSPJSON? il est en 65535

Il faut qu'il soit  297 ou 1147 (pour la France)  >> j'ai essayé de le créer avec 1147 j'ai cette erreur dans le CRTPF

ID message . . . . . . : CPD7307 Gravité . . . . . . . : 30
Type de message . . . : Diagnostic
Date d'envoi . . . . . : 20/01/21 Heure d'envoi . . . . : 09:27:38

Message . . . . : Valeur de CCSID non admise avec FILETYPE(*DATA).
Cause . . . . . : Lorsque FILETYPE(*DATA) est indiqué, seules les valeurs
*HEX et 65535 sont admises pour le paramètre CCSID.

 

J'ai mis 819 dans FROMCCSID dans le CPYFRM sachant que le fichier que je créé par QTEMP je ne peux pas changer le CCSID

CRTPF FILE(QTEMP/DSPJSON) RCDLEN(30000)
ntenu fichier IFS json dans table Iseries */
CPYFRMIMPF FROMSTMF(&PFICIFS) TOFILE(QTEMP/DSPJSON) +
FROMCCSID(819) RCDDLM(*ALL)

 

Toujours mon problème de conversion 🙁

 

 

Bonjour

et en creant in fichier avec une DDS dans l'as400  1 champ de 256 par ex , plutot que le crtpf qui cree un fichier 'à plat'

 

J'ai finalement réussi par ADELIA c'est plus simple.

Merci à tous 🙂