Überfällige Freigaben eskalieren
Bleibt die Freigabe einer Rechnung liegen, erinnert Acriva die Kostenstellenverantwortung nach 2 Arbeitstagen und gibt die Aufgabe nach 5 Arbeitstagen an die Geschäftsführung; das stellen Sie an der Freigabe selbst ein, denn solange eine Aufgabe offen ist, läuft kein Schritt. Nach der Freigabe wartet ein Timer bis 3 Tage vor der Fälligkeit, und das Skript meldet der Geschäftsführung, wann die Rechnung fällig ist oder seit wann sie überfällig ist.
Der Workflow
Abschnitt betitelt „Der Workflow“Der Workflow startet für jedes Dokument vom Typ incoming-invoice. Seine Datei workflow.yaml:
$schema: 'https://docs.acriva.de/schemas/workflow.schema.json'format: 1schemaVersion: 4sdk: '1.0.0'key: escalate-overduename: Überfällige Freigaben eskalierentemplate: customtrigger: documentType: incoming-invoicefields: []start: approvesteps: - kind: humanTask name: approve label: Freigabe Kostenstelle taskKind: approve assignees: - when: null assignee: kind: costCenterResponsible fallback: kind: role role: Buchhaltung options: remindAfterWorkingDays: 2 escalateAfterWorkingDays: 5 escalationTarget: kind: role role: Geschäftsführung excludeRequester: true excludeActorsOfSteps: [] pickFile: false next: untilDue onRejected: rejected - kind: timer name: untilDue label: Bis 3 Tage vor Fälligkeit days: null dateField: dueDate daysBefore: 3 next: escalate - kind: script name: escalate label: Fälligkeit melden script: escalate.ts hook: onTimer inputs: - kind: field key: dueDate type: date - kind: field key: invoiceNumber type: text - kind: field key: vendorName type: text returns: [] exits: [] next: approved - kind: end name: approved label: Freigegeben outcome: approved - kind: end name: rejected label: Zurückgewiesen outcome: rejectedDas Skript escalate.ts
Abschnitt betitelt „Das Skript escalate.ts“Hook: onTimer · Eingaben: dueDate, invoiceNumber, vendorName · Rückgaben: keine
import { date, defineScript } from '@acriva/workflow-sdk';
export default defineScript({ hook: 'onTimer', run(ctx) { // The timer follows the approval's approving exit. The check keeps the script right if the workflow is redrawn. if (ctx.instance.lastTaskOutcome !== 'Approved') return; const { dueDate, invoiceNumber, vendorName } = ctx.document.fields; // Without a due date the timer doesn't wait, and there is nothing to report. if (dueDate == null) return;
const invoice = `Die Rechnung ${invoiceNumber ?? 'ohne Nummer'} von ${vendorName ?? 'unbekanntem Lieferanten'}`; const daysLeft = date.daysBetween(ctx.today(), dueDate); const days = (n: number) => (n === 1 ? '1 Tag' : `${n} Tagen`); const when = daysLeft < 0 ? `ist seit ${days(-daysLeft)} überfällig (fällig am ${date.format(dueDate)})` : daysLeft === 0 ? 'ist heute fällig' : `ist am ${date.format(dueDate)} fällig, in ${days(daysLeft)}`; const text = `${invoice} ${when}. Bitte veranlassen Sie die Zahlung.`; ctx.notify({ to: [{ role: 'Geschäftsführung' }], text }); },});Was es tut
Abschnitt betitelt „Was es tut“Ein Test führt jeden dieser Fälle in der Sandbox aus und vergleicht das Ergebnis.
Fällig in 3 Tagen
Abschnitt betitelt „Fällig in 3 Tagen“- Eingabe:
dueDate2026-10-25,invoiceNumberRE-2026-0815,vendorNameBürobedarf Schmidt KG, Ergebnis der letzten AufgabeApproved, heute2026-10-22 - Ausgang: der Standard-Nachfolger
- Änderungen: Benachrichtigung an die Rolle
Geschäftsführung: „Die Rechnung RE-2026-0815 von Bürobedarf Schmidt KG ist am 25.10.2026 fällig, in 3 Tagen. Bitte veranlassen Sie die Zahlung.“
Heute fällig
Abschnitt betitelt „Heute fällig“- Eingabe:
dueDate2026-10-22,invoiceNumberRE-2026-0815,vendorNameBürobedarf Schmidt KG, Ergebnis der letzten AufgabeApproved, heute2026-10-22 - Ausgang: der Standard-Nachfolger
- Änderungen: Benachrichtigung an die Rolle
Geschäftsführung: „Die Rechnung RE-2026-0815 von Bürobedarf Schmidt KG ist heute fällig. Bitte veranlassen Sie die Zahlung.“
Eine Rechnung ohne Fälligkeit
Abschnitt betitelt „Eine Rechnung ohne Fälligkeit“- Eingabe:
dueDatenull,invoiceNumberRE-2026-0815,vendorNameBürobedarf Schmidt KG, Ergebnis der letzten AufgabeApproved, heute2026-10-22 - Ausgang: der Standard-Nachfolger
- Änderungen: keine
Seit einem Tag überfällig
Abschnitt betitelt „Seit einem Tag überfällig“- Eingabe:
dueDate2026-10-21,invoiceNumberRE-2026-0815,vendorNameBürobedarf Schmidt KG, Ergebnis der letzten AufgabeApproved, heute2026-10-22 - Ausgang: der Standard-Nachfolger
- Änderungen: Benachrichtigung an die Rolle
Geschäftsführung: „Die Rechnung RE-2026-0815 von Bürobedarf Schmidt KG ist seit 1 Tag überfällig (fällig am 21.10.2026). Bitte veranlassen Sie die Zahlung.“
Schon überfällig: Die Freigabe dauerte zu lange
Abschnitt betitelt „Schon überfällig: Die Freigabe dauerte zu lange“- Eingabe:
dueDate2026-10-15,invoiceNumberRE-2026-0815,vendorNameBürobedarf Schmidt KG, Ergebnis der letzten AufgabeApproved, heute2026-10-22 - Ausgang: der Standard-Nachfolger
- Änderungen: Benachrichtigung an die Rolle
Geschäftsführung: „Die Rechnung RE-2026-0815 von Bürobedarf Schmidt KG ist seit 7 Tagen überfällig (fällig am 15.10.2026). Bitte veranlassen Sie die Zahlung.“