Kettenoperatoren

Die folgende Operatoren stehen Ihnen zur Verfügung: concat, subtext, indexof.

Zusammenfügen von Ketten

XML-Tag:

Concat

Operanden:

genau eine Wertemenge (Ketten)

Synopsis:

<concat>

<Wertemenge 1>

</concat>

Operanden:

TEXT

Ergebnis:

Wert (Kette)

Ergebnistyp:

TEXT

Berechnung (PPM3/PPM4)

Ergebnis

Ergebnis der Konkatenation aller in der Wertemenge enthaltenen Ketten. NULL, wenn Operand Leermenge

Fehler

Wenn mind. ein Wert von unzulässigem Datentyp

Beispiel:

-

Extraktion von Teilzeichenketten

XML-Tag:

Subtext

Operanden:

Genau ein Wert (Kette)

Synopsis:

<subtext beginindex="..." [endindex=" "]>

<Value>

</subtext>

Beispiel

<subtext>

<Value>

<beginindex>...</beginindex>

<endindex>...</endindex>

</subtext>

Verwenden Sie immer nur eine der beiden gezeigten Varianten (Index-Angabe entweder als XML-Attribute oder als XML-Elemente)

Operanden:

TEXT

Ergebnis:

Wert (extrahierte Zeichenkette)

Ergebnistyp:

TEXT

Beschreibung:

Extrahiert aus einer Teilzeichenkette durch Angabe positiver Indizes (vom Stringanfang) bzw. negativer Indizes (vom Stringende).

Berechnung (PPM3)

Ergebnis

Liefert eine Teilzeichenkette der vom Operanden übergebenen Zeichenkette.
NULL, wenn angegebene Indizes ungültig

Fehler

Wenn Operand NULL oder von unzulässigem Datentyp

Berechnung (PPM4)

Ergebnis

Liefert eine Teilzeichenkette der vom Operanden übergebenen Zeichenkette.
NULL, wenn angegebene Indizes ungültig oder Operand NULL

Fehler

Bei unzulässigem Datentyp (nicht TEXT)

Beispiel:

<subtext beginindex="-3" endindex="-1">
<filteredattribute name="AT_XYZ"
nodetype="OT_FUNC"/>
</subtext>

Beispiel

<subtext>
<beginindex>-3</beginindex>
<endindex>-1</endindex>
<filteredattribute name="AT_XYZ"
nodetype="OT_FUNC"/>
</subtext>

Bei einem angenommenen Wert ABCDE des Attributs AT_XYZ wird die Teilzeichenkette CD extrahiert.

Positionsbestimmung eines Teiltextes in einem anderen Text

XML-Tag

<indexof>

Bezeichnung

Liefert den Index in einem Text (Operand 1) an dem das erste Vorkommen eines Teiltextes (Operand 2) steht, beginnend an einem angegebenen Index (Operand 3).

Operanden

(Position/

Datentyp)

1 / TEXT

2 / TEXT

[ 3 / LONG ], optional, Standardwert ist 0

Berechnung

ab PPM 9.0

Berechnung

(PPM4)

Ergebnis

-1, wenn mind. 1 Operand gleich NULL oder der Teilstring nicht gefunden wird

Index des ersten Vorkommen des durch Operand 2 bestimmten Textes im durch Operand 1 bestimmten Text beginnend ab dem in Operand 3 angegebenen Index (äquivalent zu Java String.indexOf(String, int)).

Datentyp

LONG

Exception

Wenn mind. 1 Operand mit falschem Datentyp oder Operand 3 < 0

Beispiel

<subtext mode="PPM4">

<filteredattribute name="AT_TEXT" … />

<beginindex>

<indexof>

<filteredattribute name="AT_TEXT" … />

<constant>

<dataitem>

XYZ

<datatypename="TEXT">Text</datatype>

</dataitem>

</constant>

</beginindex>

</subtext>

In dem Beispiel werden die Operatoren indexof und subtext zusammen verwendet. Hier ermittelt indexof die Position des Textes XYZ im Attributwert des Attributs AT_TEXT. Anschließend erkennt der Operator subtext den Teilstring ab dieser Position.

Wenn das Attribut AT_TEXT den Wert ABCDEXYZAC hat würde obige Berechnungsvorschrift den Wert XYZAC liefern.