TemplateParserUnit

Gruppe

Integration Units

Funktion

Erzeugt eine Textdatei aus einer Template-Textdatei mit Platzhaltern, die mit Daten aus der Zielstruktur ersetzt werden.

Beschreibung


Diese Integration Unit erzeugt eine Textdatei aus einer Template-Textdatei mit Platzhaltern, die mit Daten aus der Zielstruktur ersetzt werden.

Werden für einen Platzhalter keine Daten gefunden, dann wird er mit einem Leerstring ersetzt.

Das Encoding des Antwortwegs muss auf ISO-8859-1 gesetzt werden.

Parameterbeschreibung


Parametername

Erlaubte Werte

Default-Wert

Beschreibung

Use format-field

true, false

false

Veraltete Einstellung. Bitte immer auf false lassen.

create CDDATA for xml

true, false

false

Wenn true, dann wird der Text beim Ersetzen von Platzhaltern mit einem XML-CDATA-Block umschlossen.

end tag


--}

Das End-Tag von Platzhaltern.

output-file-encoding


8859_1

Das Encoding der erzeugten Datei. Wichtiger Hinweis: Das Encoding des Antwortwegs muss dennoch auf ISO-8859-1 gesetzt werden, egal was hier gesetzt wird.

start tag


{--

Das Start-Tag von Platzhaltern.

template file encoding


8859_1

Das Encoding, mit dem die Template-Datei gelesen wird.

template-file



Der Pfad zur Template-Datei.

Einfache Platzhalter


Gegeben sei folgende Template-Datei. Der Platzhalter {--name--} wird ersetzt mit dem Wert des Zielstruktur-Feldes name.


Formal
{--<Platzhaltername=Zielstrukturfeldname>--}
template_file_1.txt
Meine Name ist {--name--}.

Mehrdimensionale Daten


Wie Sie wissen, können sich Felder in mehrdimensionalen Datenstrukturen befinden. D. h. die Zielstruktur kann mehrere Datenblätter (Records) haben, siehe (1), und auch der Knoten, in dem ein Feld vorkommt, kann mehrfach auftreten (Iterationen), siehe (2).


images/download/attachments/155418870/1396-version-1-modificationdate-1698042291527-api-v2.png

Herausgreifen bestimmter Werte


Wenn Sie einen Platzhalter wie oben angeben, dann werden solche mehrdimensionalen Datenstrukturen schlicht ignoriert und es wird für die Ersetzung des Platzhalters schlicht der Feld-Wert des ersten Records und der ersten Iteration verwendet, hier im Beispiel also der Wert Peter.

Allerdings ist es auch möglich, bestimmte Werte in solche einer mehrdimensionalen Datenstrukturen zu adressieren, siehe folgendes Template. Der erste Index bezieht sich auf die Datenblätter (Records) und der zweite auf die Iterationen. Beide Indices beginnen bei 0.


Formal
{--<Platzhaltername=Zielstrukturfeldname>:<Datenblattnummer>|<Iterationsnummer>--}
template_file_2.txt
Meine Name ist {--name:0|1--}.
Ausgabe
Mein Name ist Michael.

Auflisten aller Werte


Um alle Werte einer mehrdimensionalen Datenstruktur auszugeben, muss mit einem Loop-Block gearbeitet werden.


Formal
{--LOOP|<loopname>:<start>:<end>:<step>--}
{--/LOOP|<loopname>--}


Die Parameter haben dabei folgende Bedeutung.


loopname

Frei vergebener Name des Loops (der Schleife).

start

Startwert des Schleifen-Zählers. Geben Sie hier immer 0 an.

end

Endwert des Schleifen-Zählers. Statt eines expliziten Wertes kann hier referenziert werden auf die Größe der mehrdimensionalen Datenstruktur. Wenn Sie als Endwert des Schleifen-Zählers die Anzahl der vorkommenden Namen (im ersten Datenblatt) verwenden möchten, dann geben Sie den Wert {name|0} an. Siehe auch Beispiel weiter unten. Die Schleife läuft dann so oft durch, wie es Namen in der mehrdimensionalen Datenstruktur gibt.

step

Zahl, um die der Schleifen-Zähler nach jedem Durchlauf der Schleife erhöht werden soll. Geben Sie hier immer 1 an.


Um nun innerhalb der Schleife Platzhalter anzugeben, muss folgendermaßen vorgegangen werden. Im Prinzip wie oben beim Herausgreifen bestimmter Daten aus einer mehrdimensionalen Datenstruktur, aber mit leichter Abwandlung.


Formal
{--LOOP|<loopname>:<start>:<end>:<step>--}
{--<Platzhaltername=Zielstrukturfeldname>:<Datenblattnummer>|<Iterationsnummer>--}
{--/LOOP|<loopname>--}


Wir verwenden hier den Platzhalter {--name:0|myloop--}. Unsere Schleife wird so oft durchlaufen, wie es Namen in der mehrdimensionalen Datenstruktur im ersten Datenblatt gibt. Und in jedem Durchlauf geben wir den Namen des ersten Datenblatts (der Index startet bei 0, wie wir uns erinnern) und der Iterationsnummer, die dem aktuellen Wert des Schleifenzähler entspricht, aus.


template_file_3.txt
{--LOOP|myloop:0:{name|0}:1--}
{--name:0|myloop--}
{--/LOOP|myloop--}
Ausgabe
Peter
Michael
Doris

Check-Blocks


Die Ausgabe von Text kann abhängig gemacht werden von dem Vorhandensein oder Nichtvorhandensein von Werten eines bestimmten Zielstrukturfeldes. Dafür werden Check-Blocks verwendet.


Formal
{--CHECK|<blockname>:<checktype>|<reference>--}
Bedingter Text.
{--/CHECK|<blockname>--}


Die Parameter haben dabei folgende Bedeutung.


blockname

Beliebiger Name des Check-Blocks.

checktype

exist - Der angegebene Text wird ausgegeben, falls das angegebene Zielstrukturfeld (siehe reference) vorhanden ist im Zielbaum.

nonexist - Der angegebene Text wird ausgegeben, falls das angegebene Zielstrukturfeld (siehe reference) nicht vorhanden ist im Zielbaum.

empty - Der angegebene Text wird ausgegeben, falls das angegebene Zielstrukturfeld (siehe reference) vorhanden ist im Zielbaum und leer ist (Länge = 0).

nonempty - Der angegebene Text wird ausgegeben, falls das angegebene Zielstrukturfeld (siehe reference) vorhanden ist im Zielbaum und nicht leer ist (Länge > 0, Leerzeichen zählen).

blank - Der angegebene Text wird ausgegeben, falls das angegebene Zielstrukturfeld (siehe reference) vorhanden ist im Zielbaum und leer ist (Länge = 0) oder ausschließlich aus Leerzeichen besteht.

nonblank - Der angegebene Text wird ausgegeben, falls das angegebene Zielstrukturfeld (siehe reference) vorhanden ist im Zielbaum und nicht leer ist (Länge > 0) und nicht ausschließlich aus Leerzeichen besteht.

reference

Das zu überprüfende Zielstrukturfeld.


template_file_4.txt
{--CHECK|myblock:exist|name--}
Es sind Namen vorhanden.
{--/CHECK|myblock--}
Ausgabe
Es sind Namen vorhanden.