Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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