TemplateParserUnit

Gruppe

Integration Units

Funktion

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

Beschreibung


Einleitung: Integration Units. Setzen Sie in Phase 6 in den Inhalts-Einstellungen eines Antwortwegs den Inhalt auf Ausgabe von IU.


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 der erzeugten Textdatei ist immer 8859_1.

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.

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/73603128/1396-version-1-modificationdate-1676263784981-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

Bei exist wird der angegebene Text ausgegeben, falls Werte für das angegebene Zielstrukturfeld (siehe reference) vorhanden sind.

Bei nonexist wird der angegebene Text ausgegeben, falls Werte für das angegebene Zielstrukturfeld (siehe reference) nicht vorhanden sind.

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.