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 pour l’interaction avec le moteur de messagerie BizTalk. En fonction des fonctionnalités du composant, différentes interfaces doivent être implémentées. Cette rubrique traite de ces interfaces et de certaines de leurs méthodes.

Avertissement

Si vous créez un composant de pipeline personnalisé à l’aide de COM, vous devez configurer votre composant pour utiliser le modèle MTA (Multi-Threaded Apartment). Si ce n’est pas le cas, l’appel de votre composant échoue 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 de documents. L’interface IPipelineContext fournit les fonctionnalités suivantes :

  • Permet aux composants de récupérer les paramètres du pipeline et des configurations de phase ambiants.

  • Permet aux composants de récupérer des messages et des fabriques de messages. Avec ces fabriques, les composants peuvent créer différents objets requis pour l’exécution du composant.

  • Permet aux composants de récupérer les spécifications du document. Une spécification de document est un schéma XSD et des annotations supplémentaires.

IBaseComponent

Tous les composants de pipeline doivent implémenter cette interface pour fournir des informations de base sur le composant.

IComponent

Tous les composants de pipeline, à l’exception des assembleurs et des désassembleurs, implémentent cette interface pour obtenir des messages du moteur BizTalk Server à des fins de traitement et de transmission de messages traités au moteur.

Exécuter. Méthode appelée par le moteur pour transmettre le message d’entrée au composant et récupérer le message traité à partir du 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 logiciel (SDK) Microsoft .NET Framework.

IDisassemblerComponent

Un composant de désassemblement est un composant de pipeline qui reçoit un message en entrée et génère zéro ou plusieurs messages en sortie. Les composants de désassemblage sont utilisés pour fractionner les é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 transmettre des documents désassemblé à BizTalk Server.

Méthode Descriptif
désassembler Effectue le désassemblement du document entrant pInMsg.
GetNext Obtient le message suivant du jeu de messages résultant de l’exécution du désassembleur. Retourne NULL s’il n’y a plus de messages.

Si vous écrivez un composant désassembleur qui prendra en charge le traitement des échanges récupérables, vous devez effectuer les opérations suivantes :

  1. Rendre les flux d’entrée recherchés en les encapsulant dans un VirtualStream().

  2. Dans GetNext(), avez la logique permettant de déterminer quand un message est incorrect. Si un message est incorrect, définissez BTS.MessageDestination = « SuspendQueue » et retournez le message dans GetNext().

  3. Si le message est correct, définissez BTS.SuspendMessageOnRoutingFailure = True et retournez 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.

Remarque

Dans cette version de BizTalk Server, l’assemblage des fonctionnalités n’est pas utilisé. BizTalk Server transmet donc 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 Descriptif
AddDocument Ajoute le document pInMsg à la liste des messages qui seront inclus dans l’échange.
Assembler Génère 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 de détection est utilisé dans les phases de pipeline qui ont le mode d’exécution FirstMatch . Au cours de ces étapes, 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 Descriptif
Sonde Cette méthode prend le message pInMsg et retourne True si le format est reconnu ou False dans le cas contraire.

INamedItem

Il s’agit d’une interface d’assistance permettant d’accéder aux schémas de document à partir de code managé et non managé.

INamedItemList

Il s’agit d’une interface d’assistance permettant d’accéder aux schémas de document à partir de code managé et non managé.

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 de propriétés de contenu vers le contexte et vers le retour, l’accès aux schémas de document, etc.

Méthode Descriptif
DocType Retourne le type du document actif.
DocSpecName Retourne le nom de spécification du document actuel.
GetSchemaCollection Retourne la liste des schémas de document pour le document actuel.
GetBodyPath Retourne le XPath au nœud dans le document où commence la partie du corps.
GetDistinguishedPropertyAnnotationEnumerator Retourne un énumérateur de dictionnaire de toutes les annotations de propriété de champ distinguées.
GetPropertyAnnotationEnumerator Retourne un énumérateur de toutes les annotations de propriétés.

IComponentUI

Les composants de pipeline doivent implémenter cette interface pour être utilisés dans l’environnement du Concepteur de pipelines.

Méthode Descriptif
icône Fournit l’icône associée à ce composant.
Procéder à la validation Le Concepteur de pipeline appelle cette méthode avant la compilation du pipeline pour vérifier que toutes les propriétés de configuration sont correctement définies.

La propriété Icon retourne 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 IComponentUI Interface (COM) dans les instructions de l’interface utilisateur et les informations de référence sur l’espace de noms d’API des développeurs.

Voir aussi

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