get matched value(a)
Gruppe |
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.
Es muss die Option Normaler Datenmapper verwendet werden.
Die Checkbox Werte der Satzarterkennungen für Funktionen im Mapping vorhalten muss gesetzt sein.
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.
<?
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.
<
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.
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
Wenn Sie einen Mappingtest durchführen, finden Sie dort auch die Eingangs-XML-Datei.