get matched value()

Prev Next

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.

Parameter

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

images/download/attachments/201686633/293-version-1-modificationdate-1750233231946-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.