Page 1 sur 1

Fonctionnement du XML-INTO via handler

Posté : lun. 10 oct. 2011, 13:46:15
par FabriceF
Bonjour,

Dans le PauseCafé n°41 présentant XML-INTO, je souhaiterais savoir dans l'utilisation via un handler à quoi correspond la valeur suivant le DIM(?). Est ce le nombre de fois dont je trouve la balise <XXX> recherchée ?
Dans mon cas, je ne la connais pas.
Est on obligé de passer par un tableau ?

Merci

XML-INTO

Posté : lun. 10 oct. 2011, 15:04:39
par cmasse
vous ne connaissez pas le nomdre d’occurrence et c'est normal... c''est pour cela qu'est fait le HANDLER.


DIM correspond au nombre d’occurrence que vous recevez lors d'UN appel, XML-INTO gère le nomre d'appel.

par exemple, vous mettez DIM(10) et il y a 72 occurrences, votre handler est appelé 8 fois, 7 fois avec 10 occurrences, 1 fois avec 2 !

c'est la raison pour laquelle vous recevez le nombre d’occurrences transmises

Code : Tout sélectionner

   D handler         PR            10I 0
   D commarea                     255A
   D uneDS                               dim&#40;10&#41;
   D                                     CONST
   D nbelem                        10U 0 value
Dans notre exemple "nbelem"

(sans texte)

Posté : lun. 10 oct. 2011, 16:01:35
par FabriceF
Merci pour cette précision ;

pour autant en utilisant DIM(10), le traitement ne me prend que l'occurence n°1 puis n°10 puis n°20 etc ...

Avez vous une idée du problème ? (ci joint le code)

Voici la définition de la procédure dans le programme "main"

Code : Tout sélectionner

DtrtAni           pr            10I 0                         
D  flag                           n                           
D  ani                                likeds&#40;anids&#41;           
D                                     dim&#40;10&#41;                 
D                                     const                   
D  nbElem                       10I 0 Value     
et dans ma procédure

Code : Tout sélectionner

PtrtAni           B                                                      
 * Paramètres en entrée                                                  
D                 PI            10I 0                                    
D flag                            n                                      
D ani                                 likeds&#40;ANIDS&#41;                      
D                                     dim&#40;10&#41;                            
D                                     const                              
D nbElem                        10I 0 value     
puis la boucle

Code : Tout sélectionner

for i = 1 to nbelem;    
... write 
endfor;

(sans texte)

Posté : lun. 10 oct. 2011, 16:20:48
par FabriceF
Ne pas tenir compte de ma dernière demande ; le flag me faisait sortir trop tôt de la boucle