| Rolle | Neue Fähigkeiten |
|---|---|
| Sachbearbeiter | Auftrag einreichen (Entwurf → Offen), Positionen hinzufügen |
| Teamleiter | Auftrag freigeben (Offen → In Bearbeitung) oder ablehnen |
| Vertriebsleiter | Erhält Benachrichtigung bei Freigabe |
Überblick: Der Auftrags-Workflow
In Stufe 1 konnte jeder den Auftragsstatus frei ändern. Jetzt führen wir einen kontrollierten Workflow ein:
Sachbearbeiter Teamleiter
klickt klickt
"Einreichen" "Freigeben"
+-----------+ +-----------+ +-----------------+
| | | | | |
| ENTWURF | ------> | OFFEN | ---------> | IN BEARBEITUNG |
| | | | | |
+-----------+ +-----------+ +-----------------+
^ | |
| | |
| Teamleiter | Sachbearbeiter |
| klickt | klickt |
| "Ablehnen" | "Abschliessen" |
| v v
| +-----------+ +-----------+
'-------------- | ABGELEHNT | | ERLEDIGT |
+-----------+ +-----------+
Zu jedem Zeitpunkt möglich:
+-----------+
| STORNIERT | (nur Teamleiter)
+-----------+
Der Auftrags-Workflow: Jeder Statusübergang ist an eine Rolle und Aktion gebunden.
Datenmodell erweitern
Entity „Positionen“
Ein Auftrag kann mehrere Positionen (Einzelposten) enthalten:
| Feldname | Datentyp | Pflicht | Hinweis |
|---|---|---|---|
Artikelbezeichnung | Text | Ja | |
Menge | Zahl | Ja | Standard: 1 |
Einzelpreis | Zahl (Dezimal) | Ja | |
Gesamtpreis | Zahl (Dezimal) | — | Berechnet: Menge × Einzelpreis |
AuftragId | Verweis | Ja | FK → Auftraege |
Entity „StatusHistorie“
Jede Statusänderung wird protokolliert:
| Feldname | Datentyp | Hinweis |
|---|---|---|
AuftragId | Verweis | FK → Auftraege |
AlterStatus | Text | |
NeuerStatus | Text | |
GeaendertVon | Text | Automatisch: aktueller Benutzer |
GeaendertAm | Datum | Automatisch: aktueller Zeitstempel |
Kommentar | Text | Optional, z. B. Ablehnungsgrund |
Neue Felder am Entity „Auftraege“:
Prioritaet | Text (Auswahl: Niedrig / Normal / Hoch) |
KUNDEN AUFTRÄGE POSITIONEN STATUS-HISTORIE
+--------+ +----------+ +------------+ +---------------+
| |<-----|Kunde(FK) |<-----|Auftrag(FK) | |Auftrag(FK) |
| | |Status | |Artikel | |Alter Status |
| | |Priorität | |Menge | |Neuer Status |
| | |Zugewies. | |Einzelpreis | |Geändert von |
| | | | |Gesamtpreis | |Geändert am |
+--------+ +----------+ +------------+ |Kommentar |
^ +---------------+
|________________________________|
Erweitertes Datenmodell: Positionen und Status-Historie kommen hinzu.
Subformen: Positionen im Auftragsdialog
-
Auftragsdialog öffnen
Öffnen Sie den Dialog „Auftrag bearbeiten“ im Admin Client.
-
Subform hinzufügen
Fügen Sie ein neues Element vom Typ „Subform“ hinzu:
Name AuftragspositionenEntity PositionenFK-Feld AuftragId -
Spalten der Subform festlegen
Definieren Sie die sichtbaren Spalten:
Artikelbezeichnung,Menge,Einzelpreis,Gesamtpreis.Screenshot: Subform „Positionen“ im Auftragsdialog
Aktion: „Auftrag einreichen“
-
Neue Aktion anlegen
Navigieren Sie zu Automatisierung → Aktionen. Klicken Sie auf „Neu“.
Name Auftrag einreichenTrigger Interaktiv (UI-Button) Ansichtselement Auftragsliste -
Bedingung festlegen (CanExecute)
Die Aktion soll nur verfügbar sein, wenn der Status = „Entwurf“ ist:
Feld StatusOperator ist gleichWert EntwurfWas bewirkt die Bedingung? Der Button „Einreichen“ ist nur klickbar, wenn der ausgewählte Auftrag im Status „Entwurf“ ist. Bei allen anderen Status ist er ausgegraut. -
Aktionsschritte konfigurieren
Fügen Sie zwei Schritte hinzu:
Schritt 1: Status ändern
Typ WriteDataZiel-Entity AuftraegeFeld „Status“ Setzen auf OffenSchritt 2: Status-Historie schreiben
Typ WriteData(neuer Datensatz)Ziel-Entity StatusHistorieAlterStatus EntwurfNeuerStatus OffenGeaendertVon [Aktueller Benutzer]Screenshot: Aktions-Konfiguration „Auftrag einreichen“
Aktion: „Auftrag freigeben“ (nur Teamleiter)
-
Aktion anlegen
Name Auftrag freigebenTrigger Interaktiv Berechtigung Nur Rolle Teamleiter -
Bedingung
Status = Offen -
Aktionsschritte
Schritt 1: WriteData → Status auf
In BearbeitungSchritt 2: WriteData → StatusHistorie-Eintrag
Schritt 3: SendMessage → Benachrichtigung an Vertriebsleiter
Aktion: „Auftrag ablehnen“ (nur Teamleiter)
-
Aktion anlegen
Name Auftrag ablehnenBedingung Status = OffenBerechtigung Nur Rolle Teamleiter -
Aktionsschritte
Schritt 1: WriteData → Status auf
EntwurfSchritt 2: WriteData → StatusHistorie (mit Kommentar)
Schritt 3: SendMessage → Sachbearbeiter informieren
Nachrichtenvorlagen einrichten
Vorlage „Auftrag freigegeben“
- Navigieren Sie zu Kommunikation → Nachrichtenvorlagen
-
Neue Vorlage anlegen
Name Auftrag freigegebenKanal UDM-intern(Posteingang)Empfänger Rolle: VertriebsleiterBetreff Auftrag {Auftragsnr} freigegebenText Der Auftrag {Auftragsnr} „{Bezeichnung}“ für {Kunden.Firmenname} wurde freigegeben.
Vorlage „Auftrag abgelehnt“
| Name | Auftrag abgelehnt |
| Empfänger | Dynamisch: ZugewiesenAn (Ersteller) |
| Betreff | Auftrag {Auftragsnr} abgelehnt |
| Text | Ihr Auftrag {Auftragsnr} wurde abgelehnt. Grund: {Kommentar} |
Aktion: „Auftrag abschließen“
-
Aktion anlegen
Name Auftrag abschliessenBedingung Status = In Bearbeitung -
Aktionsschritte
WriteData → Status auf
ErledigtWriteData → StatusHistorie-Eintrag
Hintergrund-Job: Fälligkeits-Erinnerung
-
Neuen Hintergrund-Job anlegen
Navigieren Sie zu Automatisierung → Hintergrund-Jobs.
Name Fälligkeits-ErinnerungTrigger-Typ Zeitgesteuert (Time) Zeitplan Täglich um 08:00 Uhr -
Trigger-Bedingung definieren
Der Job soll nur Aufträge finden, die:
- Status = „In Bearbeitung“
- Fällig am ≤ Heute + 3 Tage
Relativer Datumsfilter: UDM unterstützt relative Datumswerte wie „Heute“, „Diese Woche“ oder „In 3 Tagen“. So bleibt der Filter immer aktuell, ohne dass Sie ein festes Datum eingeben müssen. -
Job-Aktion: Erinnerung senden
Typ SendMessageVorlage Fälligkeits-Erinnerung(neu erstellen)Empfänger Dynamisch: ZugewiesenAnScreenshot: Hintergrund-Job mit Zeitplan und Bedingung
Ergebnis: Workflow testen
Testen Sie den kompletten Workflow:
- Als Sachbearbeiter: Neuen Auftrag anlegen (Status: Entwurf) → Positionen hinzufügen → „Einreichen“ klicken
- Als Teamleiter: Offene Aufträge sehen → „Freigeben“ oder „Ablehnen“ klicken
- Als Vertriebsleiter: Benachrichtigung im Posteingang prüfen
- Als Sachbearbeiter: Freigegebenen Auftrag „Abschließen“
- Datenmodell erweitert um Positionen und Status-Historie
- Subform für Inline-Bearbeitung von Auftragspositionen
- 4 Aktionen mit Bedingungen und Rollenberechtigungen
- Nachrichtenvorlagen mit dynamischen Platzhaltern
- Hintergrund-Job für automatische Fälligkeits-Erinnerung
- Vollständiger Workflow: Entwurf → Offen → In Bearbeitung → Erledigt