Workflow
Beschreibt den Ablauf und die Status des Kreditoren Workflows, welcher für sämtliche Rechnungen und Gutschriften angewendet wird.
Status und deren Bedeutung
| # | Bezeichnung | Beschreibung | Aktion |
|---|---|---|---|
| 10 | Neu | Die Rechnung wurde neu erfasst und befindet sich noch nicht im Umlauf zur Freigabe. | Daten prüfen und ergänzen |
| 15 | Liegenschaft zuordnen | Zur Rechnung wurde eine Liegenschaft zugewiesen, aber die Rechnung wurde noch nicht in den Umlauf geschickt. | keine, da automatische Fortsetzung / Workflow manuell starten |
| 20 | Workflow Benutzer zuweisen | Es sind noch nicht alle erforderlichen Visumspfade mit Benutzern zugewiesen. Die Rechnung befindet sich noch nicht im Umlauf. | Benutzer zuweisen und Workflow starten |
| 25 | Neustart nach Zurückgewiesen | Die Rechnung befindet sich im Neustart für den Visierungsumlafu nach einer Zurückweisung. | keine, da automatische Fortsetzung |
| 30 | Bereit zur Visierung | Die Rechnung ist bereit für das 1. Visum. | Freigabe/Zurückweisung Visum 1 |
| 41 | Visum 1 freigegeben | Das 1. Visum wurde erteilt. Die Rechnung ist bereit für das 2. Visum. | Freigabe/Zurückweisung Visum 2 |
| 42 | Visum 2 freigegeben | Das 2. Visum wurde erteilt. Die Rechnung ist bereit für das 3. Visum. | Freigabe/Zurückweisung Visum 3 |
| 43 | Visum 3 freigegeben | Das 3. Visum wurde erteilt. | keine, da automatische Fortsetzung |
| 49 | Vollvisiert | Die Rechnung ist vollvisiert. Alle erforderlichen Freigabe Visa sind erteilt. | keine, da automatische Fortsetzung |
| 50 | an ERP gesendet | Die Rechnung wurde an das ERP gesendet. | keine, da automatische Fortsetzung |
| 60 | in ERP importiert | Die Rechnung ist erfolgreich im ERP angekommen und kann dort nun weiterbearbeitet (importiert, bezahlt) werden. | Import im ERP, Bezahlung im ERP |
| 90 | Bezahlt | Die Rechnung wurde im ERP bezahlt. | keine, da Prozess beendet |
| 95 | Zurückgewiesen | Die Rechnung wurde im Visierungsprozess zurückgewiesen. | Workflow abbrechen oder erneut starten |
| 99 | Abgebrochen | Der Prozess wurde abgebrochen | keine, da Prozess beendet |
Flowchart - Prozessdarstellung
graph TD
%% Start & Initialisierung
Start((Start)) --> Initialisierung[Initialisierung <br/><i>Status: 10 Neu</i>]
%% Origin Switch
Initialisierung --> SW_Origin{manuell/automatisch}
SW_Origin -- "automatisch" --> SW_FoundRE
SW_Origin -- "manuell" --> DataExt[QR Code Datenextrakt]
DataExt --> DataMap[Daten zuweisen]
SW_FoundRE{Liegenschaft gefunden?}
DataMap --> SW_FoundRE
%% Real Estate Handling
SW_FoundRE -- "nein" --> SW_Manual{ist Herkunft manuell?}
SW_Manual -- "nein" --> Notify[Info an zentrale Mail]
SW_Manual -- "ja" --> AssignRE[manuelle Datenerfassung <br/><i>User Interaktion erforderlich</i>]
Notify --> AssignRE
AssignRE --> GetREID[Liegenschaft gesetzt]
GetREID --> SetREID2[Status setzen <br/><i>Status: 15 Liegenschaft zuordnen</i>]
SetREID2 --> VisaInfo
SW_FoundRE -- "Ja" --> VisaInfo[Anzahl erforderliche Visastufen ermitteln anhand Liegenschaft]
%% Visa & User Assignment
VisaInfo --> AssignUsers[Benutzer zu Visa zuordnen]
AssignUsers --> SW_UsersOK{Sind zu allen erforderlichen Visastufen Benutzer zugewiesen?}
SW_UsersOK -- "nein" --> SetState20[Status setzen <br/><i>Status: 20 Benutzer zuweisen</i>]
SetState20 --> ManualAssign[Benutzer manuell zuweisen <br/><i>User Interaktion erforderlich</i>]
ManualAssign --> StartLoop
SW_UsersOK -- "Ja" --> StartLoop
%% Loop Section
subgraph LoopTask [Visa Workflow]
%% Start und Initialisierung
StartLoop((Starte Visierung)) --> SetStateReady[Status setzen <br/><i>Status: 30 Bereit zur Visierung</i>]
%% --- VISA 1 PROZESS ---
SetStateReady --> NotifyV1[Benutzer Visum 1 informieren]
NotifyV1 --> SetUmsV1[Freigabe oder Zurückweisung durch Visum 1]
SetUmsV1 --> SwitchV1Confirm{Rechnung freigegeben?}
%% Visa 1 Pfad
SwitchV1Confirm -- "ja" --> SetOkV1[Status setzen<br/><i>Status: 41 Visum 1 freigegeben</i>]
SetOkV1 --> SwitchV2Needed{Visum 2 nötig?}
SwitchV1Confirm -- "nein" --> Rejected[Status setzen <br/><i>Status: 95 Zurückgewiesen</i>]
%% --- VISA 2 PROZESS ---
SwitchV2Needed -- "ja" --> NotifyV2[Benutzer Visum 2 informieren]
NotifyV2 --> SetUmsV2[Freigabe oder Zurückweisung durch Visum 2]
SetUmsV2 --> SwitchV2Confirm{Rechnung freigegeben?}
SwitchV2Needed -- "nein" --> SetStateFullySigned[Status setzen <br/><i>Status: 49 Vollvisiert</i>]
%% Visa 2 Pfad
SwitchV2Confirm -- "ja" --> SetOkV2[Status setzen<br/><i>Status: 42 Visum 2 freigegeben</i>]
SetOkV2 --> SwitchV3Needed{Visum 3 nötig?}
SwitchV2Confirm -- "Nein" --> Rejected
%% --- VISA 3 PROZESS ---
SwitchV3Needed -- "ja" --> NotifyV3[Benutzer Visum 3 informieren]
NotifyV3 --> SetUmsV3[Freigabe oder Zurückweisung durch Visum 3]
SetUmsV3 --> SwitchV3Confirm{Rechnung freigegeben?}
SwitchV3Needed -- "Nein" --> SetStateFullySigned
%% Visa 3 Pfad
SwitchV3Confirm -- "ja" --> SetOkV3[Status setzen<br/><i>Status: 43 Visum 3 freigegeben</i>]
SetOkV3 --> SetStateFullySigned
SwitchV3Confirm -- "Nein" --> Rejected[Status setzen <br/><i>Status: 95 Zurückgewiesen</i>]
%% Zurückweisung
Rejected --> NotifyRejected[Benutzer Zurückweisen an informieren]
NotifyRejected--> SwitchRejectAction{neu starten oder abbrechen?<br/><i>User Interaktion erforderlich</i>}
SwitchRejectAction -- "neu starten" --> SetVar1[Alle Visa Stempel entfernen]
SetVar1 --> StartLoop
%% Ende Subprozess
SetStateFullySigned --> EndLoop((Ende Visumsprozess))
end
%%Prozess abbrechen
SwitchRejectAction -- "abbrechen" --> ProcessCancel[Status setzen <br/><i>Status: 99 Abgebrochen</i>]
ProcessCancel --> ProcessCancelled((Prozess abgebrochen))
%% Send to ERP
EndLoop --> SendERP[Übermittlung an ERP]
SendERP --> SetStateSentToERP[Status setzen <br/><i>Status: 50 An ERP gesendet</i>]
SetStateSentToERP --> RecieveERP[Empfang ERP<br><i>ERP meldet erfolgreichen Empfang</i>]
RecieveERP --> SetStateRecievedERP[Status setzen <br/><i>Status: 60 in ERP technisch importiert</i>]
SetStateRecievedERP --> StartImport((Start Import))
%% Import und Bezahlen ERP
subgraph ERPProcess [Verarbeitung im ERP]
StartImport --> InvoiceImport[Rechnung importieren <br><i>manuell oder automatisch durch Job</i>]
InvoiceImport --> InvoiceCancel{Rechnung abbrechen?<i>Entscheidung durch User</i>}
InvoiceCancel -- "nein" --> InvoicePay[Rechnung bezahlen]
InvoicePay --> InvoicePaid[Rechnung ist bezahlt]
InvoicePaid --> EndERPProcess((Ende ERP Verarbeitung))
end
InvoiceCancel -- "ja" --> ProcessCancel
EndERPProcess --> SetStatePaid[Status setzen <br/><i>Status: 90 Rechnung bezahlt</i>]
SetStatePaid --> End((Ende))
%% Styling
classDef StateChange fill:#FFED29,color:#333
class Initialisierung,SetREID2,SetState20,SetStateReady,SetOkV1,Rejected,SetStateFullySigned,SetOkV2,SetOkV3,ProcessCancel,SetStateRecievedERP,SetStateSentToERP,SetStatePaid StateChange
classDef UserInteraction fill:#1C3FD9,color:#FFFFFF
class AssignRE,ManualAssign,SwitchRejectAction,SetUmsV3,SetUmsV2,SetUmsV1,InvoicePay,InvoiceImport UserInteraction
style ProcessCancelled fill:#FF1B00,color:#FFFFFF
style End fill:#11B507,color:#FFFFFF
style Start fill:#000000,color:#FFFFFF
classDef SubGraphStart fill:#5C5C5C,color:#FFFFFF
class StartLoop,StartImport SubGraphStart
classDef SubGraphEnd fill:#6DAD87,color:#FFFFFF
class EndLoop,EndERPProcess SubGraphEnd