Eine der leistungsstärksten Funktionen von DocuGenerate ist die erweiterte Syntax. Diese Funktion erweitert die Standardfunktionalität und ermöglicht ein reichhaltigeres, vielseitigeres Erlebnis beim Erstellen Ihrer Vorlagen.
Standardmäßig ist die erweiterte Syntax beim Erstellen einer neuen Vorlage deaktiviert. Um sie zu aktivieren, navigieren Sie zum Settings-Bereich der Vorlage und aktivieren Sie das Kontrollkästchen Enable enhanced syntax.
Nach der Aktivierung bietet die erweiterte Syntax mehrere fortgeschrittene Funktionen.
Die erweiterte Syntax ermöglicht es Ihnen, direkt auf Eigenschaften verschachtelter Objekte in der Vorlage zuzugreifen.
Wenn Sie beispielsweise folgende Daten haben:
[{
"item": {
"name": "Car"
}
}]
Können Sie auf die name-Eigenschaft mit dieser Syntax zugreifen:
[item.name]
Ohne die erweiterte Syntax müsste die Datenstruktur so aussehen:
[{
"item.name": "Car"
}]
Mit aktivierter erweiterter Syntax können Sie logische und mathematische Ausdrücke direkt in Ihrer Vorlage verwenden, wie +, -, *, /, >, <, ==, !=, <=, >=.
Sie können komplexe bedingte Anweisungen mit der erweiterten Syntax erstellen:
[#items.length > 1]
There are multiple items.
[/]
Die erweiterte Syntax unterstützt auch folgende Operatoren:
a ? b : ca == 1, a != 1a > 1, a < 1, a >= 1, a <= 1a && ba || ba + ba - ba * ba % ba / ba = 1(a && b) || cBei aktivierter erweiterter Syntax müssen Sie beachten, wie Leerzeichen in Ihren JSON-Daten interpretiert werden.
In JSON-Daten würde eine Eigenschaft mit Leerzeichen, wie "First Name": "John", normalerweise dem Zusammenführungs-Tag [First Name] entsprechen. Bei aktivierter erweiterter Syntax erkennt DocuGenerate keine Leerzeichen innerhalb von Zusammenführungs-Tags. Daher müssen Eigenschaften mit Leerzeichen in Ihren JSON-Daten anders geschrieben werden.
Anstatt:
[{
"First Name": "John"
}]
Sollten Sie verwenden:
[{
"First_Name": "John"
}]
In Ihrer Vorlage können Sie dann den Zusammenführungs-Tag [First_Name] verwenden. Wenn die Eigenschaft in einem anderen Objekt verschachtelt ist, können Sie so darauf zugreifen: [User.First_Name].
Diese Einschränkung gilt nur, wenn die erweiterte Syntax aktiviert ist. Wenn sie deaktiviert ist, werden Leerzeichen innerhalb von Zusammenführungs-Tags wie erwartet erkannt.
Beispiel 1: Inhalte basierend auf einem booleschen Wert anzeigen
Vorlage:
[#client.has_discount]
You have a discount of [client.discount] on your next purchase.
[/]
JSON-Daten:
[{
"client": {
"has_discount": true,
"discount": "15%"
}
}]
Ergebnis:
You have a discount of 15% on your next purchase.
Beispiel 2: Verschiedene Inhalte basierend auf einem Wertvergleich anzeigen
Vorlage:
[#age >= 18]
You are eligible to vote.
[/]
[#age < 18]
You are not eligible to vote.
[/]
JSON-Daten:
[{
"age": 2
}]
Ergebnis:
You are not eligible to vote.
Beispiel 3: Inhalte basierend auf einem logischen Ausdruck anzeigen
Vorlage:
[#client.is_vip && client.purchase_amount > 500]
As a VIP member who spent $[client.purchase_amount], you are entitled to a gift!
[/]
JSON-Daten:
[{
"client": {
"is_vip": true,
"purchase_amount": 1000
}
}]
Ergebnis:
As a VIP member who spent $1000, you are entitled to a gift!