Verwendung eines Prozesses in einem Beleg
Mithilfe von Prozessen und Prozessstatus können Benutzer Dokumente kategorisieren und filtern.
Auswahl des Prozesses
Um einen Prozess auf einen Beleg anzuwenden, ist die Zuordnung eines Prozesses zu dem Beleg notwendig. Diese Auswahl erfolgt über Feld Prozess im Inforegister Allgemein. Sie zeigt alle Prozess an, die für den Beleg möglich sind (s. hier). Es ist möglich, bei der Abwicklung bspw. eines Verkaufsauftrags zwischen unterschiedlichen Prozessen wählen, die jeweils ein anderes Prozessvorgehen mit abweichenden Prozessschritten und unterschiedlichen Funktionalitäten benötigen. Eine der gängigsten Unterscheidungen für Verkaufsaufträge ist die zwischen Standardaufträgen (z.B. einfacher Verkauf von Ware) und umfangreichen Projektaufträgen, die neben Waren (bspw. Hardware, Software etc.) auch Dienstleistungen beinhalten.
Setzen eines Prozessstatus
Jeder Anwender, der nach Festlegung des Prozesses einen Status im Beleg setzen möchte, hat die Auswahl aus den Prozessstatus, die für den Prozess definiert wurden (s. hier). Typische Fälle, in denen das Setzen eines Prozessstatus sinnvoll sein kann, sind:
- das Einleiten eines neuen Prozessschritts, oft indirekt verbunden mit der Weiterleitung der Bearbeitung an einen anderen Anwender (z.B. Angebot zu prüfen, Auftrag wartet auf Rechnung, Anforderung an Entwicklung übergeben),
- einen Prozessschritt als erledigt markieren (z.B. Angebot geprüft oder Rechnung verschickt),
- die Beschreibung eines Wartezustands (z.B. Warten auf Kunden-Info) oder
- das Anstoßen einer Funktionalität, wie z.B. der automatischen Freigabe des Belegs.
Das Setzen eines Prozessstatus wird mit der Aktion Prozessstatus setzen (Alt+S) im Beleg angestoßen und die Seite mit der zum Prozess gehörigen Liste der Prozessstatus aufgerufen. Aus dieser Liste wird ein Status ausgewählt und dieser mit OK anschließend gesetzt. Der Anwender wird bei der Auswahl des Prozessstatus unterstützt, indem der nächstmögliche Prozessstatus (nach dem bereits gesetzten, aktuellen Status) automatisch vorgeschlagen wird. Es ist jedoch möglich, von der Vorauswahl abzuweichen und einen beliebigen anderen Status zu wählen. So können auch Prozessstatus erneut verwendet werden, die bereits vorher schon einmal gesetzt waren (s. hier). Es müssen auch nicht alle verfügbaren Prozessstatus gesetzt werden - Prozessstatus können übersprungen werden.
In der Seite Statushistorie werden die bereits gesetzten Status angezeigt. An dieser Stelle kann auch der zuletzt gesetzte Status wieder gelöscht werden, sofern der Anwender ihn selbst gesetzt hat.
Ein gesetzter Prozessstatus kann nur durch denjenigen Anwender zurückgenommen werden, der den Status ursprünglich gesetzt hat oder durch einen Administrator (entsprechende Zugriffsrechte vorausgesetzt).
Historie der Prozessstatus
Im Feld Prozessstatus wird der zuletzt im Beleg gesetzte Status angezeigt. Über dessen Lookup greift man (abhängig vom ausgewählten Prozess) auf eine Prozessstatus-Tabelle zu, in der sowohl ein neuer Status gesetzt (oberer Teil der Seite) als auch alle bis dahin gesetzten Status (unterer Teil der Seite, Statushistorie) eingesehen werden können.
Neben den Informationen zu dem Prozessstatus selbst entnimmt man dieser Seite, wann und von wem welcher Status gesetzt wurde. Diese Historie wird automatisch erstellt, inkl. Datumsstempel und Benutzer-ID. Ein gesetzter Status kann nur durch den Benutzer selbst oder durch einen Administrator wieder entfernt werden (s. Info Status zurücksetzen). Für das Zurücksetzen wird die Aktion Letzten Status löschen verwendet.
In der Seite Prozessstatus könnten auch zusätzliche Status per Lookup im Feld Beschreibung Status hinzugefügt werden, um einen weiteren Prozessstatus auszuwählen, der nicht in der Liste aufgeführt ist. Mit OK kann dieser gesetzt und die Seite geschlossen werden.
Wiederholungsschleife im Prozess
Eine Wiederholungsschleife im Prozess wird dadurch erreicht, indem der Anwender einen Prozessstatus setzt, der in der Liste einen vorhergehenden Wert hat. Beim folgenden Setzen eines Status wird dann wieder dessen Nachfolger angeboten, d.h. der Prozess wird ab diesem Status nun erneut durchlaufen.
Ausgangspunkt ist ein Prozess für ein Verkaufsangebot.
- Ein Mitarbeiter im Sales erstellt ein Angebot und setzt den Status SQ0-000 - Angebot erstellt.
- Anschließend veranlasst er, den Inhalt des Verkaufsangebots technisch zu prüfen (SQ1-030 - Angebot zu prüfen).
- Diese Prüfung wird von der Fachabteilung übernommen, die zu dem Schluss kommt, dass Informationen fehlen, die für die Prüfung benötigt werden.
- Daher setzt die Fachabteilung das Verkaufsangebot auf den Prozessstatus SQ1-010 - Angebot unklar. Der Angebotsprozess wird nun erneut durchlaufen, in dem der Mitarbeiter das Angebot überarbeitet und anschließend den Status SQ1-030 - Angebot zu prüfen setzt.
- Wäre die technische Prüfung positiv verlaufen, wäre SQ2-040 - Angebot geprüft gesetzt worden, der Vertriebsinnendienst könnte dann das Angebot verschicken.
Ausführen einer Aktion beim Setzen eines Prozessstatus
Mit dem Setzen eines Status können Aktionen ausgeführt werden. Dazu werden in der Seite Status Aktionen ein oder mehrere Aktionen zu einem Status zugeordnet, wobei eine Aktion als Report oder Codeunit realisiert sein kann. Derzeit steht lediglich ein Report (70921246 - SA Beleg freigeben) zur Freigabe des aktuellen Belegs zur Verfügung. Bei Bedarf können weitere Objekte für Statusaktionen hinzugefügt werden - entweder im Lieferumfang von DYCE Smart Workflow Tool oder als Kundenerweiterung.
Im Hintergrund gibt es zwei weitere Felder, die standardmäßig nicht angezeigt werden, bei Bedarf aber eingeblendet werden können:
- Request Page anzeigen
Dieses Kennzeichen steuert, ob das Berichtsobjekt mit seinen Standardvorgaben oder mit seiner Abfrage (in der typischerweise noch Parameter abgefragt werden) ausgeführt wird. Für den zweiten Fall ist der Haken in diesem Feld zu setzen. Das Kennzeichen gilt nur für Objekte der Art Report. - Commit nach Ausführung
Dieses Kennzeichen steuert, ob nach der Verarbeitung des Objekts ein COMMIT-Befehl durchgeführt wird.
Grundsätzlich kann jeder Report und Codeunit als Aktion ausgeführt werden, dessen primäres DataItem zu dem Datensatz passt, für den der Status gesetzt werden soll (z.B. Verkaufskopf).