Freigeben über


Verwenden von BaseFunctoid

Alle benutzerdefinierten Funktoiden müssen von der BaseFunctoid-Klasse abgeleitet werden. Sie müssen zuerst den Konstruktor außer Kraft setzen und eine Reihe von Aufrufen durchführen, die BizTalk Mapper über Ihr benutzerdefiniertes Functoid informieren. Anschließend müssen Sie die Logik des Functoids schreiben.

Überschreiben des Konstruktors

Sie müssen eine Reihe von Aufgaben im Klassenkonstruktor überschreiben, um Ihr Functoid zu charakterisieren. Diese Aufgaben sind zusätzlich zu jedem funktoidspezifischen Code erforderlich, den Ihre Lösung benötigt. In der folgenden Tabelle werden die primären Aufgaben beschrieben.

Aufgabe Verwenden Sie diese Methoden oder Eigenschaften. Kommentare
Weisen Sie dem Functoid eine eindeutige ID zu. ID Verwenden Sie einen Wert größer als 6000, der nicht verwendet wurde. Werte unter 6000 sind für die Verwendung durch interne Funktoiden reserviert.
Angeben, ob das Funktoid Nebenwirkungen hat HasSideEffects Wird vom Mapper verwendet, um den xslt-Code zu optimieren, der generiert wird. Diese Eigenschaft ist standardmäßig "true".
Zeigen Sie auf die Ressourcen-Assembly SetupResourceAssembly Fügen Sie eine Ressourcendatei in Ihr Projekt ein. Wenn Sie mit Visual Studio erstellen, muss die Ressourcenassembly "ProjectName.ResourceName" sein.
Aktivieren der Anzeige des benutzerdefinierten Functoids in der BizTalk Mapper-Palette SetName

SetTooltip

SetDescription-

SetBitmap
Verwenden Sie eine Ressourcen-ID, die auf eine Zeichenfolge für den Namen, die QuickInfo und die Beschreibung zeigt; verwenden Sie eine 16x16-Pixel-Bitmap.
Weisen Sie das Funktoid einer oder mehreren Kategorien zu Kategorie Kategorisieren Sie das Funktoid mithilfe eines oder mehrerer Microsoft.BizTalk.BaseFunctoids.FunctoidCategory-Werte .
Angeben der Anzahl der akzeptierten Parameter SetMinParams

SetMaxParams

HasVariableInputs
Verwenden Sie die SetMinParams-Methode , um die Anzahl der erforderlichen Parameter und die SetMaxParams-Methode festzulegen, um die Anzahl optionaler Parameter festzulegen. Verwenden Sie die folgenden Richtlinien, um diese Werte festzulegen:

- Wenn Sie keine optionalen Parameter haben, legen Sie "min= max" fest.
- Wenn Sie über einige optionale Parameter verfügen, legen Sie max = (Anzahl optionaler Parameter - min. Anzahl von Parametern) fest.
- Wenn Sie unbegrenzte optionale Parameter zulassen möchten, legen Sie "max" nicht fest.
- Wenn Sie über eine variable Anzahl von Eingaben verfügen, legen Sie nicht "min" oder "max" fest, und legen Sie "HasVariableInputs = true" fest.
Deklarieren, was eine Verbindung mit Ihrem Functoid herstellen kann EingabeVerbindungstypHinzufügen Rufen Sie AddInputConnectionType einmal für jede Microsoft.BizTalk.BaseFunctoids.ConnectionType auf, die dieses Funktoid unterstützt.
Deklarieren Sie, mit welchem Functoid eine Verbindung hergestellt werden kann OutputConnectionType Verwenden Sie Werte von Microsoft.BizTalk.BaseFunctoids.ConnectionType , um BizTalk Mapper die Objekttypen mitzuteilen, die ausgabe von Ihrem Functoid empfangen können. Verwenden Sie OR , um mehrere Verbindungstypen anzugeben.
Teilen Sie BizTalk Server mit, welche Methoden für Ihr Functoid aufgerufen werden sollen. SetExternalFunctionName

SetExternalFunctionName2

SetExternalFunctionName3
Verwenden Sie für kumulierte Functoids SetExternalFunctionName, um die Initialisierungsfunktion festzulegen, SetExternalFunctionName2, um die Akkumulationsfunktion festzulegen, und SetExternalFunctionName3, um die Funktion anzugeben, die den akkumulierten Wert zurückgibt. Verwenden Sie für nicht kumulative Functoids SetExternalFunctionName, um die Functoid-Methode festzulegen.
Lassen Sie BizTalk Server Inlinecode verwenden, um Ihr Functoid aufzurufen. AddScriptTypeSupport SetScriptBuffer Rufen Sie AddScriptTypeSupport mit Microsoft.BizTalk.BaseFunctoids.ScriptType auf, um Inlinecode zu aktivieren. Rufen Sie SetScriptBuffer auf, um den Code für das Functoid zu übergeben. Dieser Code wird in die Karte kopiert.
Deklarieren globaler Variablen für ein Inline-Functoid SetScriptGlobalBuffer Alle in der Karte enthaltenen Deklarationen sind für andere Inlineskripts sichtbar.
Angeben, welche Hilfsfunktionen Ihr Inline-Functoid erfordert RequiredGlobalHelperFunctions Verwenden Sie Werte aus der InlineGlobalHelperFunction-Aufzählung , um anzugeben, welche Hilfsfunktionen erforderlich sind. Verwenden Sie OR , um mehrere Hilfsfunktionen anzugeben.
Überprüfen Sie die Parameter, die an Ihr Funktoid übergeben werden IsDate

IsNumeric
Diese Funktionen stellen eine Wahr/Falsch-Antwort bereit, ohne eine Ausnahme zu auslösen.

Implementierung der Functoidlogik

Um das Funktoid nützlich zu machen, müssen Sie je nach Funktoidkategorie eine oder mehrere Methoden implementieren. Wenn das Funktoid kumulativ ist, müssen Sie drei Methoden bereitstellen – eine für die Initialisierung, eine für die Akkumulation und eine, um den akkumulierten Wert zurückzugeben. Wenn das Funktoid nicht kumulativ ist, müssen Sie eine Methode angeben, die einen Wert zurückgibt.

Sie müssen auch entscheiden, ob der Code zur Funktionsblock-Implementierung inline in die Zuordnung kopiert oder in einer kompilierten .NET-Assembly gespeichert und über einen Verweis verwendet werden soll.

Erwägen Sie die Verwendung eines Inline-Funktoids in folgenden Fällen:

  • Es ist in Ordnung, dass andere Personen Ihre Geschäftslogik lesen und ändern können.

  • Ihr Functoid hängt nur von den .NET Framework-Namespaces ab, die das Mapping unterstützt. Verfügbare Namespaces finden Sie unter Scripting Using Inline C#, JScript .NET und Visual Basic .NET.

  • Sie möchten keine weitere Assembly mit Ihrer BizTalk-Lösung bereitstellen und verwalten.

  • Sie schreiben eine Reihe von Funktoiden, die Variablen gemeinsam nutzen.

    Erwägen Sie die Verwendung eines referenzierten Functoids in folgenden Fällen:

  • Sie möchten nicht, dass Ihre Geschäftslogik in die Karte kopiert wird, wo sie von anderen personen angezeigt oder geändert werden kann.

  • Ihr Functoid hängt von .NET Framework-Klassen ab, die von der Karte nicht unterstützt werden.

  • Die vom .NET Framework bereitgestellte zusätzliche Funktionalität rechtfertigt die Bereitstellung und Wartung einer anderen Assembly mit Ihrer BizTalk-Lösung.

Siehe auch

Entwickeln eines benutzerdefinierten Referenz-Functoids
Entwickeln eines benutzerdefinierten Inline-Functoids
Entwickeln eines benutzerdefinierten Functoids für kumulative Funktionen
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid