Template-Funktionen
Überblick
In Pantarey können Template-Platzhalter (z. B. documentNameTemplate, businessLabel) um Funktionen erweitert werden:
$fn('function_name', $(parameter1), $(parameter2), ...)
Parameter werden immer über die Syntax $(parametername) referenziert.
Nutzen:
Dateinamen, Labels und Texte lassen sich sauber formatieren, standardisieren und automatisieren – ohne zusätzliche Prozess- oder Skriptlogik.
Grundprinzip
- Parameter werden mit
$(...)referenziert - Funktionen sind tolerant (Strings, Zahlen als Text etc.)
- Funktionen können verschachtelt werden
- Die gleiche Syntax funktioniert in Templates und JSONata
Einfaches Beispiel
| Input | Funktion | Ergebnis |
|---|---|---|
$(customer_name) = Müller GmbH |
$fn('str_upper', $(customer_name)) |
MÜLLER GMBH |
String-Funktionen (am häufigsten genutzt)
| Funktion | Beschreibung | Beispiel | Ergebnis |
|---|---|---|---|
str_trim(value) |
Entfernt Leerzeichen | $fn('str_trim', $(title)) |
Rechnung |
str_upper(value) |
Großbuchstaben | $fn('str_upper', $(customer_name)) |
MÜLLER GMBH |
str_lower(value) |
Kleinbuchstaben | $fn('str_lower', $(CODE)) |
ab123 |
str_slice(value, from, to) |
Schneidet per Index | $fn('str_slice', $(order_id), 0, 6) |
ORD-20 |
str_substring(value, from, to) |
Substring | $fn('str_substring', $(filename), 0, 8) |
rechnung |
str_replaceAll(value, s, r) |
Ersetzt Text | $fn('str_replaceAll', $(name), ' ', '_') |
Müller_GmbH |
str_padStart(value, len, c) |
Links auffüllen | $fn('str_padStart', $(invoice_no), 6, '0') |
000123 |
str_padEnd(value, len, c) |
Rechts auffüllen | $fn('str_padEnd', $(code), 5, '-') |
A1--- |
Zahlen-Funktionen
| Funktion | Beschreibung | Beispiel | Ergebnis |
|---|---|---|---|
number_add(a, b) |
Addition | $fn('number_add', $(net), $(tax)) |
119 |
number_sub(a, b) |
Subtraktion | $fn('number_sub', $(total), $(discount)) |
90 |
number_multiply(a, b) |
Multiplikation | $fn('number_multiply', $(qty), $(price)) |
59.8 |
number_divide(a, b) |
Division | $fn('number_divide', $(sum), $(count)) |
25 |
number_round(v, d) |
Runden | $fn('number_round', $(amount), 2) |
19.99 |
Datums- & Systemfunktionen
| Funktion | Beschreibung | Beispiel | Ergebnis |
|---|---|---|---|
date_toPath(value) |
Datumsordner | $fn('date_toPath', $(created_at)) |
2025/12/14 |
date_toGermanDate(value) |
Deutsches Datum | $fn('date_toGermanDate', $(invoice_date)) |
14.12.2025 |
sys_ulid() |
Neue ULID | $fn('sys_ulid') |
01JEF… |
sys_nextCounter(name) |
Zähler | $fn('sys_nextCounter', 'invoice') |
1024 |
Praxisbeispiele
Rechnungsnummer
| Input | Template | Ergebnis |
|---|---|---|
$(customer_code)=AB$(invoice_no)=12 |
RE-$fn('str_upper', $(customer_code))-$fn('str_padStart', $(invoice_no), 4, '0') |
RE-AB-0012 |
Dokumentenname
Rechnung_$fn('date_toPath', $(invoice_date))_$fn('sys_nextCounter', 'invoice')
Do’s & Don’ts
✅ Do
- Für Formatierung und Standardisierung verwenden
- String-Funktionen bevorzugen (robust, fehlertolerant)
- Lesbare Templates schreiben
❌ Don’t
- Keine Geschäftslogik abbilden
- Keine komplexen Berechnungen erzwingen
- Keine unbekannten Funktionsnamen verwenden
FAQ
Werden leere Werte unterstützt?
Ja. Leere oder fehlende Werte führen nicht zum Abbruch.
Können Funktionen verschachtelt werden?
Ja, beliebig.
Wann lieber JSONata verwenden?
Bei komplexen Bedingungen, Filtern oder Aggregationen.
Zusammenfassung:
Die $fn()-Syntax macht Templates in Pantarey mächtig, aber kontrollierbar – ideal für saubere Automatisierung ohne Overengineering.