Zusammenführen/Aufteilen von Datenelementen
In EDI-Segmenten können oft mehrere aufeinander folgende Instanzen desselben Datenelements vorkommen. Dies ist z.B. beim N2-Segment (Additional Name Information) des 850 - PURCHASE ORDER Transaction Set des X12-Standards möglich. Im N2-Segment dürfen der Spezifikation gemäß zwei aufeinander folgende alphanumerische Name-Felder vorkommen, von denen eines davon obligatorisch, eines optional ist (Abbildung unten).
Für Segmente, in denen mehrere sich wiederholende Instanzen eines bestimmten Datenelements vorkommen können, ist das Attribut mergedEntries für das entsprechende Data-Element in der .Segment-Datei definiert (im Codefragment unten gelb markiert). Die .Segment-Datei ist standardmäßig im Ordner MapForceEDI\<EDI_Standard> Ihres Applikationsordners gespeichert.
<Segment name="TI" info="Transport Information">
<Data ref="F140" minOccurs="0" mergedEntries="2"/>
<...>
</Segment>
Wenn Sie eine EDI-Konfiguration erstellen oder ändern, können Sie für alle Instanzen eines Datenelements einen einzigen Node verwenden (zusammengeführte Einträge) oder dieses Datenelement in separate Nodes aufteilen (siehe unten).
Methode 1: Verwendung eines einzigen Node für alle Instanzen des Datenelements
Bei dieser Methode verwenden wir einen einzigen Node für alle Instanzen eines Datenelements. Standardmäßig wird das Datenelement F93 des Segments N2 als ein einziger Node im Mapping dargestellt (Abbildung unten). Wenn Sie den Node F93 mit einem Ziel-Node verbinden, werden in der Zielkomponente so viele Datenelemente erstellt, wie Instanzen von F93 in der Quellkomponente vorkommen. Dies entspricht dem grundlegenden Prinzip von MapForce-Verbindungen: Erstelle für jedes Datenelement in der Quellkomponente ein Datenelement in der Zielkomponente.
Um sicherzustellen, dass das Datenelement F93 als ein einziger Node dargestellt wird, öffnen Sie die Datei X12.Segment und überprüfen Sie, ob im Datenelement F93 des N2-Segments das Attribut mergedEntries definiert ist. Im unten gezeigten Codefragment hat das Attribut mergedEntries den Wert 2. Das bedeutet, dass das Datenelement in der EDI-Instanzdatei bis zu zwei Mal hintereinander vorkommen darf, doch wird das Datenelement im Mapping als ein einziger Node angezeigt.
<Segment name="N2" info="Additional Name Information">
<Data ref="F93" mergedEntries="2"/>
</Segment>
Beim Mappen von Daten aus einem Datenelement mit zusammengeführten Einträgen werden in der Zielkomponente für jede Instanz dieses Elements mehrere duplizierte Elemente erstellt. In unserem Beispiel enthält das N2-Segment zwei aufeinander folgende Instanzen von F93 (Michelle Butler und Mrs):
N2+Michelle Butler+Mrs'
Wenn Sie Daten aus einer solchen EDI-Datei mappen, würde die folgende Ausgabe erzeugt (beachten Sie, dass <ContactName> zwei Mal vorkommt):
<Customer>
<Number>123</Number>
<ContactName>Michelle Butler</ContactName>
<ContactName>Mrs</ContactName>
<CompanyName>Nanonull, Inc.</CompanyName>
</Customer>
Die Verwendung dieser Methode ist dann sinnvoll, wenn die einzelnen Instanzen des Datenelements für sich selbst keinen Sinn ergeben und Sie im Mapping keinen separaten Node für jede einzelne Instanz erzeugen möchten. So können etwa in einem Datenelement mit mehreren Instanzen mehrere Zeileneinträge, aus denen eine Adresse besteht, gespeichert sein. In solchen Fällen eignet sich die Methode der "zusammengeführten Einträge" eventuell besser als die Verwendung einzelner Nodes für jede Adresszeile.
Methode 2: Aufteilen eines Datenelements in mehrere Nodes
Bei dieser Methode erstellen Sie in der .Segment-Datei mehrere Instanzen des Datenelements. In diesem Fall werden für jede Instanz des Datenelements im Mapping separate Nodes angezeigt. Wir haben die X12.Segment-Datei geändert, sodass das N2-Segment nun zwei Instanzen des F93-Datenelements hat, nämlich F93_1 und F93_2 (siehe Codefragment unten).
<Segment name="N2" info="Additional Name Information">
<Data ref="F93" nodeName="F93_1"/>
<Data ref="F93" nodeName="F93_2" minOccurs="0"/>
</Segment>
Mit dieser Konfiguration werden in der Komponente 850 zwei separate F93-Nodes erstellt.
Diese Methode eignet sich dann, wenn jede Instanz des Datenelements auch alleinstehend Sinn ergibt, sodass separate Nodes im Mapping sinnvoll sind.