BizTalk: Zugriff auf UNB-Segment und AS2-Eigenschaften innerhalb Orchestration

by wolfgang@gehirnwindung.de (Wolfgang) Februar 15, 2010 21:30

In einer Orchestration bekommt man es normalerweise nur noch mit den eigentlichen Daten einer Nachricht zu tun. So sind bei EDIFACT-Nachrichten z.B. die UNA- und UNB-Segmente nicht Teil des Schemas. Weiterhin fehlen auch die AS2-Header und eben alles, was nicht unbedingt benötigt wird. Das hat seine Vorteile (ist aufgeräumt), manchmal wird aber auch der Zugriff auf diese Daten benötigt.

Läuft eine Nachricht mal auf einen Fehler, so kann man in den "Message Details" erkennen, dass verschiedene "Context-Properties" aus eben diesen sonst nicht sichtbaren Segmenten (oder aus dem Protokoll) zu den einzelnen Nachrichten zugewiesen sind.

Auf diese Kontexteigenschaften kann man mittels Message(ContextProperty) innerhalb einer BizTalk Server Expression Shape in Orchestration Expression Shape zugreifen. Im Falle von EDIFACT-Eigenschaften muss aber - damit man die Auswahl der Context Properties überhaupt zu sehen bekommt - noch eine Referenz auf die DLL Microsoft.BizTalk.Edi.BaseArtifacts (oft zu finden unter C:\Program Files\Microsoft BizTalk Server 2006\Microsoft.BizTalk.Edi.BaseArtifacts.dll) zum Projekt hinzugefügt werden.

Mit dieser Referenz sind dann Kontexteigenschaften in den Namespaces EDI (für EDIFACT und X12 - Eigenschaften) und EdiIntAs (für AS2 - Eigenschaften) vorhanden.

Tags: , , ,

Microsoft BizTalk Server

Führende und anhängende Nullen oder Leerzeichen in EDI-Dokumenten

by Wolfgang Kluge März 26, 2009 16:45

Falls sich mal jemand wundern sollte, warum beim Import oder Export von EDI-Dokumenten Fehler wie z.B.

Error: 1 (Field level error)
SegmentID: NAD
Position in TS: 9
Data Element ID: C08201
Position in Segment: 3
Position in Field: 1
Data Value: ...
37: Invalid character(s) found in data element

auftauchen. Das kann daran liegen, dass Zahlen mit "unnötigen" Nullen als Fehler gewertet werden. So muss z.B. aus "8,70" eigentlich "8,7" und auch aus "9,00" eine "9" werden. "09" geht auch nicht und muss ebenso zur "9" werden. Ein weiterer Fehlerfall sind führende oder anhängende Leerzeichen in den Feldern.

Hier gibt es aber Abhilfe in den Einstellungen. Zu finden bei den Party-EDI-Einstellungen (bzw. bei den Standard - Einstellungen) unter "ACK Generation and Validation Settings" bzw. "ACK Processing and Validation Settings" -> "Allow leading and trailing zeroes and spaces".

Ist diese Option aktiviert, so werden diese Fehler nicht mehr ausgelöst. Leider kann man sich nicht auf Nullen oder Leerzeichen beschränken. Man muss immer gleich beides erlauben.

Beim Export empfehle ich, diese Einstellung nicht zu setzen sondern die Zahlen und Texte wirklich so kurz wie möglich auszugeben - andere könnten sich daran stören und keine so einfache Lösung parat haben.

Tags: ,

Microsoft BizTalk Server

Powered by BlogEngine.NET 1.6.1.6
Theme by Mads Kristensen | Modified by Mooglegiant and me ;)