Altova MobileTogether Designer

L'action Loop (voir capture d'écran ci-dessous) itère sur une séquence d'éléments que vous pouvez définir en utilisant les paramètres For Each. Dans le cadre de la boucle, vous pouvez ensuite définir un ensemble d'actions à exécuter pendant chaque itération. Par exemple, dans la capture d'écran ci-dessous, une action Ajouter au nœud est exécutée pour chaque itération. De plus, dans une boucle, une action Break Loop est spécifiée si une certaine condition est remplie.

MTDLoop

La séquence sur laquelle la boucle itère est définie par les expressions XPath des paramètres For Each. Les aspects principaux sont regroupés ci-dessous.

 

For Each: peut être une séquence nommée dans l'expression XPath (par exemple : 1 to 7) ou une séquence obtenue depuis une arborescence XML (par exemple : \$XML1/Produits/Produit sélectionne une séquence de tous les éléments Produit dans l'arborescence \$XML1 ; voir capture d'écran ci-dessus). Si la boucle ne contient pas d'action Break Loop, alors la boucle est quittée lorsque toutes les itérations ont été terminées.

Loop variable : la variable de boucle est la variable qui maintient l'élément de la séquence actuellement itérée. La variable de boucle est identifiée par un nom que vous pouvez saisir en cliquant tout d'abord après le symbole \$ puis en saisissant le nom. Dans la capture d'écran ci-dessus, la variable de boucle est nommée MyLoop. Elle est référencée comme toute autre variable XPath, donc avec un signe \$ précédant son nom (\$MyLoop). La variable fera partie de la boucle ; cela signifie que vous ne pourrez pas référencer la variable dans une expression XPath se trouvant en dehors de la boucle. Dans la capture d'écran ci-dessus, la variable de boucle est référencée dans le paramètre Nouveau nœud de l'action Ajouter au nœud. C'est une référence valide puisque l'action Ajouter au nœud a été créée dans la boucle ; la variable est donc intégrée à ce moment. La variable \$MyLoop affichée dans la capture d'écran ci-dessus contiendra le nœud Product qui est actuellement itéré.

 

Note:Si la variable de boucle utilise des nœuds provenant d'une arborescence, celle-ci sera verrouillée et ne pourra pas pas être modifiée par des actions à l'intérieur de l'action Boucle. Dans notre exemple ci-dessus, l'arborescence \$XML1 sera verrouillée tant que la boucle sera traitée. Les modifications se produisent dans une autre arborescence de source de page (\$XML2): les nouveaux nœuds qui sont ajoutés avec l’action Apposer au nœud sont ajoutés à \$XML2. Si vous souhaitez modifier l’arborescence en cours d’itération, vous pouvez choisir une des méthodes suivantes : au lieu d'itérer directement au-dessus des nœuds de l'arborescence, itèrer sur une séquence à nombre qui est liée à la séquence de nœud dans l'arborescence. Par exemple, au lieu d'itérer sur la séquence de nœuds Produitdans l'exemple de la capture d'écran ci-dessus, nous pouvons itérer au-dessus d'une série de nombres liée à la séquence du nœud. L'expression XPath du paramètre For Each peut être passée de \$XML1/Products/Product en for \$i in 1 to count(\$XML1/Products/Product) return \$i. Il s'agit d’une séquence de nombres qui est maintenant en cours d’itération. (Le nœud Product actuel dans le cadre de la boucle peut être accédé avec l'expression XPath : \$XML1/Products/Product[\$i]).

 

Les actions définies dans la capture d'écran ci-dessus créent une reproduction des cinq premiers éléments Product dans une autre arborescence. Lors du chargement de la page, l'action Loop itère sur les éléments \$XML1/Produits/Produit. Au cours de chaque itération, le nœud de Produit actuel est stocké dans la variable MyLoop. Ce nœud Produit (dans la variable \$MyLoop) est ensuite ajouté en tant que le dernier enfant du nœud \$XML2/Produits. La boucle continue jusqu'à ce que le cinquième élément Produit a été copié depuis \$XML1/Produits à \$XML2/Produits. Voir capture d'écran ci-dessous.

MTDLoopDataCopy

La boucle est quittée soit lorsque toutes les itérations sont terminées, soit lorsqu'une condition est définie sous laquelle une action Break Loop est exécutée (voir rubrique suivante).

 

Fonctions d'extension de MobileTogether

MobileTogether fournit une série de fonctions d'extension XPath qui ont été créées spécifiquement pour l'utilisation dans les designs MobileTogether. Quelques fonctions peuvent être particulièrement utiles avec des actions spécifiques. Par exemple, mt-available -languages() renvoie les langues dans lesquelles la solution est disponible et pourrait, par exemple, être utilisée avec l'action Boîte de messages. Si une fonction est particulièrement pertinente pour cette action, elle se trouvera dans la liste ci-dessous. Pour une liste complète de ces fonctions d'extension et leurs descriptions, voir la page <Fonctions d'extension MobileTogether.

© 2017-2023 Altova GmbH