Freigeben über


Verwenden von Pipelineschnittstellen

Eine Pipelinekomponente ist eine .NET- oder COM-Komponente, die eine Reihe vordefinierter Schnittstellen für die Interaktion mit dem BizTalk Messaging-Modul implementiert. Je nach Funktionalität der Komponente müssen unterschiedliche Schnittstellen implementiert werden. In diesem Thema werden diese Schnittstellen und einige ihrer Methoden erläutert.

Warnung

Wenn Sie eine benutzerdefinierte Pipelinekomponente mit COM erstellen, müssen Sie Ihre Komponente so konfigurieren, dass das Multithreaded Apartment (MTA)-Modell verwendet wird. Wenn Sie dies nicht tun, schlägt der Aufruf Ihrer 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:

  • Ermöglicht Komponenten das Abrufen der Umgebungspipeline- und Phaseneinstellungen.

  • Ermöglicht Komponenten das Abrufen von Nachrichten und Nachrichtenerzeugern. Mit diesen Fabriken können Komponenten verschiedene Objekte erstellen, die für die Ausführung der Komponente erforderlich sind.

  • Ermöglicht komponenten das Abrufen der Dokumentspezifikationen. Eine Dokumentspezifikation ist ein XSD-Schema sowie zusätzliche Anmerkungen.

IBaseComponent

Alle Pipelinekomponenten müssen diese Schnittstelle implementieren, um grundlegende Informationen zur Komponente bereitzustellen.

IComponent

Alle Pipelinekomponenten mit Ausnahme von Assemblern und Disassemblern implementieren diese Schnittstelle, um Nachrichten vom BizTalk Server-Modul zur Verarbeitung abzurufen und verarbeitete Nachrichten an das Modul zurückzugeben.

Ausführen. Methode, die vom Modul aufgerufen wird, um die Eingabenachricht an die Komponente zu übergeben und die verarbeitete Nachricht aus 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 zu Microsoft .NET Framework Software Development Kit (SDK).

IDisassemblerComponent

Eine Demontagekomponente ist eine Pipelinekomponente, die eine Nachricht bei der Eingabe empfängt und null oder mehr Nachrichten bei der Ausgabe erzeugt. Das Zerlegen von Komponenten wird verwendet, um Nachrichtenaustausche in einzelne Dokumente aufzuteilen. Eine Zerlegungskomponente muss die Methoden der IDisassemblerComponent-Schnittstelle implementieren, um Nachrichten von BizTalk Server zur Verarbeitung abzurufen und zerlegte Dokumente an BizTalk Server zurückzugeben.

Methode BESCHREIBUNG
zerlegen Führt die Demontage des eingehenden Dokuments pInMsg durch.
GetNext- Ruft die nächste Nachricht aus dem Nachrichtensatz ab, der aus der Disassembler-Verarbeitung resultierte. Gibt NULL zurück, wenn keine weiteren Nachrichten vorhanden sind.

Wenn Sie eine Disassemblerkomponente schreiben, die die Wiederherstellbare Austauschverarbeitung unterstützt, müssen Sie die folgenden Schritte ausführen:

  1. Machen Sie die Eingabedatenströme suchbar, indem Sie sie in einen VirtualStream() umschließen.

  2. In "GetNext()" muss anhand der Logik ermittelt werden, wann eine Nachricht ungültig ist. Wenn eine Nachricht ungültig ist, setzen Sie BTS.MessageDestination auf "SuspendQueue" und geben Sie die Nachricht in GetNext() zurück.

  3. Wenn die Nachricht gut ist, setzen Sie BTS.SuspendMessageOnRoutingFailure = True und geben Sie die Nachricht in GetNext() zurück.

IAssemblerComponent

Eine Assembling-Komponente ist eine Pipelinekomponente, die mehrere Nachrichten bei der Eingabe empfängt und eine Nachricht bei der Ausgabe erzeugt. Der Zusammenbau von Komponenten wird verwendet, um einzelne Dokumente im Nachrichtenaustausch-Stapel zusammenzuführen.

Hinweis

In dieser Version von BizTalk Server wird die Zusammenstellungsfunktion nicht verwendet, sodass BizTalk Server immer ein Dokument an die Komponenteneingabe übergibt.

Eine Assemblerkomponente implementiert die IAssemblerComponent-Methoden , die zur Laufzeit vom BizTalk Server-Modul aufgerufen werden.

Methode BESCHREIBUNG
AddDocument Fügt das Dokument "pInMsg " zur Liste der Nachrichten hinzu, die im Austausch enthalten sein werden.
zusammensetzen Erstellt den Austausch aus den Nachrichten, die von der vorherigen Methode hinzugefügt wurden. Gibt einen Zeiger auf die zusammengesetzte Nachricht zurück.

IProbeMessage

Jede Pipelinekomponente (allgemein, Zusammenbau oder Demontage) kann IProbeMessage implementieren, wenn eine Nachrichten-Probingfunktion erforderlich ist. Eine Sondierungskomponente wird in den Pipelinephasen eingesetzt, die den Ausführungsmodus FirstMatch haben. In solchen Phasen gibt BizTalk Server der Komponente die Nachricht, und die Probemethode untersucht den Anfang der Nachricht, um festzustellen, 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 False andernfalls.

INamedItem

Dies ist eine Hilfsschnittstelle für den Zugriff auf Dokumentschemas aus verwaltetem und nicht verwaltetem Code.

INamedItemList

Dies ist eine Hilfsschnittstelle für den Zugriff auf Dokumentschemas aus verwaltetem und nicht verwaltetem Code.

IDocumentSpec

Pipelinekomponenten können Methoden der IDocumentSpec-Schnittstelle verwenden, um dokumentspezifische Aktionen auszuführen, z. B. das Verschieben von Inhaltseigenschaften in Kontext und Zurück, den 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 die Liste der Dokumentschemas für das aktuelle Dokument zurück.
GetBodyPath Gibt den XPath-Wert an den Knoten im Dokument zurück, in dem der Textkörperteil beginnt.
GetDistinguishedPropertyAnnotationEnumerator Gibt einen Wörterbuch-Enumerator aller hervorgehobenen Feld-Eigenschaftsannotationen zurück.
GetPropertyAnnotationEnumerator Gibt einen Enumerator aller Eigenschaftenanmerkungen zurück.

IComponentUI

Pipelinekomponenten müssen diese Schnittstelle implementieren, die in der Pipeline-Designer-Umgebung verwendet werden soll.

Methode BESCHREIBUNG
Ikone Stellt das Symbol bereit, das dieser Komponente zugeordnet ist.
Validieren Pipeline-Designer ruft diese Methode vor der Pipelinekompilierung auf, um sicherzustellen, dass alle Konfigurationseigenschaften ordnungsgemäß festgelegt sind.

Die Icon-Eigenschaft gibt einen IntPtr zurück. Das folgende C#-Beispiel zeigt, 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 Interface (COM)" in der Benutzeroberflächenanleitung und in der API-Namespacereferenz für Entwickler.

Siehe auch

Entwickeln von benutzerdefinierten Pipelinekomponenten
CustomComponent (BizTalk Server-Beispiel)