Freigeben über


Verwenden von Pipelineschnittstellen

Bei einer Pipelinekomponente handelt es sich um eine .NET- oder COM-Komponente, mit der eine Reihe von vordefinierten Schnittstellen für die Interaktion mit der BizTalk-Messaging-Engine implementiert werden können. Abhängig von den Funktionen der Komponente müssen verschiedene Schnittstellen implementiert werden. Im Rahmen dieses Themas werden die Schnittstellen und einige der entsprechenden Methoden beschrieben.

Warnung

Wenn mithilfe von COM eine benutzerdefinierte Pipelinekomponente erstellt werden soll, müssen Ihre Komponenten für die Verwendung des Multithread-Apartment-(MTA-)Modells konfiguriert werden. Andernfalls schlägt der Aufruf der Komponente mit einem E_NOINTERFACE-Fehler fehl.

IPipelineContext

Alle Pipelinekomponenten können IPipelineContext-Methoden verwenden, um auf alle dokumentverarbeitungsspezifischen Schnittstellen zuzugreifen. Die IPipelineContext-Schnittstelle bietet die folgenden Funktionen:

  • Sie ermöglicht Komponenten das Abrufen der Ambient-Pipeline- und Stufeneinstellungen.

  • Sie ermöglicht Komponenten das Abrufen von Nachrichten und Nachrichtenfactorys. Mithilfe dieser Factorys können die Komponenten verschiedene für die Ausführung der Komponente erforderliche Objekte erstellen.

  • Sie ermöglicht Komponenten das Abrufen von Dokumentspezifikationen. Bei einer Dokumentspezifikation handelt es sich um ein XSD-Schema mit zusätzlichen Anmerkungen.

IBaseComponent

Diese Schnittstelle muss von allen Pipelinekomponenten implementiert werden, damit die grundlegenden Informationen über die Komponente bereitgestellt werden.

IComponent

Mit Ausnahme von Assemblern und Disassemblern implementieren alle Komponenten diese Schnittstelle, um von der BizTalk Server-Engine Nachrichten zur Verarbeitung abzurufen und verarbeitete Nachrichten anschließend an die Engine zurückzugeben.

„Execute“. Methode, die von der Engine aufgerufen wird, um die Eingangsnachricht an die Komponente weiterzugeben und die verarbeitete Nachricht von der Komponente abzurufen.

IPropertyBag, IPersistPropertyBag

Pipelinekomponenten müssen IPersistPropertyBag implementieren, um die Konfigurationsinformationen zu erhalten. Diese Schnittstelle und IPropertyBag sind die Standardschnittstellen. Weitere Informationen zu diesen Schnittstellen finden Sie in der Dokumentation zum Microsoft .NET Framework SDK (Software Development Kit).

IDisassemblerComponent

Eine Disassembler-Komponente ist eine Pipelinekomponente, die an der Eingabe eine Nachricht empfängt und für die Ausgabe null oder keine Nachrichten erzeugt. Mit Disassembler-Komponenten wird ein Nachrichtenaustausch in einzelne Dokumente aufgeteilt. Eine Disassemblerkomponente muss die Methoden der IDisassemblerComponent-Schnittstelle implementieren, um Nachrichten von BizTalk Server zur Verarbeitung abzurufen und disassemblierte Dokumente an BizTalk Server zurückzugeben.

Methode BESCHREIBUNG
Disassemble Führt die Disassemblierung des eingehenden Dokuments pInMsg aus.
GetNext Ruft die nächste Nachricht aus dem Nachrichtensatz ab, der durch die Disassemblierung erstellt wurde. Gibt NULL zurück, wenn keine weiteren Nachrichten vorhanden sind.

Beim Schreiben einer Disassembler-Komponente, die eine wiederherstellbare Austauschverarbeitung unterstützen soll, muss folgendermaßen vorgegangen werden:

  1. Die Eingangsstreams müssen durchsucht werden können. Dies erreichen Sie, indem sie VirtualStream() als Wrapper für die Streams verwenden.

  2. In GetNext() muss die Logik zur Ermittlung fehlerhafter Nachrichten implementiert werden. Wenn eine Nachricht fehlerhaft ist, muss BTS.MessageDestination = "SuspendQueue" gesetzt und die Nachricht in GetNext() zurückgegeben werden.

  3. Wenn die Nachricht nicht fehlerhaft ist, muss BTS.SuspendMessageOnRoutingFailure = True gesetzt und die Nachricht in GetNext() zurückgegeben werden.

IAssemblerComponent

Eine Assembler-Komponente ist eine Pipelinekomponente, die an der Eingabe mehrere Nachrichten empfängt und für die Ausgabe eine Nachricht erstellt. Mit Assembler-Komponenten werden einzelne Dokumente im Nachrichtenaustauschbatch gesammelt.

Hinweis

In dieser Version von BizTalk Server wird die Assembling-Funktionalität nicht verwendet, sodass BizTalk Server immer ein Dokument an die Komponenteneingabe übergibt.

Eine Assemblerkomponente implementiert die IAssemblerComponent-Methoden, die zur Laufzeit von der BizTalk Server-Engine aufgerufen werden.

Methode BESCHREIBUNG
AddDocument Fügt das Dokument pInMsg der Liste der Nachrichten hinzu, die in den Austausch aufgenommen werden.
Assemble Erstellt den Austausch der Nachrichten, die mithilfe der vorherigen Methode hinzugefügt wurden. Gibt einen Zeiger auf die assemblierte Nachricht zurück.

IProbeMessage

Jede Pipelinekomponente (allgemein, assemblieren oder disassemblieren) kann IProbeMessage implementieren, wenn die Nachrichtenüberprüfungsfunktion erforderlich ist. In den Pipelinephasen mit dem FirstMatch-Ausführungsmodus wird eine Testkomponente verwendet. In solchen Phasen übergibt BizTalk Server die Nachricht an die Komponente, und die Testmethode untersucht den Anfang der Nachricht, um zu bestimmen, ob die Komponente das Format der Nachricht erkennt.

Methode BESCHREIBUNG
Test Diese Methode akzeptiert die pInMsg-Nachricht und gibt True zurück, wenn das Format erkannt wird, oder andernfalls False .

INamedItem

Hierbei handelt es sich um eine Hilfsschnittstelle für den Zugriff auf Dokumentschemas von verwaltetem und nicht verwaltetem Code aus.

INamedItemList

Hierbei handelt es sich um eine Hilfsschnittstelle für den Zugriff auf Dokumentschemas von verwaltetem und nicht verwaltetem Code aus.

IDocumentSpec

Pipelinekomponenten können Methoden der IDocumentSpec-Schnittstelle verwenden, um dokumentspezifische Aktionen auszuführen, z. B. Das Verschieben von Inhaltseigenschaften in den Kontext und zurück, der Zugriff auf Dokumentschemas usw.

Methode BESCHREIBUNG
DocType Gibt den Typ des aktuellen Dokuments zurück.
DocSpecName Gibt den Spezifikationsnamen des aktuellen Dokuments zurück.
GetSchemaCollection Gibt eine Liste der Dokumentschemas des aktuellen Dokuments zurück.
GetBodyPath Gibt den XPath zum Knoten im Dokument zurück, an dem der Textteil beginnt.
GetDistinguishedPropertyAnnotationEnumerator Gibt einen Verzeichnisenumerator aller Eigenschaftsanmerkungen von gekennzeichneten Feldern zurück.
GetPropertyAnnotationEnumerator Gibt einen Enumerator aller Eigenschaftsanmerkungen zurück.

IComponentUI

Pipelinekomponenten müssen diese Schnittstelle implementieren, um innerhalb der Pipeline-Designer-Umgebung verwendet werden zu können.

Methode Beschreibung
Symbol: Gibt das Symbol an, das dieser Komponente zugeordnet ist.
Überprüfen In Pipeline-Designer wird diese Methode vor der Pipelinekompilierung aufgerufen, um sicherzustellen, dass alle Konfigurationseigenschaften richtig festgelegt wurden.

Die Icon-Eigenschaft gibt einen IntPtr zurück. Im folgenden C#-Beispiel wird gezeigt, wie ein IntPtr zurückgegeben wird.

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

Weitere Informationen finden Sie unter IComponentUI-Schnittstelle (COM) in der Referenz zum API-Namespace für Benutzeroberflächen und Entwickler.

Weitere Informationen

Entwickeln von benutzerdefinierten Pipelinekomponenten
CustomComponent (BizTalk Server-Beispiel)