Tokenliste, Named List, Named Map, Value Splitter
Listen
Unsere Dokumentation verwendet den Begriff Liste mit zwei verschiedenen Bedeutungen. Tokenliste (auch kommaseparierte Liste) und Named List.
Token innerhalb einer Tokenliste sind Textabschnitte, die durch ein Trennzeichen, z. B. Komma, getrennt sind.
Eine Tokenliste (auch kommaseparierte Liste) ist eine Auflistung von Token (Werten) innerhalb eines Strings, die durch Komma oder ein anderes Trennzeichen getrennt werden. Das Trennzeichen selbst darf nicht in einem der Token vorkommen. Verwendung z. B. in replace chars(a, list b, list c) oder get token(a, b, c, d).
Eine Named List ist ein Objekt, das durch einen Namen referenziert wird und in dem mehrere typisierte Werte in einer nummerierten Reihenfolge gespeichert werden können. Die Reihenfolge wird durch die Reihenfolge des Hinzufügens zu diesem List-Objekt bestimmt. Der anschließende Zugriff auf einen einzelnen Wert erfolgt mit der Index-Nummer des Wertes in der Liste und dem Namen der Liste. Wenn kein Name der Liste angegeben ist, wird die Liste mit dem Namen default verwendet. Anwendung z. B. in add to list(value a, name of list b).
In den Funktionen add to list(a,b,c), get value from list(position a, name of list b, delimiter c, item d) und anderen Funktionen werden beide Listen-Typen gleichzeitig verwendet.
Serialisierte/Autoserialisierte Listen
Siehe die Funktionen serialize map/list(a,b) und deserialize map/list(a,b,c).
Maps
Ein Named Map-Objekt kann, analog zu Named List, mehrere typisierte Werte speichern. Die Werte stehen aber in keiner Reihenfolge und können daher nicht durch einen Index angesprochen werden. Der Zugriff erfolgt später über einen eindeutigen Schlüssel (Key) und den Namen der Map. Wird kein Name angegeben, wird der Name default verwendet. Anwendung z. B. in add to map(key a, value b, name of map c).
Serialisierte/Autoserialisierte Maps
Siehe die Funktionen serialize map/list(a,b) und deserialize map/list(a,b,c).
Value Splitter (DEPRECATED)
Value Splitter sind Objekte, ähnlich Named List, die einen Strukturdatentyp enthalten können, der aus mehreren Feldwerten besteht. Strukturen kann man auch als geordnete Folge von Feldwerten auffassen. In der Lobster_data-Zielstruktur kann ein Value Splitter an einen Knoten gebunden werden. Durch wiederholten Aufruf der Funktion next wird der jeweils nächste Feldwert aus der Struktur geliefert. So kann man die einzelnen Feldwerte auf die Felder eines Knotens verteilen. Value Splitter haben einen Namen, den Namen des Knotens, an den sie gebunden sind. Es gibt zwei Arbeitsweisen eines Value Splitters, csv oder fix, entsprechend den beiden Darstellungen einer Werte-Sequenz als CSV-Zeile oder FixRecord-Zeile. Es gibt nur eine Funktion für die Arbeit mit dem Value Splitter, der eine Vielzahl verschiedener Methoden hat: value-splitter( cmd a, [mode/delim b], [value c] ). Einige Methoden Funktionen dieser Funktion ermöglichen auch generelle Mengenoperationen, wie z. B. das Ordnen, Eliminieren von Duplikaten und die Selektion von Werten aus einer Wertemenge.
Hinweise
Named List, Named Map und Value Splitter verwenden getrennte Namensräume, d. h. der Name einer Liste kann auch als Name einer Map verwendet werden, ohne dass es Zusammenhänge zwischen List und Map mit gleichem Namen geben würde.
Named List und Named Map sind Objekte, die im Arbeitsspeicher gehalten werden. Die Anzahl und Größe der Einzelwerte, die ein solches Objekt speichern kann, wird durch den verfügbaren freien Arbeitsspeicher begrenzt. Das gilt übrigens auch für jede Stringvariable und somit für Tokenlisten. Wenn man unbegrenzt viele Werte in ein Map- oder List-Objekt speichert, kann es zum Speicherüberlauf (OutOfMemoryError) des Arbeitsspeichers kommen. Für wirkliche Massendaten nutzen Sie deshalb bitte die Speicherung in einer Datenbanktabelle anstelle der Map- oder List-Objekte. List- oder Map-Objekte werden bei ihrer ersten Verwendung innerhalb des Jobs erzeugt. Sie existieren bis zum Ende des Jobs. Mit ihnen kann man also – analog zu Variablen – Werte zwischen verschiedenen Datenblättern übergeben. Um ein Map- oder List-Objekt zu Beginn jedes Datenblattes oder an anderer Stelle zu leeren, verwenden Sie bitte die "clear"-Funktionen.