Téléchargement des produits


Version anglaise


 

ADELIA

VADELIA

SADELIA

WADELIA


(I/B)

(I/B) (C/S)

(B) (S)

(I/B) (C/S)




Paragraphe d'utilisation

Tous


Syntaxe

CONV_DONNEES donneesAConvertir formatOrig  donneesConverties formatDest


donneesAConvertir

<variable alpha> | <variable image> | <variable classe> | *FICHIER_SOURCE(NomFichier)

NomFichier

<variable alpha> | <constante alpha>

formatOrig

<variable alpha | constante alpha> | rien

donneesConverties

<variable alpha> | <variable image> | <variable classe> | *FICHIER_DEST(NomFichier)

NomFichier

<variable alpha> | <constante alpha>

formatDest

<variable alpha | constante alpha> | rien


Description

L'instruction CONV_DONNEES permet de convertir le format des données contenues dans le paramètre donneesAConvertir.


Le paramètre formatOrig définit le format d'origine des données. Il est obligatoire lorsque la donnée d'origine n'est pas une variable de type classe sinon il ne doit pas être indiqué.


Le paramètre formatDest définit le format dans lequel les données doivent être converties. Il est obligatoire lorsque la donnée de destination n'est pas une variable de type classe sinon il ne doit pas être indiqué.


Le paramètre donneesConverties reçoit en retour les données converties.


Le paramètre donneesAConvertir contient les données à convertir.

Lorsque *FICHIER_SOURCE est indiqué, donneesAConvertir doit contenir le nom du fichier à convertir.

Dans le cas contraire, il contient les données à convertir, soit dans une variable alpha, soit dans une variable image.


Le paramètre formatOrig définit le format d'origine des données.

Les valeurs possibles sont :

    • 'JSON'   => Format JSON

    • 'JSON(suiteOptionsJson)'
      SuiteOptionsJson => optionJson | optionJson, suiteOptionsJson

optionJson => *WITH_ROOT | *DIGIT_NAME

Le mot-clé *WITH_ROOT est valable seulement lorsque l'on souhaite désérialiser la donnée Json en classe.
S'il est indiqué, la conversion s'attend à avoir l'attribut racine dans la donnée Json.

Sinon une exception est levée.

Le mot-clé *DIGIT_NAME force l'ajout d'un préfixe _DIGIT_ devant les noms de balises commençant par un chiffre (pour éviter d'avoir un fichier invalide en XML).

    • 'XML'   => Format XML

    • 'XML(suiteOptionsXml)'
      SuiteOptionsXml => optionXml | optionXmlsuiteOptionsXml

optionXml =>

<suitePathsBalises> |

*ARRAY=<suitePathsBalises> |

*IGNORE_EMPTY_ARRAY |

*ALPHA=< suitePathsAlpha>


suitePathsBalises : lorsqu'il est précédé du mot clé *ARRAY ou lorsqu'il n'est précédé d'aucun mot clé, indique les arborescences (séparées par une virgule) des balises que l'on souhaite sérialiser en tableau JSON. Lorsqu'il est précédé du mot clé *ALPHA, il indique les arborescences des balises que l'on souhaite convertir systématiquement en valeur alphanumérique (même si la valeur correspond à une valeur numérique).


Par défaut, on tente de convertir chaque valeur d'abord en numérique puis en décimale et en booléen. Si aucune conversion n'est possible le type de la valeur est alphanumérique.


Chaque arborescence doit commencer par le caractère "/".


L'option *ARRAY s'applique uniquement pour les balises contenant un seul élément. Les balises contenant plusieurs éléments sont naturellement converties en tableau JSON.

(par exemple : "XML(/LES_PERSONNES/Personnes)" ).


L'option *IGNORE_EMPTY_ARRAY doit être utilisée avec *ARRAY et permet d'obtenir des tableaux JSON vides :
"node":[]
Sans cette option, une balise XML vide convertie avec l'option *ARRAY génère le nœud JSON "node":[""]



Le paramètre donneesAConvertir reçoit en retour les données dans leur nouveau format.

Lorsque *FICHIER_DEST est indiqué, les données sont stockées dans un fichier. Dans le cas contraire, elles sont stockées dans une variable de type alpha ou image.


Le paramètre formatDest définit le format de conversion.

Les valeurs possibles sont :

    • 'JSON' => Format JSON

    • 'JSON(suiteOptionsJson)
      SuiteOptionsJson => optionJson | optionJson, suiteOptionsJson
      optionJson =>
      < suiteNomsNoeuds > |  *DIGIT_NAME | *WITH_ROOT

      suiteNomsNoeuds : format JSON où il est indiqué les noms des nœuds (séparés par une virgule) correspondant à une collection JSON d'éléments qu'on veut rendre anonyme en JSON.
      Pour indiquer le nœud racine, il est possible d'utiliser la valeur spéciale *ROOT  (par exemple : 'JSON(*ROOT , Personnes)' )
      Le mot-clé *DIGIT_NAME supprime l'éventuel préfixe _DIGIT_ devant les noms des balises XML pour définir le nom du nœud JSON (cas où le nom réel du nœud JSON doit commencer par un chiffre ce qui est invalide en XML).
      *WITH_ROOT : lorsque la donnée d'origine est une classe, ce mot-clé indique que l'on souhaite prendre en compte l'attribut racine lors de la sérialisation.


    • 'XML'    => Format XML

Remarques : lorsque l'on souhaite convertir les données au format XML et que les données converties sont contenues dans un fichier, l'encodage est forcé en UTF-8.

Lorsque les données à convertir sont contenues dans une variable alphanumérique, elles doivent être dans la page de code de la plateforme courante.  

Lorsque les données converties sont contenues dans une variable alphanumérique, elles sont encodées dans la page de code de la plateforme courante.

Dans le cas d'une conversion de JSON vers XML, si le document JSON n'a pas de nœud racine alors le document XML aura un nœud racine de nom "Root".

Il est possible de tester le mot réservé *CODE_RETOUR après l'exécution de l'instruction.

Si l'opération s'est bien déroulée, *CODE_RETOUR renvoie *NORMAL.


Voici les différents résultats :

-1 : Paramètres invalides.

-2 : Erreur à la lecture du fichier contenant les données à convertir.

-3 : Erreur à l'écriture du fichier contenant les données converties.

-4 : Erreur à la lecture du champ image contenant les données à convertir.

-5 : Les formats de conversion spécifiés ne sont pas corrects.

-6 : Erreur lors de la sérialisation de la classe en donnée JSON.

-7 : Erreur lors de la désérialisation de la donnée JSON.

1 : Erreur interne.

2 : Erreur lors de l'analyse des données XML.

3 : Erreur lors de l'analyse des données JSON.

4 : Erreur lors de la conversion de caractères UTF8 en EBCDIC ou UCS2 (AS400).

5 : Le nom d'un élément de la donnée JSON en entrée n'est pas valide.




Exemple 1 :

CONV_DONNEES *FICHIER_SOURCE('c:\doc\personnes.xml') 'XML'  *FICHIER_DEST('c:\doc\personnes.json') 'JSON'



Exemple 2 :

Alpha(250) DATA_ORIG

IMAGE DATA_DEST


DATA_ORIG = '{"LES_PERSONNES":{"Personnes":[{"Nom":"RONDO","Prenom":"Paul","DateNaissance":"1980-10-30"},{"Nom":"DOLA","Prenom":"Laura","DateNaissance":"1990-11-01"}]}}'


CONV_DONNEES DATA_ORIG 'JSON' DATA_DEST 'XML'


Rend DATA_DEST avec la valeur <?xml version="1.0" encoding="UTF-8" standalone="yes"?><LES_PERSONNES> <Personnes><Nom>RONDO</Nom><Prenom>Paul</Prenom><DateNaissance>1980-10-30</DateNaissance></Personnes> <Personnes><Nom>DOLA</Nom><Prenom>Laura</Prenom><DateNaissance>1990-11-01</DateNaissance></Personnes></LES_PERSONNES>


Exemple 3 :

DATA_ORIG =' <?xml version="1.0" encoding="UTF-8" ?><LES_PERSONNES> <Personnes><Nom>RONDO</Nom><Prenom>Paul</Prenom><DateNaissance>1980-10-30</DateNaissance> </Personnes> <Personnes><Nom>DOLA</Nom><Prenom>Laura</Prenom><DateNaissance>1990-11-01</DateNaissance></Personnes></LES_PERSONNES>


CONV_DONNEES DATA_ORIG 'XML'  DATA_DEST 'JSON'


Rend DATA_DEST avec la valeur '{"LES_PERSONNES":{"Personnes":[{"Nom":"RONDO","Prenom":"Paul","DateNaissance":"1980-10-30"},{"Nom":"DOLA","Prenom":"Laura","DateNaissance":"1990-11-01"}]}}'


Exemple 4 :

DATA_ORIG =' <?xml version="1.0" encoding="UTF-8" ?><LES_PERSONNES> <Personnes><Nom>RONDO</Nom><Prenom>Paul</Prenom><DateNaissance>1980-10-30</DateNaissance> </Personnes> <Personnes><Nom>DOLA</Nom><Prenom>Laura</Prenom><DateNaissance>1990-11-01</DateNaissance></Personnes></LES_PERSONNES>


CONV_DONNEES DATA_ORIG 'XML'  DATA_DEST 'JSON(*ROOT, Personnes)'


Rend DATA_DEST avec la valeur '[{"Nom":"RONDO","Prenom":"Paul","DateNaissance":"1980-10-30"}, {"Nom":"DOLA","Prenom":"Laura","DateNaissance":"1990-11-01"}]



Exemple 5 :

DATA_ORIG =' <?xml version="1.0" encoding="UTF-8" ?><LES_PERSONNES> <Personnes><Nom>RONDO</Nom><Prenom>Paul</Prenom><DateNaissance>1980-10-30</DateNaissance> </Personnes></LES_PERSONNES>' 

  

CONV_DONNEES DATA_ORIG 'XML (*ARRAY=/LES_PERSONNES/Personnes) '  DATA_DEST 'JSON' 

  

Rend DATA_DEST avec la valeur ' {"LES_PERSONNES":{"Personnes":[{"Nom":"RONDO","Prenom":"Paul","DateNaissance":"1980-10-30"}]}}' 



Exemple 6 :

DATA_ORIG ='<?xml version="1.0" encoding="UTF-8" ?><LES_PERSONNES> <Personnes></Personnes></LES_PERSONNES>' 


CONV_DONNEES DATA_ORIG 'XML (*IGNORE_EMPTY_ARRAY, *ARRAY=/LES_PERSONNES/Personnes'  DATA_DEST 'JSON' 

  

Rend DATA_DEST avec la valeur ' {"LES_PERSONNES":{"Personnes":[]}} '


Exemple 7 :

DATA_ORIG ='<?xml version="1.0" encoding="UTF-8" ?><LES_SALARIES> <Salaries><Matricule>52413</Matricule><Nom>RONDO</Nom><Prenom>Paul</Prenom><DateNaissance>1980-10-30</DateNaissance></Salaries></LES_SALARIES> ' 

  

CONV_DONNEES DATA_ORIG 'XML(*ALPHA=/LES_SALARIES/Salaries/Matricule) '  DATA_DEST 'JSON' 


Rend DATA_DEST avec la valeur '{"LES_SALARIES":{"Salaries":{"Matricule":"52413","Nom":"RONDO","Prenom":"Paul","DateNaissance":"1980-10-30"}}}' 



Exemple 8 :

DATA_ORIG ='<?xml version="1.0" encoding="UTF-8" ?><LES_SALARIES> <Salaries><Matricule>52413</Matricule><Nom>RONDO</Nom><Prenom>Paul</Prenom><DateNaissance>1980-10-30</DateNaissance></Salaries></LES_SALARIES> ' 

  

CONV_DONNEES DATA_ORIG 'XML(*ARRAY=/LES_SALARIES/Salaries, *ALPHA=/LES_SALARIES/Salaries/Matricule) '  DATA_DEST 'JSON' 

  

Rend DATA_DEST avec la valeur ' {"LES_SALARIES":{"Salaries":[{"Matricule":"52413","Nom":"RONDO","Prenom":"Paul","DateNaissance":"1980-10-30"}]}} ' 


Exemple 9 :

DATA_ORIG = '{"n1" : "valn1" , "2x" : "val2x"}'


CONV_DONNEES DATA_ORIG 'JSON(*DIGIT_NAME)' DATA_DEST 'XML'


Rend DATA_DEST avec la valeur <?xml version="1.0" encoding="UTF-8" standalone="yes"?><Root><n1>valn1</n1><_DIGIT_2x>val2x</_DIGIT_2x>/Root>



↑ Haut de page

  • Aucune étiquette