Ändern der Nachrichtenstruktur
In jeder <Message>.Config-Datei wird die Struktur eines Message-Elements durch das XML-Schema des EDI-Standards, den Sie anpassen, vorgegeben. Nähere Informationen dazu finden Sie unter EDI-Konfigurationsschemas. Um die Struktur der Nachricht zu ändern, müssen Sie sowohl die Dokumentation zu Ihrem benutzerdefinierten EDI-Standard als auch das XML-Schema konsultieren. In diesem Kapitel wird erläutert, wie Sie Segmente, Datenelemente und Composites hinzufügen, Gruppen und Schleifen erstellen, den Typ und die Länge von Datenelementen festlegen und obligatorische/optionale Elemente definieren.
Hinzufügen von Segmenten, Datenelementen und Composites
Um Datenelemente, Segmente, Composites und Subcomposites hinzuzufügen, erstellen Sie die Elemente <Data>, <Segment>, <Composite> und <SubComposite>. Gehen Sie dazu folgendermaßen vor:
•Die .Segment-Datei muss die Liste aller global definierten Segmente und Datenelemente enthalten.
•Die .Config-Datei für den jeweiligen Nachrichtentyp muss die eigentliche Struktur dieser Nachricht enthalten (die Hierarchie von Segmenten, Composites und Datenelementen).
Mit Hilfe der .Segment-Datei kann ein Datenelement einmal definiert und in mehreren Nachrichten in .Config-Dateien wiederverwendet werden.
Beispiel 1: Hinzufügen von Datenelementen
Im Codefragment unten sehen Sie, wie das Datenelement F100 in der Datei X12.Segment der HIPAA.X12-Collection definiert ist:
<Data name="F100" type="string" maxLength="3" minLength="3" info="Currency Code" />
Im Codefragment unten sehen Sie, wie das CUR-Segment der Transaktion Health Care:Professional (837-Q1) das Datenelement F100 referenziert:
<Include href="X12.Segment" />
<...>
<Segment name="CUR" minOccurs="0" info="Foreign Currency Information">
<Data ref="F100" info="Currency Code" />
</Segment>
Der obige Ausschnitt enthält auch eine Referenz auf die externe X12.Segment-Datei (<Include href="X12.Segment" />), in der das Datenelement F100 definiert wurde.
Beispiel 2: Hinzufügen von Segmenten
In diesem Unterabschnitt wird erläutert, wie Sie ein optionales TA1-Segment hinzufügen. Mit diesem in X12- und HIPAA-Dokumenten verwendeten Segment wird der Empfang eines Nachrichtenaustauschs und die syntaktische Korrektheit der Envelope-Segmente bestätigt. Um das TA1-Segment in eine EDI-Komponente zu inkludieren, gehen Sie vor, wie unten beschrieben.
1.Erstellen Sie anhand der X12-Collection eine benutzerdefinierte EDI-Collection. Damit stellen Sie sicher, dass Ihre Änderungen keine Auswirkung auf die Originalkonfiguration haben.
2.Öffnen Sie die Datei Envelope.Config Ihrer benutzerdefinierten EDI-Collection in einem XML-Editor.
3.Fügen Sie den Text <Segment ref="TA1" minOccurs="0" maxOccurs="unbounded"/>, wie unten gezeigt, hinzu:
<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../EDIConfig.xsd" Version="3">
<Meta>
<Release>6020</Release>
<Agency>X12</Agency>
</Meta>
<Format standard="X12"/>
<Include href="X12.Segment"/>
<Include href="X12.Codelist"/>
<Include collection="EDI.Collection"/>
<Group name="Envelope">
<Group name="Interchange" maxOccurs="unbounded">
<Segment ref="ISA" minOccurs="0"/>
<Segment ref="TA1" minOccurs="0" maxOccurs="unbounded"/>
<Group name="Group" maxOccurs="unbounded">
...
</Group>
<Segment ref="IEA" minOccurs="0"/>
</Group>
</Group>
</Config>
4.Speichern Sie die Datei.
Mit der oben markierten Zeile wird eine Referenz auf das in X12.Segment definierte TA1-Segment hinzugefügt. Sie können die Struktur des TA1-Segments nun folgendermaßen in MapForce anzeigen: Fügen Sie eine EDI-Komponente ein, wählen Sie Ihre benutzerdefinierte Collection sowie den entsprechenden Nachrichtentyp aus. In unserem Beispiel haben wir die Nachricht 850 ausgewählt. Das TA1-Segment ist nun Teil der 850-Komponente (rotes Rechteck unten).
Erstellen von Gruppen und Schleifen
Bei der Erstellung oder Änderung von EDI-Strukturen muss oft eine Gruppe von Segmenten oder Datenelementen erstellt werden. Eine Nachricht in einer EDI-Komponente wird ebenfalls als Gruppe betrachtet, da sie mehrere Segmente, aus denen diese Nachricht besteht, in einer Gruppe vereint. Gruppen können untergeordnete Gruppen enthalten. Außerdem können sie wiederholt vorkommen. In diesem Fall werden sie zu Schleifen. Gruppen und Schleifen können durch Hinzufügen eines <Group>-Elements erstellt werden. Mit Hilfe des Attributs maxOccurs kann die maximale Anzahl der Instanzen einer Schleife festgelegt werden. Im folgenden Codefragment sehen Sie eine Schleife, die bis zu 25 Mal vorkommen kann, optional ist und aus zwei Segmenten besteht:
<Group name="LoopSAC" maxOccurs="25" minOccurs="0">
<Segment ref="SAC"/>
<Segment ref="CUR" minOccurs="0"/>
</Group>
Definieren des Typs und der Länge von Datenelementen
Mit Hilfe des Attributs type eines Datenelements können Sie seinen Datentyp definieren. Bei den möglichen Datentypen handelt es sich im Allgemeinen um alle XML-Schematypen, die in den Standardkonfigurationsdateien verwendet werden. Die folgenden simpleTypes werden nicht unterstützt: anyType, ENTITIES und QName.
Mit Hilfe der Attribute minLength und maxLength eines Datenelements kann dessen minimale und maximale Länge definiert werden.
Definieren obligatorischer/optionaler Datenelemente
Bei obligatorischen Datenelementen ist der Standardwert des Attributs minOccurs 1. Um ein Datenelement als optional zu definieren, definieren Sie als Wert des Attributs minOccurs den Wert 0. Im Codefragment unten sehen Sie z.B. zwei obligatorische Datenelemente (F1331 und F1332) und ein optionales Datenelement (F1325). Da die minOccurs-Attribute aus den beiden ersten Datenelementen fehlen, bedeutet dies, dass F1331 und F1332 den Standardwert 1 erhalten.
<Composite name="C023" info="Health Care Service Location Information">
<Data ref="F1331"/>
<Data ref="F1332"/>
<Data ref="F1325" minOccurs="0"/>
</Composite>