Frage

Ich versuche, eine generische BizTalk-Anwendung für die Konfiguration dynamischer Ports zu entwickeln.Ich habe eine Orchestrierung, die alle Konfigurationseinstellungen für jeden Port zurückzieht, und ich möchte diese Einstellungen durchlaufen und die Ports konfigurieren.Die Einstellungen finden in MSSQL statt, und z. B. sind zwei der Eigenschaften Portname und Adresse.Von der Orchestrierung möchte ich also den Port mit dem Portnamen String-Variablen verweisen.Es gibt also eine Möglichkeit, eine Sammlung aller Ports in einer Orchestrierung oder einem Anschluss über eine String-Variable zu erhalten, danke, danke

War es hilfreich?

Lösung

In erster Linie sollten Sie nicht versuchen, Konfigurationsänderungen mithilfe einer Orchestrierung zu verwenden.Technisch ist es möglich, das, was Sie versuchen, zu tun, aber als Praxis sollten Sie Ihren Geschäftsprozess nicht mit der Verwaltung vermischen.

Der beste Weg, solche Dinge zu tun, wird entweder einige normale Skripte oder Powershell schreiben.

Um Ihre Frage zu beantworten, können Sie die gewünschten Daten von der BTSorchestration-Klasse in Explorerom erhalten http://msdn.microsoft.com / en-us / bibliothek / microsoft.biztalk.explorerom.btsorchestration_members (v= BTS.20)

Andere Tipps

Um dynamische logische Send-Ports dynamisch in einer Orchestrierung dynamisch zu konfigurieren, muss man die Einstellungen in einem persistenten Datastore (z. B. eine Datenbank- oder Konfigurationsdatei) speichern und einen Weg implementieren, um diese Eigenschaften zur Laufzeit dynamisch zuzuweisen. .

Aber zuerst müssen wir verstehen, was passiert, wenn Sie einen dynamischen Sendeport konfigurieren.

So konfigurieren Sie einen dynamischen logischen Sendeport

Konfigurieren der Eigenschaften eines dynamischen logischen Senden Port von Innerhalb einer Orchestrierung beinhaltet zwei Schritte:

Sie werden feststellen, dass die meisten Konfigurationseigenschaften im Kontext der ausgehenden Nachrichten angegeben werden müssen, wobei ein Namespace-Präfix (z. B. Datei), einen Eigenschaftsnamen (z. B. EmpfangsfileName), angibt, und offensichtlich der Wert, der dem entsprechenden zugewiesenen Wert wird Eigentum.

In der Tat sind alle Kontexteigenschaften Klassen, die in der bekannten generationsporticetagcode-Baugruppe leben. Dies wird bestätigt, indem Sie diese Montage in der Object Explorer von Visual Studio aufsuchen.

file.receVeiveFileName in Microsoft.biztalk.globalPropertySchemas.dll

Obwohl die meisten Kontexteigenschaften, die zum Konfigurieren von dynamischen logischen Send-Ports erforderlich sind, in dieser speziellen Montage leben, nicht alle. Zum Beispiel verwendet der MSMQ BizTalk-Adapter eine separate Baugruppe, um seine Kontexteigenschaften zu speichern. Offensichtlich werden auch Drittanbieter oder benutzerdefinierte Adapter ebenfalls mit zusätzlichen Baugruppen geliefert.

Daher, um eine Kontexteigenschaft auf einem dynamischen Sendeport mit einem flexiblen Ansatz wie dem unten beschrieben einzurichten, sind vier Informationsstücke erforderlich:

Speichern von Porteinstellungen in einem persistenten Medium

Das folgende .xsd-Schema veranschaulicht eine mögliche Struktur für die Serialisierung von Port-Einstellungen.

Kontextproperties XML-Schema-Definition

Nachdem nach serialisiert, können die angegebenen Kontexteigenschaften dann in einer SQL-Datenbank oder einer Konfigurationsdatei sehr einfach gespeichert werden. Zum Beispiel sind hier die Einstellungen, die als Beispiel in diesem Beitrag verwendet werden:

Beispiel für Kontextpropertieseinstellungen

Ein flexibler Ansatz zur Konfiguration dynamischer logischer Sendeports

Mit einer einfachen Helferbibliothek ist die Einrichtung der dynamischen Portkonfiguration sehr einfach. Erstens müssen Sie die serialisierten Einstellungen vom persistenten Medium abrufen. Dies kann leicht mit dem WCF-SQL-Adapter und einer einfachen gespeicherten Prozedur erreicht werden.

Nach dem Abgerufenen können diese Eigenschaften dann in einem stark eingegebenen C # -Bild-Objektdiagramm deserialisiert werden. Erstellen Sie dazu zunächst eine C # -Dresage des oben angezeigten Kontextproperties-Schemas mit dem folgenden Befehlszeilen-Dienstprogramm:

generasacodicetagpre.

Dies erzeugt eine Teilklasse, die mit dem folgenden Verfahren verbessert werden kann:

generasacodicetagpre.

zweite Anwendung Diese Konfiguration umfasst das Erstellen einer Xlang / s-Nachricht vom Code und der Einrichtung der Kontexteigenschaften dynamisch mit Reflexion, basierend auf der Beschreibung der in der Deserializ angegebenen Kontexteigenschaften

ED Kontextproperties Objektdiagramm.

Hierzu benutze ich eine Technik, die von paolo salvatori serie Art von Artikeln verwendet wird bezüglich dynamischer Transformationen , die beim Erstellen eines benutzerdefinierten btxmessage --derevive-Klasse, intern vom Biztalk Xlang / s-Motor verwendet.

generasacodicetagpre.

Nun ist das letzte Stück des Puzzles, wie man diese benutzerdefinierte Klasse von einer Inchestrierung nutzt. Dies geschieht leicht in einer -zuweisungsform mit dem folgenden Helfercode:

generasacodicetagpre.

Sie können diese statische Methode in Ihrer -zuweisungsform verwenden, wie der nachstehend gezeigte Code, in dem der generationspoDicetagcode die Nachricht darstellt, die Sie den Kontext einstellen möchten:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top