Suche

über alle News und Events

 

Alle News

 

Auch am dritten Tag gab es interessante...

Weiterlesen

Die großen Ankündigungen aus dem ersten Tag...

Weiterlesen

Keynote - Stand der Integration - Jon Fancey:...

Weiterlesen

Integrieren Sie noch oder managen Sie bereits den...

Weiterlesen

Inwieweit lassen sich vorhandene BizTalk Lösungen...

Weiterlesen

Wie kann ein Prozess Monitoring einfach und...

Weiterlesen

Führende Veranstaltung rund um Connectivity auf...

Weiterlesen

Stellenanzeige: Wir suchen dringend an unserem...

Weiterlesen

Bemerkenswert ist, dass man mit Postman oder...

Weiterlesen

How-to: Merker-Elemente in einem Flatfileschema-Maps nutzen – so geht's

Heute schreiben wir über eine Spezialität in BizTalk-Mappings, die einem wohl nur selten begegnet. Es geht darum, eine Funktion nur einmal – und zwar anfangs – auszuführen, ohne dass dies in der Ausgangsdatei Spuren hinterlässt.

Problem: Ein Wert („Kundennummer“) sollte in der Map nur einmal gelesen werden, aber mehrmals ausgegeben werden (in „Avis/Kundennummer“). Eine verbreitete Lösung hierfür ist, dass man auf dem Rootknoten („Verbandsavise“) einen Skripting-Funktoid „SF1“ erstellt, der die Variable global setzt und man sie dann in einem zweiten Skripting-Funktoid „SF2“ („Avis/Kundennummer“) nur noch ausliest.

Der BizTalk-Mapper unterstützt einen ja in der täglichen wunderbar darin, dass man komplizierte Mappings einfach realisieren kann; dabei hat man natürlich den Nachteil, dass man bei einem graphischen Mapper nicht mehr alles so in der Hand hat, was man direkt in XSLT programmieren könnte. In diesem Fall ist es so, dass das Skripting-Funktoid „SF1“ immer erst ausgeführt wurde, nachdem die Positionen („Avis“) erstellt worden sind. Im Ergebnis war dann natürlich die Kundennummer immer unbekannt.


Lösung: Wir haben ein neues Merker-Element („MerkerKundennummer“) oberhalb des Positionen-Records erstellt und mit minOccurs=0 belegt. Zwischen dem Skripting-Funktoid „SF1“ und dem Knoten haben wir ein logisches Funktoid eingesetzt, das vom Skripting-Funktoid „SF1“ immer ein false bekommt und damit unterdrückt, dass das Merker-Element erstellt wird. 


Resultat: Der Code aber wird nun vor dem Positionen-Record ausgeführt und die Kundennummer ist bekannt, wenn sie im Record erstellt wird. Weil das Merker-Element nicht erstellt wird, wird hierfür im erzeugten Flatfile auch kein Zeilenumbruch erstellt.


Voila!
Christoph

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz