SmartDates
SmartFields liefern dir die Datumswerte in deinem Flow – ein Buchungsdatum, ein Fälligkeitsdatum, heute. Ein SmartDate macht daraus ein berechnetes Datum, eine Uhrzeit oder einen Zeitstempel, das du inline in ein Textfeld einfügst, indem du es in [@ … @] einschließt. AutoFlow wertet den Ausdruck aus, formatiert das Ergebnis und ersetzt den gesamten [@ … @]-Block. (Für reine Zahlenberechnungen siehe SmartFormulas.)
Die Form ist:
[@Ausdruck@]
[@Ausdruck;Format@]
Die optionale ;Format-Klausel entscheidet, ob das Ergebnis als Datum, Uhrzeit oder Zeitstempel erscheint – siehe Das Ergebnis formatieren. Lässt du sie weg, bekommst du das Datum in deinem lokalen Format.
Alles wird als Zeitstempel berechnet: Ein Datum wird um Mitternacht angesetzt, eine Uhrzeit auf dem heutigen Datum. Das Format am Ende entscheidet, welchen Teil du tatsächlich siehst – so kannst du ein Datum ohne Umwandlung in eine Zeitberechnung geben und umgekehrt.
Ein SmartDate erstellen
Überall, wo ein SmartDate erlaubt ist, öffnet die Assist-Schaltfläche (…) den SmartDate-Editor. Du beginnst mit einem Platzhalter und gibst entweder ein Datum ein, wählst ein SmartField oder fügst eine Funktion hinzu; jede Funktion wird zu einer Pille mit ihren Parametern inline, und Funktionen lassen sich verschachteln. Eine Formatzeile und ein Live-Test-Bereich zeigen dir das Ergebnis mit Beispielwerten, bevor du speicherst. Du kannst die [@ … @]-Syntax auch von Hand schreiben – beides ist gleichwertig.
Funktionen
Jede Funktion nimmt das Datum, mit dem sie arbeitet, als erstes Argument – so lassen sich Funktionen natürlich verschachteln.
| Funktion | Tut | Beispiel → |
|---|---|---|
dateadd(x, n, "Einheit") | addiert (oder subtrahiert bei negativem n) eine Anzahl Einheiten | [@dateadd({{invoice.postingDate}}, 1, "week")@] |
startof(x, "Einheit") | der erste Moment des Tages, der Woche, des Monats oder Jahres | [@startof({{today}}, "month")@] |
endof(x, "Einheit") | der letzte Moment des Tages, der Woche, des Monats oder Jahres | [@endof({{today}}, "year")@] |
calc(x, "Formel") | wendet eine Business-Central-Datumsformel an | [@calc({{today}}, "+1D")@] |
datediff(a, b, "Einheit") | die ganze Anzahl Einheiten zwischen zwei Daten | [@datediff({{dueDate}}, {{today}}, "day")@] |
year(x) / month(x) / day(x) / weekday(x) | ein einzelner Bestandteil als Zahl (Wochentag: Montag = 1) | [@year({{today}})@] |
Einheiten für dateadd sind day, week, month, year, hour und minute; startof, endof und datediff nutzen day, week, month, year.
calc nimmt eine native BC-Datumsformel – dieselbe Kurzsyntax wie in BC-Datumsfeldern, etwa +1D (einen Tag später), -1W (eine Woche früher), CM (Ende des aktuellen Monats) oder CY (Ende des Jahres). Sowohl die englischen Buchstaben (D W M Y) als auch die deiner Sprache (auf Deutsch T W M J) werden akzeptiert.
Eingebaute Datumswerte
today, now und workdate kannst du direkt im Ausdruck verwenden, ohne sie als SmartField einzuschließen:
[@startof(today, "month")@]
[@dateadd(now, -2, "hour")@]
Das Ergebnis formatieren
Der Teil nach dem ; entscheidet, wie das Ergebnis aussieht. Lass ihn leer für das Datum in deinem lokalen Format, oder wähle eines der eingebauten Formate:
| Format | Zeigt | Beispiel |
|---|---|---|
| (weggelassen oder leer) | das Datum in deinem lokalen Format | 24.08.2026 |
@time@ | die Uhrzeit, Stunden und Minuten | 14:30 |
@datetime@ | Datum und Uhrzeit in deinem lokalen Format | 24.08.2026 14:30:00 |
<Year4>-<Month,2>-<Day,2> | ISO-Datum | 2026-08-24 |
<Hours24,2>:<Minutes,2>:<Seconds,2> | ISO-Uhrzeit | 14:30:00 |
Der Editor bietet diese als Ein-Klick-Schaltflächen an (Datum, Uhrzeit, Datum & Zeit, ISO-Datum, ISO-Uhrzeit, ISO-Datum/Zeit). Für alles andere ist das Format ein normaler BC-Formatstring – derselbe wie bei einer SmartFormula – du kannst die Ausgabe also frei gestalten.
Zahlen verschachteln sich in SmartFormulas
datediff, year, month, day und weekday liefern eine Zahl, sodass ein SmartDate in einer SmartFormula stehen kann:
[[ [@datediff({{dueDate}}, {{today}}, "day")@] * 10 ]]
zählt die Tage bis zum Fälligkeitsdatum und multipliziert mit zehn.
Beispiele
Fällig [@dateadd({{invoice.postingDate}}, 14, "day");<Year4>-<Month,2>-<Day,2>@]
Ein Fälligkeitsdatum zwei Wochen nach der Buchung, als ISO-Datum dargestellt.
Berichtszeitraum: [@startof({{today}}, "month")@] – [@endof({{today}}, "month")@]
Der erste und letzte Tag des aktuellen Monats.
[@calc({{contract.start}}, "1Y")@]
Ein Jahr nach dem Vertragsbeginn, mit einer BC-Datumsformel.
Tipps
- Wähle das Format passend zu dem, was du sehen willst. Da unter der Haube alles ein Zeitstempel ist, entscheidet das Format – nicht die Funktion –, ob du ein Datum, eine Uhrzeit oder beides bekommst.
- Setze die Basis aus mehreren Feldern zusammen. Die Basis eines SmartDate ist ein SmartText-Feld, du kannst ein Datum also aus Text und SmartFields zusammensetzen, zum Beispiel
{{year}}-{{month}}-{{day}}. - Nutze den Test-Bereich. Er löst die SmartFields zu Beispielwerten auf (vorbelegt mit dem aktuellen Zeitstempel) und zeigt das formatierte Ergebnis live – so kannst du einen verschachtelten Ausdruck vor dem Speichern prüfen.
Wo SmartDates auftauchen
SmartDates können inline in jedem textbasierten Feld einer Schritt-Konfiguration stehen – Beschreibungen, Request-Bodies, Log-Nachrichten, Parser-Eingaben und so weiter. Überall, wo ein SmartField-Token ({{ … }}) erlaubt ist, ist auch ein SmartDate-Block ([@ … @]) erlaubt.