Partager via


Utilisation des interfaces de pipeline

Un composant de pipeline est un composant .NET ou COM qui implémente un ensemble d'interfaces prédéfinies en vue d'interagir avec le moteur de messagerie BizTalk. Suivant la fonctionnalité du composant, différentes interfaces doivent être implémentées. Cette rubrique présente ces interfaces et certaines de leurs méthodes.

Avertissement

Si vous créez un composant de pipeline personnalisé avec COM, vous devez configurer votre composant de sorte qu'il utilise le modèle MTA (Multi-Threaded Apartment). Faute de quoi, l'appel de votre composant échouera avec une erreur E_NOINTERFACE.

IPipelineContext

Tous les composants de pipeline peuvent utiliser des méthodes IPipelineContext pour accéder à toutes les interfaces spécifiques au traitement des documents. L’interface IPipelineContext fournit les fonctionnalités suivantes :

  • Elle permet aux composants d'extraire les paramètres d'étape et de pipeline ambiants.

  • Elle permet aux composants de récupérer les usines de messages et les messages. Grâce à ces usines, les composants peuvent créer divers objets nécessaires à leur exécution.

  • Elle permet aux composants de récupérer les spécifications de document, à savoir un schéma XSD et des annotations.

IBaseComponent

Cette interface est obligatoire pour tous les composants afin de fournir les informations de base les concernant.

IComponent

Cette interface est implémentée par tous les composants de pipeline, à l'exception des assembleurs et des désassembleurs, afin de récupérer des messages du moteur BizTalk Server en vue de leur traitement et de les retransmettre une fois traités au moteur.

Execute. méthode appelée par le moteur pour transmettre le message d'entrée au composant et récupérer le message traité depuis le composant.

IPropertyBag, IPersistPropertyBag

Les composants de pipeline doivent implémenter IPersistPropertyBag pour recevoir ses informations de configuration. Cette interface et IPropertyBag sont les interfaces standard. Pour plus d'informations sur ces interfaces, reportez-vous à la documentation du kit de développement (SDK) Microsoft .NET Framework.

IDisassemblerComponent

Un composant de désassemblage est un composant de pipeline qui reçoit un message en entrée et produit zéro ou plusieurs messages en sortie. Les composants de désassemblage sont utilisés pour fractionner des échanges de messages en documents individuels. Un composant désassembleur doit implémenter les méthodes de l’interface IDisassemblerComponent pour obtenir des messages de BizTalk Server pour le traitement et pour transmettre les documents désassemblé à BizTalk Server.

Méthode Description
Désassembler Effectue le désassemblement du document entrant pInMsg.
GetNext Obtient le message suivant dans l'ensemble de messages résultant de l'exécution du désassembleur. Retourne la valeur NULL s’il n’y a plus de messages.

Si vous souhaitez écrire un composant de désassembleur qui prenne en charge le traitement des échanges récupérables, vous devez suivre les points suivants :

  1. Rendez les flux d'entrée aptes à une recherche en les enveloppant dans un flux VirtualStream().

  2. Dans GetNext(), créez une logique permettant de déterminer un message incorrect. Lorsqu'un message est incorrect, définissez BTS.MessageDestination = "SuspendQueue" et renvoyez le message dans GetNext().

  3. Si le message est correct, définissez BTS.SuspendMessageOnRoutingFailure = True et renvoyez le message dans GetNext().

IAssemblerComponent

Un composant d'assemblage est un composant de pipeline qui reçoit plusieurs messages en entrée et produit un message en sortie. Les composants d’assemblage sont utilisés pour collecter des documents individuels dans le lot d'échange de messages.

Notes

Dans cette version de BizTalk Server, la fonctionnalité d’assemblage n’étant pas utilisée, BizTalk Server passe toujours un document à l’entrée du composant.

Un composant assembleur implémente les méthodes IAssemblerComponent appelées par le moteur BizTalk Server au moment de l’exécution.

Méthode Description
AddDocument Ajoute le document pInMsg à la liste des messages qui seront inclus dans l’échange.
Assembler Construit l'échange à partir des messages ajoutés par la méthode précédente. Retourne un pointeur vers le message assemblé.

IProbeMessage

Tout composant de pipeline (général, assemblage ou désassemblement) peut implémenter IProbeMessage s’il nécessite une fonctionnalité de détection de message. Un composant d’interrogation est utilisé dans les phases de pipeline qui ont le mode d’exécution FirstMatch . Dans ces phases, BizTalk Server donne le message au composant, et la méthode Probe examine le début du message pour déterminer si le composant reconnaît le format du message.

Méthode Description
Sonde Cette méthode accepte le message pInMsg et retourne True si le format est reconnu ou False dans le cas contraire.

INamedItem

Il s'agit de l'interface d'aide permettant d'accéder aux schémas de document à partir du code géré et non géré.

INamedItemList

Il s'agit de l'interface d'aide permettant d'accéder aux schémas de document à partir du code géré et non géré.

IDocumentSpec

Les composants de pipeline peuvent utiliser des méthodes de l’interface IDocumentSpec pour effectuer des actions spécifiques au document, telles que le déplacement des propriétés de contenu vers le contexte et le retour, l’accès aux schémas de document, etc.

Méthode Description
DocType Retourne le type du document actuel.
DocSpecName Retourne le nom de la spécification du document actuel.
GetSchemaCollection Retourne la liste des schémas du document actuel.
GetBodyPath Retourne le chemin XPath du nœud dans le document où débute le corps.
GetDistinguishedPropertyAnnotationEnumerator Retourne un énumérateur de dictionnaire de toutes les annotations de propriété de champ distinctif.
GetPropertyAnnotationEnumerator Retourne un énumérateur de toutes les annotations de propriété.

IComponentUI

Les composants de pipeline doivent implémenter cette interface afin d'être utilisés dans l'environnement du Concepteur de pipeline.

Méthode Description
Icône Fournit l'icône associée au composant.
Procéder à la validation Le Concepteur de pipeline appelle cette méthode avant la compilation du pipeline afin de s'assurer que toutes les propriétés de configuration sont correctement définies.

La propriété Icon renvoie un IntPtr. L’exemple C# suivant montre comment retourner un IntPtr.

static   ResourceManager resManager = new ResourceManager("ResourceManager", Assembly.GetExecutingAssembly());  
...  
[Browsable(false)]  
public IntPtr Icon  
{  
   get  
   {  
      return ((Bitmap)resManager.GetObject("MyIcon")).GetHicon();  
   }  
}  

Pour plus d’informations, consultez Interface IComponentUI (COM) dans les instructions de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.

Voir aussi

Développement des composants de pipeline personnalisés
CustomComponent (exemple BizTalk Server)