Cycle de vie d’une activité BAM

 

Il est important de comprendre le mécanisme de création d’une activité au sein du BAM.

Imaginons l’activité défini avec les items suivants :

Bam01 

Une activité est crée lors de la première saisie d’une information. (Par exemple, le mapping de la shape Receive de l’orchestration sur le StartProcess)

Bam02

 

A cette instant, un GUID est renseigné dans l’item ActivityID.(Ce GUID peut-être mappé comme étant l’InterchangeID ou bien une clé unique fonctionnelle)

A partir de ce moment, le cycle de vie de l’activité est liée au cycle de vie de l’instance qui l’a démarré. Par cela, il faut comprendre que :

  • Si notre activité est crée à partir d’une orchestration, elle sera complète à la fin de l’orchestration
  • Si notre activité est crée à partir d’un port, elle sera complète à la fin de ce port
  • Si l’on effectue la tâche suivante :
      • mapping  de StartActivity sur un port de reception physique (pas la shape de l’orchestration)
      • mapping de données fonctionnelles dans l’orchestration
  • Cela va crée deux activités distinctes avec les renseignements mappés pour chacune mais aucune des deux ne sera complètes.
      • On peut penser qu’il serait judicieux de mapper deux fois l’interchangeID dans l’item ActivityID afin d’enrichir la première activité crée dans le port. La réponse est non, car cela produirai une erreur d’unicité dans la base. (il va essayer de créer une nouvelle activité avec un ActivityID déjà en base…)

        C’est pour cela que la continuation existe. Elle permet de prolonger le cycle de vie de l’activité sur plusieurs instances différentes afin d’enrichir l’activité en cours. Le principe est le suivant :

        • Initialisation de la continuation en utilisant une valeur unique (cela garde l’activité “en vie”) dans la port de reception par exemple. On nomme la continuation, ContinuationTest

        image     image

        • Poursuite de la continuation (au début de l’orchestration) en renseignant cette valeur dans un continuationID . (que l’on nomme de la même manière que la continuation)

         image

        A savoir :

        • L’utilisation d’un Suspend, Terminate ne termine pas l’activité. Le BAM considère que toute activité qui se termine est un process metiers qui s’est correctement déroulé. Dès l’instant qu’un Suspend ou Terminate est utilisé alors selon la philosophie du BAM, le process metiers est en erreurs et l’activité ne peut être terminé.(Personnellement ce principe ne m’arrange pas dans mon utilisation du BAM)
        • L’utilisation du bam au sein d’une loop va créer plusieurs instance BAM
        • Il n’est pas possible de mapper une activité BAM lorsque l’orchestration commence ou finit avec les shapes suivantes:
          • Message Assignment
          • Transform
          • Group (Task)
          • Suspend
          • Loop (While)
          • Branch
          • Terminate
          • Throw
          • Catch
          • While shape
        • Il existe d’autres petits soucis  et detournement que nous évoquerons plus tard.

        Voici le lien microsoft concernant ce dernier point : http://msdn.microsoft.com/en-us/library/aa561699%28BTS.20%29.aspx

        This entry was posted in BAM. Bookmark the permalink.

        Leave a Reply

        Fill in your details below or click an icon to log in:

        WordPress.com Logo

        You are commenting using your WordPress.com account. Log Out / Change )

        Twitter picture

        You are commenting using your Twitter account. Log Out / Change )

        Facebook photo

        You are commenting using your Facebook account. Log Out / Change )

        Google+ photo

        You are commenting using your Google+ account. Log Out / Change )

        Connecting to %s