Appeler un pipeline dans une orchestration avec BizTalk Server 2006 R2

Il peut être intéressant d’appeler directement un pipeline à l’intérieur d’une orchestration. Pourquoi faire ? Et bien par exemple :

J’ai besoin de décompresser un fichier en entrée, et il en résulte plusieurs fichiers (un binaire et un xml dans le cas présent). Le fait d’appeler un pipeline va me permettre de faire un traitement bien spécifique dans mon orchestration en fonction du message en cours. D’autre part, cela permet de garder un pipeline component générique.
On peut aussi souhaiter saisir les exceptions afin de les traiter dans l’orchestration à l’aide d’un scope sans modifier le pipeline components.

Les limitations
: il n’est pas possible d’utilisé l’option Recoverable  interchanges et il est nécessaire d’utilisé un scope atomique pour les pipelines de réceptions.
Cependant l’utilisation est très simple. Les deux exemples suivant montrent l’utilisation d’un pipeline de réception et d’envoi.

Ici on recoit un message que l’on doit découper, on utilise le pipeline dans la shape ExecuteRcvPipe, puis on utilise une boucle afin de traiter chaque message issue de la sortie du pipeline.

Référence necessaire : Microsoft.XLANGs.Pipeline et Microsoft.BizTalk.Pipeline

image

 

image

Enfin on assigne chaque message en utilisant la méthode GetCurrent(OutputMsg)

image

 


Pour un pipeline d’envoi la logique est seulement inversé, on boucle pour ajouter les messages à une variable de type Microsoft.XLANGs.Pipeline.SendPipelineInputMessages

image

On crée le message de sortie dans un construct message

image


Source :
http://geekswithblogs.net/sthomas/archive/2005/06/16/44023.aspx
Sample BizTalk 2006 R2 : SDKSamplesPipelinesComposedMessageProcessor

This entry was posted in BizTalk. 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