get matched value(a)


Diese Funktion ist für die Dokumentenarten XML, EDIFACT und JSON (nur Felder) gedacht.

Sie liefert den Wert der Satzarterkennung zurück, der beim Einlesen der Daten für das Feld bzw. den Knoten a gegriffen hat. Damit die Funktion funktioniert, sind folgende Bedingungen zu erfüllen.


Parameterbeschreibung


Parameter

Beschreibung

a

Feld-/Knotenname. Will man den Satzarterkennungswert eines Feldes haben, muss der Typ des Funktions-Parameters Quellfeld sein. Will man den Satzarterkennungswert eines Knotens, muss der Typ Wert sein. Wichtiger Hinweis: Bei der Dokumentenart EDIFACT (Dokumentenart) liefern nur Knoten ein sinnvolles Ergebnis. Zudem wird dabei die gesamte Datenzeile zurückgegeben, für die der Matchcode gegriffen hat, und nicht der Matchcode selbst, z. B. LIN+1++101556:SA

Beispiel


Gegeben sei folgende XML-Struktur.


matchedvalue.xsd
<?xml version="1.0" encoding="UTF-8"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<s:element name="datalines" minOccurs="0" maxOccurs="unbounded">
<s:complexType>
<s:sequence>
<s:element name="data" minOccurs="0" maxOccurs="unbounded">
<s:complexType>
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="date" type="s:string"/>
<s:attribute name="time" type="s:string"/>
<s:attribute name="datetime" type="s:string"/>
</s:extension>
</s:simpleContent>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>


Ein dem Schema entsprechendes XML sieht z. B. folgendermaßen aus.


matchedvalues.xml
<datalines>
<data date="2011-12-23"/>
<data time="12:34:56"/>
<data datetime="2011-12-23 12:34:56"/>
</datalines>


Hier soll dieses XML in eine einfache CSV-Datei der Form


Date:2011-12-23 00:00:00
Date:1970-01-01 12:34:56
Date:2011-12-23 12:34:56


umgewandelt werden. Prinzipiell müsste man eingangsseitig ein Feld je Attribut erstellen und im Mapping entscheiden, aus welchem Feld der entsprechende Wert verwendet werden soll. Unter Nutzung dieser Funktion lässt sich die aber auf ein Feld zusammenfassen.


images/download/attachments/189463378/293-version-1-modificationdate-1738734861200-api-v2.png


Die Satzart-Erkennungen auf dem Quellstruktur-Feld date-2_attr lauten folgendermaßen.


Bedingung

Wert

Ist gleich

date

Ist gleich

time

Ist gleich

datetime

Auf dem Zielstruktur-Feld datefield sind folgende Funktionen definiert.


1) get matched value(a)
a field: date-2_attr
 
2) replace value(a, list b, list c)
a result: 1
b constant: date,time,datetime
c constant: yyyy-MM-dd,HH:mm:ss,yyyy-MM-dd HH:mm:ss
 
3) create date strict(value a, adjustable template b, default c, [locale d])
a linked field:
b result: 2
c constant: error
d constant:
 
4) concat( a, b )
a constant: Date:
b result: 3

Beispielprofil


Das in diesem Beispiel verwendete Profil können Sie sich hier herunterladen: Profile-get_matched_value_example.pak

Importieren Sie das Profil.

Wenn Sie einen Mappingtest durchführen, finden Sie dort auch die Eingangs-XML-Datei.