Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1.5 KiB
calc — Berechnung
Zweck: Wertet einen oder mehrere arithmetische bzw. logische Ausdrücke aus und schreibt die Ergebnisse als Kontextvariablen — über einen sicheren eigenen Parser (kein eval).
Parameter
| Name | Pflicht? | Default | Beschreibung |
|---|---|---|---|
<var name="…" expr="…"/> |
ja (min. 1) | — | Wiederholbar. name = Ziel-Kontextvariable, expr = Ausdruck (Fallback: Element-Text statt expr-Attribut). |
Unterstützte Operatoren: + - * / %, == != < > <= >=, and/or/not (XML-freundliche Alternative zu &&/||/!). Funktionen: round(x, stellen), ceil, floor, abs, min, max, len, upper, lower, concat(...), ifelse(bedingung, dann, sonst). true/false werden zu 1/0. Dezimalkomma (1,50) wird toleriert.
Eingangswerte: Beliebige Kontextvariablen via {{platzhalter}} — sie werden vor dem Parsen aufgelöst.
Ausgangswerte: Jede <var> wird unter ihrem name in den Kontext geschrieben. Vorherige <var>-Zeilen sind in nachfolgenden sofort verfügbar. Bei Auswertungsfehler bricht der Task mit error ab.
<task type="calc" id="berechne">
<var name="brutto" expr="{{netto}} * 1.19" />
<var name="rabatt" expr="round({{brutto}} * {{rabatt_pct}} / 100, 2)" />
<var name="endsumme" expr="{{brutto}} - {{rabatt}}" />
<var name="grosskunde" expr="{{endsumme}} > 10000" />
<var name="info" expr="concat('Endsumme: ', {{endsumme}}, ' EUR')" />
</task>