CONNECTED Conference 2023 - Aufzeichnungen jetzt hier verfügbar +++                     

Suche

über alle News und Events

 

Alle News

 

Regelmäßige Bewegung ist ein wesentlicher Faktor,...

Weiterlesen

In diesem Artikel wird das Microsoft Common Data...

Weiterlesen

The self-hosted gateway is a feature of the API...

Weiterlesen

Wer Programmieren lernen will, wer genau das zu...

Weiterlesen

Mit einer cleveren Idee und einem engagierten Team...

Weiterlesen

Im Szenario einer Ablösung vom BizTalk Server 2016...

Weiterlesen

Neben der herkömmlichen, vierjährigen Ausbildung...

Weiterlesen

Bei Datenübertragungen stossen wir teilweise an...

Weiterlesen

Durable Function ist eine Erweiterung der...

Weiterlesen

Wir haben eine gute, vor allem spannende und hoch...

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