L'activité scope est utilisée pour définir une activité imbriquée sans ses propres variables associées, correlationSets, faultHandlers, compensationHandler, terminationHandler, et <eventHandlers (onAlarm and OnMessage).
WS-BPEL ne permet pas de définir de <partnerLinks> sous une activité scope. Il inclut un nouvel élément nommé <messageExchanges> qui peut être partagé par les activités receive, reply et invoke.
L'activité BPEL scope définit un élément de sous-processus qui inclut des variables de contexte et un gestionnaire d'erreur par défaut. Elle peut également inclure un gestionnaire par erreur, un gestionnaire de compensation, et plusieurs gestionnaires d'événement (onAlarm ou onMessage). Ces gestionnaires sont également des activités exécutées lorsque l'événement correspondant se produit.
<scope isolated="yes|no"? exitOnStandardFault="yes|no"? standard-attributes> standard-elements <partnerLinks>? </partnerLinks> <messageExchanges>? </messageExchanges> <variables>? </variables> <correlationSets>? </correlationSets> <faultHandlers>? </faultHandlers> <compensationHandler>? </compensationHandler> <terminationHandler>? </terminationHandler> <eventHandlers>? </eventHandlers> activity </scope>
Vous modélisez une activité scope en utilisant un processus composite. Vous définissez une activité complexe comme une boîte noire. Pour afficher des activités atomiques, vous devez ouvrir de façon explicite le sous-diagramme du processus composite. Les différents types de sortie seront spécifiés sur le flux sortant du processus composite : le flux avec un stéréotype <<Fault>> cible l'activité fault handler. Le flux avec un stéréotype <<Timer>> cible l'activité timeout handler. Le flux avec un stéréotype <<Compensation>> cible l'activité compensation handler.
Les attributs étendus suivants s'appliquent à l'activité scope et sont disponibles dans sa feuille de propriétés :
Nom |
Code interne |
Description |
---|---|---|
Sortie sur erreur standard |
exitOnStandardFault |
Si la valeur de l'attribut exitOnStandardFault sur une portée est défini à "yes", le processus doit quitter immédiatement. |
Isolé |
Isolated |
Lorsque l'attribut Isolé est défini à "yes", la portée fournit le contrôle de concurrence en gouvernant l'accès aux variables partagées. Une telle portée est appelée portée sérialisable. Une portée sérialisable ne peut pas être imbriquée. Une portée signalée par isolated="yes" doit être une portée située en bout d'arborescence. |