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.
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.
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.
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!
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.