Die Funktion fn:indexOf gibt die Position einer bestimmten Teil-Zeichenkette innerhalb einer Zeichenkette zurück. Es wird ein Wert vom Typ Integer zurückgegeben.

Struktur​

fn:indexOf(Zeichenkette, Zeichenkette)

Parameter​

Parameter

Beschreibung

Zeichenkette

Der Parameter spezifiziert die gesuchte Zeichenkette.

Zeichenkette

Der Parameter spezifiziert den Wert (Teil-Zeichenkette), der verwendet wird, um die gesuchte Zeichenkette zu finden.

Hinweis:

Das erste Zeichen, das in der gesuchten Zeichenkette gezählt wird, hat einen Indexwert von 0, nicht 1.

Beispiel

Kundenbestellungen werden in einem Pool-Container gespeichert. Die Produktnamen beinhalten eine Produktnummer. Der Pool-Container heißt ​Bestellungen​ und ist mit dem Benutzerattribut ​user.Email​ verlinkt. Der Produktnummer ist ein Slash (/) vorangestellt. Der Produktname wird ohne Produktnummer in eine Nachricht eingefügt.

Bei diesem Beispiel wird die Funktion fn:indexOf verwendet, um die Index-Zahl des Sonderzeichens zu bestimmen. Mithilfe der Funktion fn:substring wird nur der Produktname herausgefiltert (siehe ⇘ ​fn:substring​). Die Funktion zur Bestimmung der Position des Slashs ist wie folgt aufgebaut:

fn:indexOf(user.relatedAttribute['Bestellungen']['Produktname'], "/")

Die Funktion gibt einen Wert vom Typ Integer zurück, welcher der Index-Zahl des Sonderzeichens entspricht. Wird diese Funktion innerhalb der Funktion fn:substring verwendet, welche nur den Produktnamen zurückgibt, so erhält man Folgendes:

{$fn:substring(user.relatedAttribute['Bestellungen']['Produktname'], "", fn:indexOf(user.relatedAttribute['Bestellungen']['Produktname'], "/"))}

Bei diesem Beispiel wird das Ergebnis aus der Funktion fn:indexOf als Parameter genutzt, um das erste Zeichen festzulegen, welches von der Teil-Zeichenkette ausgeschlossen werden soll. Der Parameter zur Bestimmung des ersten Zeichens innerhalb der Teil-Zeichenkette bleibt leer. Die zurückgegebene Teil-Zeichenkette beinhaltet alles, was dem Slash vorangestellt ist, unabhängig von der jeweiligen Position innerhalb des Datensatzes. Da pro Kunde mehr als eine Bestellung im Datensatz existieren kann, wird eine ​ForEach​-Schleife verwendet, um alle Bestellinformationen in eine Nachricht einzufügen. Für weitere Informationen zum Aufbau einer ​ForEach​-Schleife, siehe ⇘ ​Pool-Daten in Nachricht einfügen​.