Activités d'itération

Les activités d'itération sont un autre type d'activité loop.

Activité repeatUntil

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.

Syntaxe

<repeatUntil standard-attributes>
   standard-elements
   activity
   <condition expressionLanguage="anyURI"?>bool-expr>/condition>
</repeatUntil>

Activité forEach

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.

Syntaxe

<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>

Correspondance

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.


Created October 8, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com