ISA16-Komponentenelementtrennzeichen darf nicht Teil der Nutzlast sein

In diesem Artikel wird beschrieben, dass Datenwerte in der X12-Nachricht nicht mit dem ISA16-Zeichen (Komponentenelementtrennzeichen) identisch sein können.

Ursprüngliche Produktversion:   BizTalk Server
Ursprüngliche KB-Nummer:   2705105

Zusammenfassung

Eine Agreement-Eigenschaft gibt den Zeichenwert für ISA16 an. ISA16 ist das X12-Nachrichtenkomponentenelementtrennzeichen. Wenn die Gültigkeitsprüfung für eine CERT-Nachricht fehlschlägt, wird der 997-Wert nicht generiert, wenn der fehlerhafte Wert/das fehlerhafte Feld ein Zeichen enthält, das dem ISA16-Komponentenelementtrennzeichen entspricht. Der Parser kann das Trennzeichen in der Nutzlast nicht als Nutzlast und nicht als tatsächliches Trennzeichen unterscheiden.

Möglicherweise wird im Ereignisprotokoll der Anwendung ein Fehler angezeigt, der dem folgenden ähnelt: Ereignis 5743 Der Adapter konnte die Nachricht nicht übertragen, die den Port "997_SP" mit der URL "C: \ <output folder> " sendet. Sie wird nach dem für diesen Sendeport angegebenen Wiederholungsintervall erneut übertragen. Details: Der von der Pipeline erzeugte Datenstrom kann nicht gelesen werden.

Details: Fehler: 1 (Fehler auf Feldebene)
SegmentID: AK4
Position in TS: 71
Datenelement-ID: AK44
Position im Segment: 4
Datenwert:
6: Ungültiges Zeichen im Datenelement

Dies ist entwurfsbedingt und in der technischen Dokumentation BizTalk Server 2010 retired dokumentiert.

Wenn die Nutzlastdaten Zeichen enthalten, die auch als Daten-, Segment- oder Komponententrennzeichen verwendet werden, aktivieren Sie die Trennzeichen ersetzen in der Nutzlast, und geben Sie ein Ersatzzeichen oder Hexadezimalzeichen an. Beim Generieren der ausgehenden X12-Nachricht werden alle Instanzen von Trennzeichen in den Nutzlastdaten durch den angegebenen Zeichen- oder Hexadezimalwert ersetzt.

Weitere Informationen

Die zur Behandlung des Szenarios verfügbaren Problemumgehungen sind:

  1. Verwenden Sie die Agreement-Eigenschaft "Ersetzen Sie die Trennzeichen in der Nutzlast durch:", um das Komponentenelementtrennzeichen von der Standardeinstellung ":" auf einen anderen Wert festzulegen, der "$" lautet. Die Einstellung wird für alle Nachrichtentypen angewendet, die sich auf den Vertrag beziehen.

  2. Überschreiben Sie das Komponententrennzeichen (ISA16) für 997 mit dynamischen Umschlagüberschreibungen (Überschreiben von XAML-Headern. The 997 XML generated by XAML Disassembler will have a message type context property with value pertaining to 997. Schreiben Sie eine benutzerdefinierte Pipelinekomponente vor demBEI-Assembler, um nach der Nachrichtentypkontexteigenschaft für 997-Nachrichten zu suchen, und schreiben Sie die ISA16-Kontexteigenschaft für die Außerkraftsetzung. In diesem Fall wird nur das 997-Element mit einem anderen Komponententrennzeichen (ISA16) ausgegeben, und die restlichen Nachrichtentypen gehen ohne Änderung aus.

Gilt für

  • BizTalk Server Branch 2009
  • BizTalk Server 2009 Developer
  • BizTalk Server 2009 Enterprise
  • BizTalk Server 2009 Standard
  • BizTalk Server Branch 2010
  • BizTalk Server Developer 2010
  • BizTalk Server Enterprise 2010
  • BizTalk Server Standard 2010