BizTalk Maps Parameter zur Laufzeit übergeben

05.07.2018

Aufgabe war es, eine zentrale Datendrehscheibe zu entwickeln, die so generisch wie möglich ist, aber auch offen für Änderungen. Die Lösung ermöglichte dem Kunden alle Daten im gesamten Unternehmen zu verteilen und bei neuen Daten war es nur nötig Maps zu entwickeln um die Daten zu verteilen.

Hierzu mussten wir zur Laufzeit dynamisch Maps zu laden. Dies war erstmal keine große Hürde, da BizTalk Server hierfür Funktionen bereitstellt, die z.B. in Message-Assignment- Shapes aufgerufen werden können.

 

mapType = typeof(dynamicMapFullName); 

transform(outputMsg) = mapType(inputMsg);

 

Dieses Vorgehen hat unter anderem den Vorteil, dass die Assemblys in denen die Maps liegen, nicht in referenziert werden müssen. Das bedeutet, dass bei einem Deployment bzw. Redeployment der Maps die anderen Prozesse unbeeinflusst bleiben.

Das Problem der dynamischen Maps war an dieser Stelle gelöst, jedoch haben BizTalk- Maps (hinter denen XSLTs stecken) die dynamisch aufgerufen werden einen großen, entscheidenden Nachteil: Man kann Ihnen keine Parameter zuweisen!

Da das aber essentiell für die Gesamtarchitektur war, mussten wir uns eine Lösung hierfür ausdenken.

 

Um die Maps dynamisch aufzurufen und zur Laufzeit Parameter mitzugeben, lag die Lösung in einer C#- HelperKlasse bzw. Helper-Methoden. Der Aufruf findet in einem Message-Assingment-Shape statt.

 

 

 

 

 

 

 

 

zurück