Zum Inhalt

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.