Skip to content

Template-functions

Overview

Pantarey templates (e.g. documentNameTemplate, businessLabel) support functions:

$fn('function_name', $(parameter1), $(parameter2), ...)

Parameters are always referenced using $(parametername).

Benefit:
Clean, standardized and automated names and labels without additional process or script logic.


Basics

  • Parameters use $(...)
  • Functions are tolerant
  • Functions can be nested
  • Same syntax works in templates and JSONata
Input Function Result
$(customer_name) = Müller GmbH $fn('str_upper', $(customer_name)) MÜLLER GMBH

String Functions (most common)

Function Description Example Result
str_trim(value) Trim spaces $fn('str_trim', $(title)) Invoice
str_upper(value) Uppercase $fn('str_upper', $(customer_name)) MÜLLER GMBH
str_lower(value) Lowercase $fn('str_lower', $(CODE)) ab123
str_slice(value, from, to) Slice by index $fn('str_slice', $(order_id), 0, 6) ORD-20
str_substring(value, from, to) Substring $fn('str_substring', $(filename), 0, 8) invoice
str_replaceAll(value, s, r) Replace text $fn('str_replaceAll', $(name), ' ', '_') Mueller_GmbH
str_padStart(value, len, c) Left padding $fn('str_padStart', $(invoice_no), 6, '0') 000123
str_padEnd(value, len, c) Right padding $fn('str_padEnd', $(code), 5, '-') A1---

Number Functions

Function Description Example Result
number_add(a, b) Addition $fn('number_add', $(net), $(tax)) 119
number_sub(a, b) Subtraction $fn('number_sub', $(total), $(discount)) 90
number_multiply(a, b) Multiply $fn('number_multiply', $(qty), $(price)) 59.8
number_divide(a, b) Divide $fn('number_divide', $(sum), $(count)) 25
number_round(v, d) Round $fn('number_round', $(amount), 2) 19.99

Date & System Functions

Function Description Example Result
date_toPath(value) Date folder $fn('date_toPath', $(created_at)) 2025/12/14
date_toGermanDate(value) German date $fn('date_toGermanDate', $(invoice_date)) 14.12.2025
sys_ulid() Generate ULID $fn('sys_ulid') 01JEF…
sys_nextCounter(name) Named counter $fn('sys_nextCounter', 'invoice') 1024

Real-World Examples

INV-$fn('str_upper', $(customer_code))-$fn('str_padStart', $(invoice_no), 4, '0')

Do’s & Don’ts

✅ Do

  • Use for formatting and standardization
  • Prefer string functions
  • Keep templates readable

❌ Don’t

  • Implement business logic
  • Force complex calculations
  • Use unknown function names

FAQ

Are empty values supported?
Yes. Missing values do not break rendering.

Can functions be nested?
Yes, without limits.

When should JSONata be used instead?
For complex logic, conditions or aggregations.


Summary:
$fn() makes Pantarey templates powerful but controlled – ideal for clean automation.