Für Bedingungen, Mappings und Berechnungen nutzt DEPLAW FEEL (Friendly Enough Expression Language). Grundsätzlich stehen alle Standard-FEEL-Funktionen zur Verfügung. In den Header-Feldern von ServiceTasks kommen zusätzlich die folgenden DEPLAW-spezifischen Funktionen hinzu.
Weil in DEPLAW jede Variable eine Zeichenkette ist, folgt fast jede Berechnung demselben Muster: in eine Zahl umwandeln, rechnen, wieder als Text formatieren.
Merkmuster: bigDecimal(...) macht aus dem Text eine Zahl, mit der Sie rechnen; euro(...) formatiert das Ergebnis wieder als Euro-String für Schreiben und Platzhalter.
Funktionsübersicht
| Funktion | Kategorie | Zweck |
|---|---|---|
bigDecimal(x) |
Konvertierung | String → Zahl (rundungssicher) |
euro(x) |
Konvertierung | Zahl → Euro-String |
parseDate(x) |
Konvertierung | Datum zwischen DE- und ISO-Format umwandeln |
parseToJson(x) |
Konvertierung | JSON-String → JSON-Objekt |
toBoolean(x) |
Konvertierung | Wahrheitswert → "Ja" / "Nein" |
isNullOrEmpty(x) |
Prüfung | leer oder nicht gesetzt? |
isDate(x, code) |
Prüfung | gültiges Datum im Format de/en? |
isNumber(x) |
Prüfung | gültige Zahl? |
sortJsonTable(...) |
Tabelle | Zeilen eines Tabellen-JSON sortieren |
jsonToHtmlTable(...) |
Tabelle | Tabellen-JSON → HTML-Tabelle |
getDunningNoticeCatalogDescription(x) |
Fachlich | Mahnbescheid-Katalognummer → Beschreibung |
calcRVGwithDate(...) |
Fachlich | RVG-Gebühren berechnen |
calcGKGwithDate(...) |
Fachlich | GKG-Gebühren berechnen |
Konvertierung und Formatierung
bigDecimal(X) — Wandelt eine Zeichenkette (auch Euro-Werte) rundungssicher in eine Zahl um.
FORDERUNG_BEZAHLT = "13,34 €"
bigDecimal(FORDERUNG_BEZAHLT) → 13.34
euro(X) — Wandelt eine Zahl in einen Euro-Wert (Zeichenkette) um.
FORDERUNG_BEZAHLT = 13.34
euro(FORDERUNG_BEZAHLT) → "13,34 €"
parseDate(X) — Wandelt ein Datum zwischen deutschem und ISO-Format um (in beide Richtungen).
parseDate("01.03.2022") → "2022-03-01"
parseDate("2022-03-01") → "01.03.2022"
parseToJson(X) — Wandelt einen JSON-String in ein JSON-Objekt um.
JSON = "{ \"foo\": \"Baa\", \"test\": \"TEST\" }"
parseToJson(JSON).test → "TEST"
toBoolean(X) — Normalisiert einen Wahrheitswert zu "Ja" oder "Nein".
toBoolean("true"), toBoolean("ja"), toBoolean("Ja") → "Ja"
toBoolean("false"), toBoolean("nein") → "Nein"
Prüffunktionen
isNullOrEmpty(X) — Prüft, ob ein Wert leer oder nicht gesetzt ist.
isNullOrEmpty("null"), isNullOrEmpty(null), isNullOrEmpty("") → true
isNullOrEmpty("test") → false
isDate(X, landcode) — Prüft, ob ein Wert ein gültiges Datum im angegebenen Format ist (landcode = "de" oder "en").
isDate("01.01.2020", "de") → true
isDate("2020-01-01", "en") → true
isDate("2020-01-01", "de") → false
isNumber(X) — Prüft, ob ein Wert eine Zahl ist.
isNumber("2020-01-01") → false
isNumber("100"), isNumber("100,34"), isNumber("100.34") → true
Tabellen-Funktionen
jsonToHtmlTable(...) — Wandelt ein speziell aufgebautes JSON in eine HTML-Tabelle um. Die Parameter lauten: jsonTable, tableStyling, columnWidthList, columnStylingList, lastRowStylingList, enableHeadline, enableLastRow, jsonColumnname, jsonRowname, jsonLastRowName.
Beispiel-JSON:
KOSTENAUFSTELLUNG_TABELLE =
{
"spalten": ["Datum", "Name", "Aktenzeichen", "Betrag"],
"zeilen": [
["12.12.2020", "Peter Tester", "12345/20", "875,30 €"]
],
"endzeile": ["875,30 €"]
}
Aufruf (kombiniert mit Sortierung und Parsing):
jsonToHtmlTable(
sortJsonTable(parseToJson(KOSTENAUFSTELLUNG_TABELLE), "zeilen", 0, "asc"),
"width:100%;",
"15%,35%,35%,15%",
",,,text-align:right;",
"text-align:right;",
true, true,
"spalten", "zeilen", "endzeile"
)
sortJsonTable(json, sortRowName, sortColumnIndex, sortOrder) — Sortiert die Zeilen eines JSON nach einer Spalte.
sortJsonTable(parseToJson(JSON_INPUT), "zeilen", 2, "asc")
mit
JSON_INPUT =
{
"spalten": ["Datum", "Tarif", "Höhe", "Wirksam"],
"zeilen": [
["01.01.2025", "A", "102,50 €", "Unwirksam"],
["02.01.2025", "112/112", "13,67 €", "Unwirksam"],
["01.01.2020", "B", "0,13 €", "Wirksam"],
["01.01.2001", "VC3", "35,00 €", "Wirksam"]
]
}
Fachspezifische Funktionen
getDunningNoticeCatalogDescription(X) — Ersetzt eine Katalognummer aus dem Mahnbescheidsbereich durch ihre Beschreibung.
getDunningNoticeCatalogDescription("5") → "Dienstleistungsvertrag"
calcRVGwithDate(objectValueInput, feeCategory, factor, rvgFeeDate) — Berechnet die RVG-Gebühren (unterstützt RVG ab dem 01.08.2013). Über das Datum wird automatisch die passende Rechtsordnung ausgewählt.
feeCategory:"2300"für Gebühren (z. B. Geschäfts- oder Verfahrensgebühr),"7200"für Auslagenfactor: Faktor als Zeichenkette, z. B."0.5","0,9","1,3"rvgFeeDate: Stichtag der Berechnung
KOSTENSCHUTZ_GGW = "399,99"
calcRVGwithDate(KOSTENSCHUTZ_GGW, "2300", "1.3", "01.01.2025") → "66,95"
calcGKGwithDate(objectValueInput, factor, rvgFeeDate) — Berechnet die GKG-Gebühren (unterstützt GKG ab dem 01.08.2013). Auch hier bestimmt das Datum die anzuwendende Rechtsordnung.
factor: Faktor als Zeichenkette, z. B."0.5","0,9","1,3"rvgFeeDate: Stichtag der Berechnung
KOSTENSCHUTZ_GGW = "3999"
calcGKGwithDate(KOSTENSCHUTZ_GGW, "3.0", "01.01.2025") → "420"