Les activités d'itération sont un autre type d'activité loop.
L'activité repeatUntil est utilisée pour définir que l'activité enfant doit être répétée jusqu'à ce que la <condition> spécifiée soit vérifiée. La <condition> est testée une fois l'activité enfant terminée. L'activité repeatUntil est utilisée pour exécuter l'activité enfant au moins une fois.
<repeatUntil standard-attributes> standard-elements activity <condition expressionLanguage="anyURI"?>bool-expr>/condition> </repeatUntil>
L'activité forEach procède à l'itération de son activité scope enfant exactement N+1 fois (N est égale à <finalCounterValue> moins <startCounterValue>). Si parallel="yes" il s'agit d'un <forEach> parallèle dans lequel N+1 instances de l'activité <scope> incluses doivent se produire en parallèle. Un flux implicite est créé de façon dynamique avec N+1 copies de l'activité <scope> de <forEach> comme enfant. Un <completionCondition> peut être utilisé dans le <forEach> pour permettre à l'activité <forEach> de se terminer sans exécuter ou terminer toutes les branches spécifiées.
<forEach counterName="BPELVariableName" parallel="yes|no" standard-attributes> standard-elements <startCounterValue expressionLanguage="anyURI"?> unsigned-integer-expression </startCounterValue <finalCounterValue expressionLanguage="anyURI"?> unsigned-integer-expression </finalCounterValue> <completionCondition>? <branches expressionLanguage="anyURI"? successfulBranchesOnly="yes|no"?> unsigned-integer-expression </branches> </completionCondition> <scope > </scope> </forEach>
Vous modélisez une activité repeatUntil ou forEach en utilisant un processus avec un type de mise en oeuvre "Boucle" et respectivement un type de boucle "RepeatUntil" ou "Foreach".
L'attribut étendu spécifique à WS-BPEL 2.0 suivant est disponible dans la feuille de propriétés d'un processus ayant un type de mise en oeuvre "Boucle" et un type de boucle "While", "Until" ou "Foreach". Les autres attributs de cet onglet sont identiques à ceux de BPEL4WS 1.1 :
Nom |
Code interne |
Description |
---|---|---|
Langage d'expression |
expressionLanguage |
Spécifie le langage d'expression utilisé dans la condition. Lorsque cet attribut n'est pas spécifié pour une des éléments d'itération, l'attribut hérite sa valeur de l'élément <process>. La valeur par défaut pour cet attribut est : "urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0", qui représente l'utilisation de [XPath 1.0] au sein de WS-BPEL 2.0. |
En outre, les attributs étendus suivants sont disponibles dans la feuille de propriétés d'un processus ayant un type de mise en oeuvre "Boucle" et un type de boucle "Foreach" :
Nom |
Code interne |
Description |
---|---|---|
Nom du compteur |
counterName |
Définit la variable utilisée par l'activité <forEach> afin de stocker le compteur de la boucle. Lors de chaque répétition, une variable de l'attribut xsd:unsignedInt est implicitement déclarée dans le <scope> enfant de l'activité <forEach>. Le nom de la variable implicite est spécifié dans l'attribut CounterName. |
Expression de début du compteur |
startCounterValue |
Permet de calculer la valeur initiale de la variable compteur utilisée par l'activité <forEach>. Est évalué lorsque l'activité <forEach> commence. |
Expression finale du compteur |
finalCounterValue |
Permet de calculer la valeur finale de la variable compteur utilisée par l'activité <forEach>. Est évalué lorsque l'activité <forEach> commence. |
Parallèle |
parallel |
Si la valeur de l'attribut Parallèle est no, l'activité est une activité <forEach> en série. Si la valeur de l'attribut Parallèle est yes, l'activité est une activité <forEach> parallèle. |
Uniquement les branches se terminant par un succès |
SuccessfulBranchesOnly |
L'élément <branches> de l'activité <forEach> représente une expression sous forme d'entier non signé utilisée pour définir une condition de fin. Si la valeur de l'attribut successfulBranchesOnly est no, toutes les activités <scope> qui se sont terminées (par un succès ou non) doivent être comptées. Si la valeur de l'attribut successfulBranchesOnly est yes, seules les activités <scope> qui se sont terminées avec un succès doivent être comptées. |