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

Suche

über alle News und Events

 

Alle News

 

Was ist ein Excel-Plugin – und wann ist es...

Weiterlesen

Wir expandieren, bringen Kunden und Talente besser...

Weiterlesen

Um HTML zum PDF zu konvertieren, werden wir...

Weiterlesen

Die Logic Apps-Plattform von Microsoft ermöglicht...

Weiterlesen

Du bist neugierig auf aktuelle KI-Technologien und...

Weiterlesen

Am 27.09. ab 12.30h starten die vierten QUIBIQ...

Weiterlesen

"Das Beste von SAP und Microsoft nutzen": auf dem...

Weiterlesen

Azure Bicep wird verwendet, um Ressourcen in Azure...

Weiterlesen

In einer Welt, die immer digitaler wird, ist es...

Weiterlesen

Dieser Artikel beschreibt wie JSON-Dateien anhand...

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