/Dokumentation/Modul Projekte/Projekt Status/Projekt Status bearbeiten

Projekt Status bearbeiten

FHZuletzt geändert 3. September 2026 · Franzi Halbhuber 6 min

Inhalt

Hier werden die inhaltlichen Eigenschaften des Projektstatus gepflegt.

Abbildung 1: Inhaltliche Eigenschaften des Projektstatus
Abbildung 1: Inhaltliche Eigenschaften des Projektstatus

Feld

Bedeutung

Projekt Typ

Phase, in der sich das Projekt befindet (z. B. Angebot).

Name

Fester, in der Datenbank gepflegter Name (z. B. offer_created) — nicht bearbeitbar.

Referenz ID

Referenz ID des Status.

Color

Farbe zur zusätzlichen Kennzeichnung des Status.

Is private

Der Status ist nur für den Autor des Projektes sichtbar.

Aktion

Macht den Status in den Anwendungen als Aktion verfügbar.

Bestätigung anzeigen

Zeigt beim Statuswechsel einen Bestätigungs-Dialog.

Order confirm dialog

Zeigt beim Statuswechsel den Dialog zur kostenpflichtigen Bestellung.

Beispiele

Status als Aktion: Ist z. B. „Angebot erstellt" als Aktion verfügbar, kann der Benutzer den Status in den Anwendungen über „Angebot erstellen" setzen.

Kostenpflichtige Bestellung: Mit aktiviertem „Order confirm dialog" öffnen die Anwendungen beim Wechsel den Dialog zur kostenpflichtigen Bestellung.

Abbildung 2: Aktionen zum Statuswechsel in der WebApp
Abbildung 2: Aktionen zum Statuswechsel in der WebApp

Übersetzungen

Titel, das Label der Aktion und weitere Textstellen werden hier gepflegt — KI-gestützte Übersetzung inklusive.

Abbildung 3: Titel, Label und Übersetzungen
Abbildung 3: Titel, Label und Übersetzungen

Feld

Bedeutung

Titel

Titel des Status in den Anwendungen (z. B. „Angebot erstellt"); dient auch als Filter in der Projektübersicht.

Label [Aktion]

Bezeichnung der Aktion, über die der Status gesetzt wird (z. B. „Angebot erstellen" — Statuswechsel über „Aktion wählen").

Nachricht

Nachricht für den Mailversand (siehe Tab Admin).

Text [Dialog Bestätigung]

Text des Dialogs beim Statuswechsel (z. B. „Der Status des Projekts hat sich von Entwurf auf Angebot geändert").

Auf grammatisch korrekte Formulierung achten: Der Titel beschreibt einen Zustand bzw. das Ergebnis (Partizip II, „Angebot erstellt"), das Label [Aktion] eine aktive Handlung (Infinitiv, „Angebot erstellen").
Abbildung 4: Statusliste im Projekt der WebApp
Abbildung 4: Statusliste im Projekt der WebApp

Admin

Hier wird verwaltet, was bei einem Statuswechsel passiert: Aktionen (Operationen), Beschränkungen und ToDos.

Abbildung 5: Bearbeitungsmöglichkeiten im Tab Admin
Abbildung 5: Bearbeitungsmöglichkeiten im Tab Admin

Bereich

Bedeutung

Aktionen

Operationen, die beim Wechsel in den Status ausgeführt werden — z. B. sendmail-responsibles:all:default (Mailversand an Verantwortliche).

Beschränkungen

Verbieten Löschen oder Bearbeiten des Projektes — z. B. app_prohibit_del_offer (nicht löschbar), app_prohibit_edit_offer (nicht bearbeitbar).

ToDos

Berechtigungen der Nutzergruppen, für die dieser Status ein ToDo sein soll — z. B. ToDo_feedback, group_permission_todo_dealer.

Beispiel: Mailversand

Beim Wechsel eines Projektes in den Status „Angebot erstellt (überfällig)" wird automatisch die hinterlegte Operation sendmail-responsibles:all:default ausgeführt — die Verantwortlichen erhalten die im Tab Übersetzungen hinterlegte Nachricht.

Aktionen und Bedingungen greifen an verschiedenen Stellen: Eine Bedingung wird vor dem Wechsel geprüft und verhindert ihn, wenn sie nicht erfüllt ist — die Anwendungen zeigen dann die hinterlegte Nachricht. Eine Aktion läuft, nachdem der Wechsel angenommen wurde.

Gruppen

Hier wird festgelegt, welche Gruppen den Projektstatus aktiv setzen können.

Abbildung 6: Bearbeitungsmöglichkeiten im Tab Gruppen
Abbildung 6: Bearbeitungsmöglichkeiten im Tab Gruppen

Ist der Status öffentlich, kann ihn jeder Benutzer setzen — unabhängig von der Gruppe.

Ist der Status nicht öffentlich, werten die Anwendungen die hier hinterlegten Gruppen aus.

Beispiele

Ein Händler-Benutzer kann einen Status, der nicht für seine Gruppe freigegeben ist (z. B. „Online Anfrage erzeugt"), in den Anwendungen nicht setzen.

Einen öffentlichen Status (z. B. „kein Auftrag") kann jeder Benutzer setzen — unabhängig von der Gruppe.

Bedingungen

Hier werden die Regeln verwaltet, die einen Statuswechsel einschränken. Schlägt eine Bedingung fehl, zeigen die Anwendungen die hinterlegten Nachrichten an, sobald der Wechsel nicht möglich ist.

Bei den Bedingungen ist auf die korrekte Syntax zu achten — fehlerhafte Syntax führt zu Fehlern!
Abbildung 7: Projektstatus-Bedingungen bearbeiten
Abbildung 7: Projektstatus-Bedingungen bearbeiten

Operatoren

Operator

Bedeutung / Beispiel

==

gleich — status.identifier == 10

!=

ungleich — status.identifier != 20

<=

kleiner gleich — status.identifier <= 30

<

kleiner — status.identifier < 40

>=

größer gleich — status.identifier >= 50

>

größer — status.identifier > 60

CONTAINS

enthält — userPermissions CONTAINS 'app_set_order_confirmed'

OR

oder — userPermissions CONTAINS 'sendmail_dealer_admin' OR userPermissions CONTAINS 'sendmail_dealer_sales'

Bedingungen im Überblick

Die folgenden Bedingungen lassen sich individuell miteinander kombinieren.

Projektbedingungen (Status ID)

Bedingung

Erläuterung

status.identifier == 10

Die Status ID muss gleich „10" sein.

status.identifier < 20

Die Status ID muss kleiner als „20" sein.

status.identifier IN {10, 20, 30}

Die Status ID muss „10", „20" oder „30" sein.

status.identifier == 10 OR status.identifier == 26 OR status.identifier == 90

Die Status ID muss einem der genannten Werte entsprechen.

Projektbedingungen (Eigenschaften des Projektes)

Bedingung

Erläuterung

dealer_customer_id != null AND client_customer_id != null

Händler und Endkunde müssen ausgewählt sein.

dealer_contact_id != null

Der Händler-Kontakt muss ausgewählt sein.

partner_customer_id != null

Der Partner muss ausgewählt sein.

maturity_date != null

Das Fälligkeitsdatum muss ausgefüllt sein.

billing_term_id != null

Die Zahlungsbedingung muss ausgewählt sein.

delivery_date != null

Das gewünschte Lieferdatum muss ausgewählt sein.

responsible_user_id != null

Der Werksbeauftragte muss ausgewählt sein.

shipping_type_id != null AND shipping_address_id != null

Versandart und Versandadresse müssen ausgefüllt sein.

Projektbedingungen (zugeordnete Objekte)

Bedingung

Erläuterung

ALL sortedProducts.isComplete == true

Jede Konfiguration muss abgeschlossen sein.

ALL sortedProducts.isValid == true

Jede Konfiguration muss gültig sein.

ALL configurations.isComplete == true

Jede Konfiguration muss abgeschlossen sein.

ALL configurations.isValid == true

Jede Konfiguration muss gültig sein.

configurations.@count <= 1

Höchstens eine Konfiguration im Projekt.

configurations.@count > 0

Mindestens eine Konfiguration im Projekt.

sortedProducts.@count > 0

Das Projekt darf nicht „leer" sein.

pricelist.enabled == true

Die gesetzte Preisliste muss aktiv sein.

dealer_customer.region.key == region.key

Die Region des Händlers muss mit der Projektregion übereinstimmen.

client_customer.externalId != nil

Die Kundennummer des Endkunden muss ausgefüllt sein.

Projektbedingungen (dynamische Optionen)

Bedingung

Erläuterung

order.option.reason_lost_sales != NULL

Der Grund für den Auftragsverlust muss angegeben sein.

order.option.reason_lost_sales != 'competitor_technique' OR order.option.competitor != NULL

Ist der Verlustgrund eine konkurrierende Technik, muss auch der Mitbewerber angegeben sein.

order.option.reason_lost_sales != 'competitor_price' OR order.option.competitor != NULL

Ist der Verlustgrund der Preis des Mitbewerbers, muss auch der Mitbewerber angegeben sein.

Benutzer-Berechtigungen

Bedingung

Erläuterung

userPermissions CONTAINS 'app_set_offer_confirmed'

Der Benutzer muss die Berechtigung haben, ein Angebot zu bestätigen.

userPermissions CONTAINS 'A' OR userPermissions CONTAINS 'B'

Die aktive Gruppe muss eine der genannten Berechtigungen haben.

Kombinationsmöglichkeiten (Praxisbeispiele)

Bedingung

Erläuterung

delivery_term_id != null AND shipping_location != null

Lieferbedingung und Bestimmungsort müssen ausgefüllt sein.

(usage_type_id == "1" AND client_customer_id != null) OR usage_type_id == "2" OR usage_type_id == "3"

Entweder Verwendungsart Endkundenmaschine (1) mit ausgewähltem Endkunden — oder Lagermaschine (2) bzw. Vorführmaschine (3).

client_customer_id == null OR (usage_type_id != "2" AND usage_type_id != "3")

Entweder kein Endkunde angegeben — oder die Verwendungsart ist weder Lager- noch Vorführmaschine.

status.identifier IN {10, 20, 30, 45} OR userPermissions CONTAINS 'cust_app_set_each_offer_confirmed'

Entweder passende Status ID — oder der Benutzer hat die Sonderberechtigung.

(status.identifier == 50 AND userPermissions CONTAINS 'app_set_offer_lost') OR userPermissions CONTAINS 'cust_app_set_each_offer_lost'

Entweder Status 50 mit Berechtigung „A" — oder Sonderberechtigung „B".

dealer_contact_id != null OR partner_contact_id != null

Händler-Kontakt oder Partner-Kontakt muss ausgewählt sein.

Beispiel: Auftragsstatus „Auftrag erteilt"

Ein Projekt kann nur auf „Auftrag erteilt" gesetzt werden, wenn alle vier Bedingungen erfüllt sind:

Zeile

Bedingung

Nachricht bei Fehlschlag

1

status.identifier < 50

Status zurücksetzen gesperrt

2

ALL configurations.isComplete == true

Alle Konfigurationen müssen vollständig sein!

3

ALL configurations.isValid == true

Alle Konfigurationen müssen gültig sein

4

userPermissions CONTAINS 'app_set_offer_confirmed'

Berechtigung zur Auftragserteilung

Sind Bedingungen nicht erfüllt, zeigen die Anwendungen die Nachrichten der fehlgeschlagenen Bedingungen im Dialog an — die Nachrichten werden hier im Bereich der Bedingungen gepflegt.

Beispiel aus der SalesApp

Ist eine Bedingung nicht erfüllt, bricht der Statuswechsel ab; die Anwendung zeigt die hinterlegten Nachrichten und nennt im Titel die Zahl der fehlgeschlagenen Bedingungen.

Abbildung 8: Dialog Bedingungen nicht erfüllt in der SalesApp — der Versuch, ein Angebot verloren zu geben, scheitert an der Statusbedingung
Abbildung 8: Dialog Bedingungen nicht erfüllt in der SalesApp — der Versuch, ein Angebot verloren zu geben, scheitert an der Statusbedingung