Verwenden von Ausdrücken zum dynamischen Transformieren von Nachrichten
Sie können Nachrichten in Ihrer Orchestrierung mithilfe von Ausdrücken dynamisch transformieren. XLANG macht eine Transformationsmethode verfügbar, die innerhalb eines Nachrichtenzuweisungs-Shapes innerhalb eines Shapes "Nachricht erstellen " aufgerufen werden kann. Dies ist die gleiche Methode, die aufgerufen wird, wenn ein Transformations-Shape verwendet wird, ermöglicht ihnen jedoch das programmgesteuerte Transformieren der Nachrichten mithilfe der Zuordnung, die Sie in der Orchestrierung festgelegt haben. Dies ist bei der typagnostischen Nachrichtenverarbeitung hilfreich. Wenn Sie beispielsweise einen Geschäftsprozess nehmen, bei dem aus mehreren Zuordnungen ausgewählt werden muss, um eingehende Nachrichten auf Grundlage der Parameter zu transformieren, die aus den empfangenen eingehenden Nachrichten gewonnen werden, können Sie dies in der Form Ausdruck mit der Transformierungsmethode durchführen, ohne dabei den allgemeinen Geschäftsprozess zu beeinträchtigen.
Transformieren von Nachrichten
Sie können den folgenden Beispielcode verwenden, um die Nachrichten in der Form Nachrichtenzuweisung programmgesteuert zu transformieren:
MyMapType = typeof(MyMapName);
transform(MyOutputMsg) = MyMapType(MyInputMsg);
In diesem Beispiel wird MyMapType in der Orchestrierung als Variable vom Typ System.Type deklariert. MyMapName ist der Name einer bereits in Ihrem BizTalk-Projekt erstellten Zuordnung. Wenn Sie auf eine Zuordnung verweisen möchten, die sich in einer separaten BizTalk-Assembly befindet, müssen Sie in Ihrem BizTalk-Projekt einen Verweis auf diese Assembly verwenden. MyInputMsg ist die Quellnachricht und MyOutputMsg die Zielnachricht. Wenn Ihre Zuordnung mehrere Quellnachrichten akzeptiert, können Sie die Nachrichten mit dem folgenden Beispielcode transformieren:
MyMapType = typeof(MyMapName);
transform(MyOutputMsg) = MyMapType(MyInputMsg1, MyInputMsg2);
Hinweis
Bei mehreren Quellnachrichten müssen sie unter Berücksichtigung der in der Zuordnung angezeigten Teilnummer der Eingabenachricht in der richtigen Reihenfolge im Ausdruck platziert werden.
Wichtig
Beim dynamischen Transformieren von Nachrichten in der Form Ausdruck empfiehlt es sich, einen Zwischenspeicher zum Speichern der kompilierten Zuordnungen in den Benutzercode zu integrieren und den Zwischenspeicher anschließend in der Form Ausdruck zu verwenden, um die Zuordnungen vor dem Durchführen der Nachrichtentransformation abzurufen. Wenn Sie die Zuordnungen nicht zwischenspeichern, kann der Speicherbedarf der Common Language Runtime (CLR) möglicherweise erheblich anwachsen. Bei dynamischen Zuordnungen muss das .NET-Laufzeitmodul Codezugriffsüberprüfungen durchführen. Dabei wird für jede Transformation ein .NET-Objekt "Evidence" in den "Large Object Heap" geschrieben, und dieses Objekt wird erst entfernt, wenn die Orchestrierung abgeschlossen ist. Dadurch wächst der Speicherbedarf möglicherweise erheblich an, wenn viele dieser Transformationen gleichzeitig ausgeführt werden. Dies kann auch zu einem Speicherausnahmefehler führen.
Weitere Informationen
Orchestrierungsformen
Erstellen von Zuordnungen mit BizTalk-Mapper