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

Suche

über alle News und Events

 

Alle News

 

Für Entwickler, Architekten, Projektleiter und...

Weiterlesen

In der Welt der Softwareentwicklung ist die...

Weiterlesen

QUIBIQ spendet für den guten Zweck – und für...

Weiterlesen

Eine bestimmte Antwort auf einen HTTP Request zu...

Weiterlesen

In einer Welt, die von stetigem Wandel geprägt...

Weiterlesen

In einem unserer Kundenprojekte, war das Ziel eine...

Weiterlesen

QUIBIQ Hamburg wird mit dem Hamburger...

Weiterlesen

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Weiterlesen

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

Weiterlesen

Wir expandieren, bringen Kunden und Talente besser...

Weiterlesen

How-to: Die Tücken von BizTalk EDIDataValidation in Verbindung mit InterchangeXML

Wir hatten vor kurzem den Wunsch eines Kunden, im PCI- Segment den Wert „33E“ einzutragen. Das Ganze sollte im PAC-Segment folgendermaßen aussehen: „'PAC+422'PCI+33E'“. Wir wollten das dann schnell mappen und haben festgestellt, dass der Wert „33E“ im EDIFACT-Standard nicht erlaubt ist. Was macht man dann normarlerweise? Man schaltet die Validierung in EDISend der EDISend-Pipeline aus. Gesagt, getan. Jedoch ist das nur die halbe Miete. Warum seht ihr in den folgenden Absätzen.

BizTalk Ausganssituation (Bindings können runtergeladen werden, falls ihr das auch ausprobieren wollt)
 

BizTalk Application:      EDI Validation Testing
References:                  BizTalk EDI Application

Receive Port:                RP.EDITesting.XML
Receive Location:         RL.EDITesting.XML.File
Receive Pipeline:          XMLReceive

Send Port:                    SP.EDITesting.EDIFact.File
Send Pipeline:              EdiSend
Filters:                         BTS.ReceivePortName == RP.EDITesting.XML
 

Dateien die zum Testen verwendet werden

Es werden insgesamt 4 Dateien zum Testen verwendet:

http://schemas.microsoft.com/Edi/Edifact#EdifactInterchangeXml

http://schemas.microsoft.com/Edi/Edifact#EdifactInterchangeXml

Im ersten Teil des Tests ist die die Validierung in der EDISend-Pipeline eingeschaltet:

Wenn wir jetzt die 2 validen und die zwei nicht validen Dateien in die ReceiveLocation legen, erwarten wir zwei erfolgreich verarbeitete Dateien und zwei Dateien die aufgrund von Validation Errors nicht verarbeitet werden konnten:

Im out Verzeichnis landen wie erwartet zwei EDI-Files:

Und zwei Files bleiben wie erwartet im BizTalk „hängen“ und sind suspended aufgrund von nicht validen Daten.

Im zweiten Teil des Tests schalten wir die Validierung in der SendEDI-Pipeline aus.
Vor dem zweiten Testdurchlauf wird der BizTalk Server und das Ausgangsverzeichnis gesäubert.

Es werden dieselben Testdaten verwendet:

Nachdem man die Daten in das Eingangsverzeichnis gelegt hat, würde man erwarten, dass alle 4 Dateien verarbeitet werden, da man ja die Validierung ausgeschaltet hat.

Es landen jedoch nur 3 Files im Ausgangsverzeichnis

Was ist denn im BizTalk passiert?

Komischerweise immer noch derselbe Fehler ☹, obwohl die Validierung ausgeschaltet wurde. ABER das gilt nur für die InterchangeXML.

Der Kunde wollte aber immer noch die „33E“ übertragen. Die Lösung ist ein Workaround. Entweder das Schema anpassen und „33E“ auch erlauben oder die Dateien debatchen und einzeln verarbeiten.

Have Fun,

Ugur

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