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 :
Rendez les flux d'entrée aptes à une recherche en les enveloppant dans un flux VirtualStream().
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().
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)