Eingebettete Nachricht über eine Nachrichten-ID identifizieren

Hier wird beschrieben, wie eine eingebettete Nachricht über die Nachrichten-ID identifiziert werden kann. Das Nachrichten-ID-Verfahren zum Identifizieren einer eingebetteten Nachricht ersetzt die Identifizierung über den Nachrichtenschlüssel.

Das Nachrichten-ID-Verfahren zum Identifizieren eingebetteter Nachrichten ist hilfreich, wenn eine mehrteilige Nachricht ein Format wie das unten in Abbildung 1 gezeigte Format aufweist.

Abbildung 1. Struktur einer mehrteiligen NachrichtStruktur einer mehrteiligen Nachricht

In diesem Beispiel dienen der Nachrichtenheader (Message Header) und Nachrichtentrailer (Message Trailer) als Umschlag für den Nachrichteninhalt. Sie besitzen in der Regel eine festgelegte Struktur, der Nachrichtenhauptteil (Message Body) kann jedoch mit vielen verschiedenen Strukturen definiert sein.

Ein Platzhalter für eine eingebettete Nachricht wird erstellt, indem die Eigenschaft Zusammensetzung des komplexen Typs oder der Gruppe des Elements 'Nachrichtenhauptteil' auf Nachricht gesetzt wird. Dadurch ist es möglich, an dieser Stelle innerhalb der äußeren Nachricht eine eingebettete Nachricht hinzuzufügen und so eine mehrteilige Nachricht zu erzeugen.

Wenn zum Analysieren einer solchen mehrteiligen Nachricht das Nachrichten-ID-Verfahren eingesetzt wird, muss die eingebettete Nachricht vorher im Nachrichtenheader (Message Header) über ein Nachrichten-ID-Element (Message Identity) identifiziert werden. Dabei handelt es sich um ein Zeichenfolgeelement (oder Attribut), das der eingebetteten Nachricht im Modell vorausgeht und dessen Eigenschaft Interpret Value As (Wert interpretieren als) auf Message Identity (Nachrichten-ID) gesetzt ist.

Wenn eine mehrteilige Nachricht in einen Nachrichtenfluss eingegeben wird, sollte das Nachrichten-ID-Element einen Wert haben, der entweder dem Wert der Option Name oder der Option Nachrichtenaliasname der nächsten eingebetteten Nachricht im Bitstrom entspricht. Dadurch kann der MRM-Parser die eingebettete Nachricht im Modell richtig identifizieren.

Verwenden Sie in Fällen, in denen der Wert des Nachrichten-ID-Elements nicht dem Wert der Option Name der Nachricht entspricht, die Eigenschaft Nachrichtenaliasname, um diesen Wert anzugeben. Der MRM-Parser führt zuerst einen Abgleich mit dem Wert von Name durch und, wenn dieser fehlschlägt, anschließend mit dem Wert von Nachrichtenaliasname.

Sobald der MRM-Parser ein Nachrichten-ID-Element gefunden hat, gilt dessen Wert für alle eingebetteten Nachrichten, die unmittelbar in der aktuellen Nachricht enthalten sind. Dies gilt nicht für eingebettete Nachrichten innerhalb von eingebetteten Nachrichten. Jede eingebettete Nachricht muss eine eigene Identität besitzen, die durch ein Nachrichten-ID-Element innerhalb der ihr unmittelbar übergeordneten Nachricht bereitgestellt wird.

Wenn innerhalb der aktuellen Nachricht ein zweites Nachrichten-ID-Element gefunden wird, überschreibt dessen Wert jeden zuvor gespeicherten Wert. Auf diese Weise können eingebettete Nachrichten verschiedener Peers innerhalb einer bestimmten Nachricht existieren.

Das Nachrichten-ID-Verfahren hat Vorrang vor dem Nachrichtenpfad-Verfahren. Wenn beide Verfahren angegeben sind, wird das Nachrichten-ID-Verfahren eingesetzt. Es wird empfohlen, für eine bestimmte mehrteilige Nachricht immer nur eines dieser Verfahren zu verwenden.

Eingebettete Nachrichten, die in verschiedenen Nachrichtengruppen definiert sind

Standardmäßig wird vorausgesetzt, dass eine eingebettete Nachricht innerhalb derselben Nachrichtengruppe wie die aktuelle Nachricht definiert ist. Diese Standardeinstellung kann durch eine Nachrichtengruppen-ID (Message Set Identity), die auf ähnliche Weise wie eine Nachrichten-ID (Message Identity) funktioniert, außer Kraft gesetzt werden.

Die Nachrichtengruppe einer eingebetteten Nachricht, die in einer anderen Nachrichtengruppe definiert ist, muss an einer früheren Stelle in der Nachricht über ein Nachrichtengruppen-ID-Element identifiziert werden. Dabei handelt es sich um ein Zeichenfolgeelement (oder Attribut), das der eingebetteten Nachricht im Modell vorausgeht und dessen Eigenschaft Interpret Value As (Wert interpretieren als) auf Message Set Identity (Nachrichtengruppen-ID) gesetzt ist.

Wenn eine mehrteilige Nachricht in einen Nachrichtenfluss eingegeben wird, sollte das Nachrichtengruppen-ID-Element einen Wert haben, der entweder dem Wert der Option ID, Name oder Nachrichtensatzaliasname der Nachrichtengruppe entspricht, in der die nächste eingebettete Nachricht im Bitstrom definiert ist. Dadurch kann der MRM-Parser die zu verwendende Nachrichtengruppe richtig identifizieren.

Verwenden Sie in Fällen, in denen der Wert des Nachrichtengruppen-ID-Elements nicht dem Wert der Option ID oder Name der Nachrichtengruppe entspricht, die Eigenschaft Nachrichtensatzaliasname, um diesen Wert anzugeben. Der MRM-Parser führt zuerst einen Abgleich mit dem Wert von ID, dann mit dem Wert von Name und schließlich mit dem Wert von Nachrichtensatzaliasname durch.

Sobald der MRM-Parser ein Nachrichtengruppen-ID-Element gefunden hat, gilt dessen Wert für alle eingebetteten Nachrichten, die in der aktuellen Nachricht enthalten sind. Er gilt auch für eingebettete Nachrichten innerhalb von eingebetteten Nachrichten, außer wenn eine eingebettete Nachricht ebenfalls ein Nachrichtengruppen-ID-Element enthält.

Wenn innerhalb der aktuellen Nachricht ein zweites Nachrichtengruppen-ID-Element gefunden wird, überschreibt dessen Wert jeden zuvor gespeicherten Wert. Dadurch ist es möglich, dass sich eingebettete Nachrichten von Peers in verschiedenen Nachrichtengruppen befinden.

Das folgende Beispiel einer X12-Nachricht zeigt die Verwendung sowohl des Nachrichten-ID- als auch des Nachrichtengruppen-ID-Verfahrens. Das Feld mit dem Inhalt 004010X092 innerhalb des GS-Segments in Zeile 0002 enthält die Nachrichtengruppen-ID in Form eines Nachrichtensatzaliasnamens. Der Wert 270 in Zeile 0003 im ST-Segment ist die Nachrichten-ID in Form eines Nachrichtenaliasnamens. Die eingebettete Nachricht reicht von Zeile 0004 bis einschließlich Zeile 0015.

Anmerkung: Die Zeilennummern und Leerzeichen am Anfang der Zeilen dienen lediglich der besseren Übersichtlichkeit, in der eigentlichen Nachricht sind sie nicht enthalten.
0001  ISA*00*          *00*          *30*12-3456789     *ZZ*9876543-21     *000104*1820*U*00401*000000001*0*T*:!
0002  GS*HS*HOSP CLAIM*PAYER ADJDEPT*20000104*1820*1*X*004010X092!
0003  ST*270*1234!
0004  BHT*0022*13*10001234*19990501*1319!
0005  HL*1**20*1!
0006  NM1*PR*2*ABCCOMPANY*****PI*842610001!
0007  HL*2*1*21*1!
0008  NM1*1P*2*BONE AND JOINT CINIC*****SV*2000035!REF*N7*234899!
0009  N3*55*HIGH STREET!
0010  N4*SEATTLE*WA*98123!
0011  HL*3*2*22*0!TRN*1*93175-12547*9877281234!
0012  NM1*IL*1*SMITH*ROBERT*B***MI*11122333301!
0013  REF*1L*599119!
0014  DMG*D8*19430519*M!
0015  DTP*472*RD8*19990501-19990515!EQ*30**FAM!SE*17*1234!
0016  GE*1*1!IEA*1*000000001!

Hinweise zum physischen Format

Sowohl das Nachrichten-ID- als auch das Nachrichtengruppen-ID-Verfahren können für alle physischen Formate eingesetzt werden. In Versionen des physischen TDS-Format vor Version 6.0 erfolgte die Identifizierung von eingebetteten Nachrichten über den Nachrichtenschlüssel (Message Key), ein Verfahren, das ähnlich funktionierte wie das Nachrichten-ID-Verfahren. Der Nachrichtenschlüssel wird nicht weiter unterstützt und wurde durch die Nachrichten-ID abgelöst.

Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ad00761_