Verwenden der Klasse 'BaseFunctoid'
Alle benutzerdefinierten Funktoide müssen von der Klasse BaseFunctoid abgeleitet werden. Als Erstes müssen Sie den Konstruktor überschreiben und einen Satz von Aufrufen erstellen, mit denen BizTalk-Mapper von dem benutzerdefinierten Funktoid in Kenntnis gesetzt wird. Die nächste Aufgabe besteht darin, die Funktoidlogik zu schreiben.
Sie müssen eine Reihe von Aufgaben in der Überschreibungsmethode für den Klassenkonstruktor ausführen, um Ihr Funktoid zu kennzeichnen. Diese Aufgaben fallen zusätzlich zu den Aufgaben an, die ggf. in Bezug auf funktoidspezifischen Code auszuführen sind, den Ihre Lösung erfordert. In der folgenden Tabelle werden die wichtigsten Aufgaben beschrieben.
Aufgabe | Zu verwendende Methoden oder Eigenschaften | Kommentare |
---|---|---|
Zuweisen einer eindeutigen ID zum Funktoid | ID | Verwenden Sie einen Wert größer als 6.000, der nicht verwendet wurde. Werte unter 6.000 sind für interne Funktoide reserviert. |
Angeben, ob das Funktoid Nebeneffekte hat | HasSideEffects | Wird vom Mapper zur Optimierung des generierten XSLT-Codes verwendet. Für diese Eigenschaft ist standardmäßig "wahr" festgelegt. |
Verweisen auf die Ressourcenassembly | SetupResourceAssembly | Nehmen Sie eine Ressourcendatei in Ihr Projekt auf. Wenn Sie mit Visual Studio erstellen, muss die Ressourcenassembly ProjectName.ResourceName sein. |
Aktivieren des benutzerdefinierten Funktoids für die Anzeige in der Palette von BizTalk-Mapper | SetName SetTooltip SetDescription SetBitmap |
Verwenden Sie eine Ressourcen-ID, die auf eine Zeichenfolge für den Namen, eine QuickInfo und eine Beschreibung verweist. Verwenden Sie eine 16x16-Pixel-Bitmap. |
Zuweisen des Funktoids zu mindestens einer Kategorie | Kategorie | Kategorisieren Sie das Funktoid mit mindestens einem Microsoft.BizTalk.BaseFunctoids.FunctoidCategory -Wert. |
Festlegen der Anzahl der akzeptierten Parameter | SetMinParams SetMaxParams HasVariableInputs |
Legen Sie mithilfe der Methode SetMinParams die Anzahl der erforderlichen Parameter und mithilfe der Methode SetMaxParams die Anzahl der optionalen Parameter fest. Verwenden Sie beim Festlegen dieser Werte die folgenden Richtlinien: - Wenn Sie keine optionalen Parameter haben, legen Sie min = max. - 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 nicht max. - Wenn Sie über eine variable Anzahl von Eingaben verfügen, legen Sie nicht min oder max fest, und legen Sie HasVariableInputs fest = true . |
Deklarieren der Verbindungstypen, die mit dem Funktoid eine Verbindung herstellen können | AddInputConnectionType | Rufen Sie AddInputConnectionType einmal für jeden vom Funktoid unterstützten Microsoft.BizTalk.BaseFunctoids.ConnectionType auf. |
Deklarieren der Verbindungstypen, mit denen das Funktoid eine Verbindung herstellen kann | OutputConnectionType | Verwenden Sie Werte aus Microsoft.BizTalk.BaseFunctoids.ConnectionType , um BizTalk-Mapper mitzuteilen, welche Objekttypen Ausgabedaten vom Funktoid empfangen können. Mit OR können Sie mehrere Verbindungstypen festlegen. |
BizTalk Server mitteilen, welche Methoden für das Funktoid aufgerufen werden sollen | SetExternalFunctionName SetExternalFunctionName2 SetExternalFunctionName3 |
Legen Sie bei kumulativen Funktoiden mittels SetExternalFunctionName die Initialisierungsfunktion, mittels SetExternalFunctionName2 die Kumulationsfunktion und mittels SetExternalFunctionName3 die Funktion fest, die den kumulierten Wert zurückgibt. Verwenden Sie bei nicht kumulativen Funktoiden SetExternalFunctionName zum Festlegen der Funktoidmethode. |
Anweisen von BizTalk Server zur Verwendung von Inlinecode zum Aufrufen des Funktoids | 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 Funktoid zu übergeben. Dieser Code wird in die Zuordnung kopiert. |
Deklarieren globaler Variablen für ein Inlinefunktoid | SetScriptGlobalBuffer | Alle Deklarationen sind für die anderen in der Zuordnung enthaltenen Inlineskripts sichtbar. |
Angeben, welche Hilfsfunktionen für Ihr Inlinefunktoid erforderlich sind | RequiredGlobalHelperFunctions | Geben Sie mithilfe der Werte aus der Enumeration InlineGlobalHelperFunction an, welche Hilfsfunktionen erforderlich sind. Mit OR können Sie mehrere Hilfsfunktionen angeben. |
Validieren der an das Funktoid übergebenen Parameter | IsDate IsNumeric |
Diese Funktionen geben eine "wahr/falsch"-Antwort aus, ohne eine Ausnahme auszulösen. |
Damit ein Funktoid seinen Zweck erfüllt, müssen Sie je nach Funktoidkategorie eine oder mehrere Methoden implementieren. Handelt es sich um ein kumulatives Funktoid, müssen Sie drei Methoden bereitstellen: eine für die Initialisierung, eine für die Kumulation und eine für die Rückgabe des kumulierten Wertes. Bei nicht kumulativen Funktoiden ist die Bereitstellung nur einer Methode erforderlich, die einen Wert zurückgibt.
Außerdem müssen Sie entscheiden, ob der Implementierungscode für das Funktoid inline in die Zuordnung kopiert werden oder in einer kompilierten .NET-Assembly gespeichert und über einen Verweis genutzt werden soll.
Die Verwendung eines Inlinefunktoids bietet sich in folgenden Situationen an:
Andere Personen dürfen Ihre Geschäftslogik lesen und möglicherweise ändern.
Ihr Funktoid ist nur von .NET Framework-Namespaces abhängig, die von der Zuordnung unterstützt werden. Verfügbare Namespaces finden Sie unter Skripterstellung mit Inline-C#, JScript .NET und Visual Basic .NET.
Sie möchten mit Ihrer BizTalk-Lösung keine weitere Assembly bereitstellen und verwalten.
Sie schreiben eine Serie von Funktoiden, die über gemeinsame Variablen verfügen.
Ein Funktoid, auf das verwiesen wird, können Sie in folgenden Situationen verwenden:
Sie möchten nicht, dass Ihre Geschäftslogik in die Zuordnung kopiert wird, wo sie von anderen Personen eingesehen oder verändert werden könnte.
Ihr Funktoid ist von .NET Framework-Klassen abhängig, die von der Zuordnung nicht unterstützt werden.
Die vom .NET Framework zusätzlich bereitgestellten Funktionen rechtfertigen die Bereitstellung und Verwaltung einer weiteren Assembly mit Ihrer BizTalk-Lösung.
Entwickeln eines benutzerdefinierten Funktoids, auf das verwiesen wird
Entwickeln eines benutzerdefinierten Inlinefunktoids
Entwickeln eines benutzerdefinierten kumulativen Funktoids
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid