Arbeitsgang

In diesem Abschnitt können Eigenschaften des Arbeitsgangs abgefragt und verändert werden. Die meisten dieser Eigenschaften betreffen das Verhalten beim bzw. nach dem Ende des Bausteins.

Ein Geschäftsvorfall besteht in der Regel aus mehreren Arbeitsgängen, in denen eines oder mehrere Bausteine ausgeführt werden. Ein Arbeitsgang, der auszuführen ist, erscheint im Postkorb der betroffenen Organisationseinheit (Abteilung, oder Sachbearbeiter) unter seinem Arbeitsgangnamen; Bausteinnamen sind im Postkorb nicht sichtbar.

Der aktuelle Baustein ist Bestandteil eines Arbeitsgangs, wenn der in einem Geschäftsvorfall unterhalb eines Workflow Management Systems abläuft. Nur dann werden auch diese Methoden und Eigenschaften zur Laufzeit wirksam.

Die Klasse Arbeitsgang enthält alle Methoden und Eigenschaften, über die Informationen zu dem aktuellen Arbeitsgang abgefragt und verändert werden können. Insbesondere kann hiermit vorgesehen werden, dass bei Ende des aktuellen Bausteins der gerade laufende Arbeitsgang unterbrochen wird, um z.B. eine Frist abzuwarten, oder den Vorgang bei einem anderen Mitarbeiter weiterbearbeiten zu lassen.

Eigenschaften

ID

String ID { get; }

Diese Eigenschaft liefert die innerhalb des Geschäftsvorfalls eindeutige Kennung des Arbeitsgangs. Falls kein Workflow System für die Ausführung des aktuellen Bausteins aktiv ist, ist dieser ID leer.

Name

String Name { get; }

Diese Eigenschaft liefert den Namen des Arbeitsgangs. Dieser Name wird im Postkorb des Sachbearbeiters angezeigt.

Title

String Title { get; }

Diese Eigenschaft liefert den Titel des Arbeitsgangs.

Responsible

String Responsible { get; }

Liefert den Namen der aktuell für diesen Arbeitsgang zuständige Organisationseinheit.

MarkedWithDate

DateTime MarkedWithDate { get; }

Liefert das Datum, mit dem der aktuelle Arbeitsgang markiert ist oder DateTime.MinValue falls kein Datum gesetzt ist.

Zustände

bool IsConfirm      { get; }
bool IsFault        { get; }
bool IsReset        { get; }
bool IsSuspend      { get; }
bool IsAnySuspend   { get; }
bool IsAsyncSuspend { get; }

Über diese Eigenschaften kann der Zustand des Arbeitsgangs abgefragt werden. Wichtig ist diese Abfrage vor allem nach einem Bausteinaufruf, um festzustellen, ob ein anderer Baustein den Arbeitsgang unterbrochen oder zurückgesetzt hat: Wenn ja, muss die Kontrolle sofort an den Aufrufer zurückgegeben werden (bis zur Gevo-Steuerungsebene zurück, wo die Unterbrechung verwaltet wird).

IsReset und IsConfirm sind true, wenn die entsprechende Methode veranlasst wurde. IsFault ist true, wenn ein Fehler vorliegt, der zur Unterbrechung des Arbeitsgangs oder gar zum Abbruch des Geschäftsvorfalls führen wird. IsAnySuspend ist true, wenn aus egal welchem Grund der Arbeitsgang unterbrochen werden soll. IsSuspend ist true, wenn der Arbeitsgang zur späteren Wiederaufnahme unterbrochen werden soll. IsAsyncSuspend ist dabei ein Sonderfall von IsSuspend und dann true, wenn die Unterbrechung zur Wiederaufnahme als asynchron markiert wurde.

Methoden

Suspend

Boolean Suspend(Boolean async = false)
Boolean Suspend(DateTime date, Boolean async = false)
Boolean Suspend(String respArbg, Boolean async = false)
Boolean Suspend(String respArbg, DateTime date, Boolean async = false)
Boolean Suspend(String respArbg, DateTime dtDate, String respGevo, Boolean async = false)

Wenn für einen Arbeitsgang die Methode Suspend ausgeführt wird, soll der Arbeitsgang nach dem verlassen des Bausteins unterbrochen werden. Er wird im Postkorb der bearbeitenden Organisations-Einheit als „in Bearbeitung“ gekennzeichnet, und kann zu einem späteren Zeitpunkt neu aufgenommen werden, mit den Daten, die vorlagen, als er unterbrochen wurde.

Wenn der Arbeitsgang von einem anderen als dem gerade damit beschäftigten Sachbearbeiter weiterbearbeitet werden soll, kann im Argument respArbg die neue Organisationseinheit angegeben werden. Der Arbeitsgang erscheint dann - mit dem Status „in Bearbeitung“ - im Postkorb der Organisationseinheit, die ihn weiter bearbeiten soll.

Wenn Sie im Argument date ein Datum angeben, wird der Arbeitsgang für den angegebenen Termin auf Wiedervorlage gelegt. Die Organisationseinheit, in deren Postkorb er liegt, kann ihn jederzeit wieder aufnehmen; spätestens zu dem angegebenen Zeitpunkt legt das WFM-System ihn automatisch wieder vor (Status im Postkorb: „in Bearbeitung“).

Wenn Sie eine Variante des Aufrufes mit dem Argument respGevo benutzen, erhält die hier festgelegte Organisationseinheit die GeVo-Verantwortung.

Wenn das optionale Argument async als true übergeben wird, wird dafür gesorgt, dass der Geschäftsvorfall direkt (falls kein Datum/Uhrzeit angegeben wurde) oder zu einem späteren Zeitpunkt auf einem speziell dafür eingerichteten Server wieder aufgenommen und weiterverarbeitet wird. Im Postkorb wird eine solcher Arbeitsgang mit dem Zustand „zur Abarbeitung anstehend“ gekennzeichnet, und kann hier auch vom Sachbearbeiter wieder aufgenommen werden. Wenn Sie im Argument date ein Datum, resp. Uhrzeit angeben, findet die automatische Weiterverarbeitung zu diesem Zeitpunkt statt. Ist kein Datum angegeben, so findet sie zum frühestmöglichen Zeitpunkt statt.

Beispiel:

this.Gevo.Arbeitsgang.Suspend("Einkauf", this.Services.Timestamp.Today.AddDays(14));

Fault

Boolean Fault()

Die Methode Fault sollte ausgelöst werden, wenn ein Fehler aufgetreten ist, der ein Weiterarbeiten zu diesem Zeitpunkt unmöglich macht (z.B. eine Netzwerkressource stand nicht zur Verfügung). Der Arbeitsgang wird dann nach dem Bausteinende unterbrochen. Die zum Arbeitsgang gehörigen Daten werden gesichert, und der Arbeitsgang kann wieder aufgenommen werden, wenn der Fehler beseitigt ist. Status im Postkorb: „Fehler“.

Confirm

Boolean Confirm()
Boolean Confirm(DateTime date)

Wenn für einen Arbeitsgang die Methode Confirm ausgeführt wird, erwartet das Workflow Management System eine Bestätigung, bevor der Arbeitsgang als abgeschlossen betrachtet wird. Der Arbeitsgang taucht dann bei der zuständigen Organisationseinheit1) mit dem Kennzeichen „zur Abarbeitung anstehend“ im Postkorb auf. Dies kann der Fall sein, wenn z.B. ein Brief ausgedruckt und abgeschickt werden muss, oder wenn ein Batch-Programm die Erledigung bestätigen muss.

Wenn mit date ein Datum angegeben ist, so betrachtet das Workflow System den Arbeitsgang spätestens zu diesem Zeitpunkt als erledigt, auch wenn noch keine Bestätigung erfolgte. Wenn die Bestätigung unbedingt erforderlich ist, darf deshalb kein Datum angegeben werden.

Der Kontrollfluss geht normal weiter. Ein anderer Baustein kann während der weiteren Bearbeitung des Arbeitsgangs den Confirm-Status überschreiben, indem er einen anderen Arbeitsgang-Status setzt (z.B. mit Suspend oder Fault).

Reset

Boolean Reset()
Boolean Reset(String respArbg)

Mit der Methode Reset wird dem Workflow System mitgeteilt, dass der Sachbearbeiter den Arbeitsgang abgebrochen hat. Der Arbeitsgang wird dann nach dem Bausteinende unterbrochen. Das Workflow System sorgt dafür, dass sämtliche Daten auf den Stand zurückgesetzt werden, in dem sie zum Beginn des Arbeitsgangs vorlagen. Der Arbeitsgang wird wieder zur Bearbeitung in den Postkorb gestellt; seine Bearbeitung muss von vorn begonnen werden (Statusangabe im Postkorb: „Zugeordnet“).

Wenn das Argument respArbg angegeben ist, bedeutet das, dass die angegebene Organisationseinheit die erneute Bearbeitung vornehmen soll.

Reactivate

Boolean Reactivate()

Die Methode Reactivate führt dazu, dass eine vorherige Suspend, Confirm, Fault bzw. Reset Anweisung zurückgenommen wird, der z.B. in einem aufgerufenen Baustein ausgelöst wurde. Sie kann nur in eine Umgebung verwendet werden wo die zugrundeliegende Ausführung nicht unterbrechbar ist (Gevo.IsTechnical == true), andernfalls wir eine Condition (ZZTAAIM2(14)) aufgeworfen.

1)
z.B. Sachbearbeiter oder Abteilung
dotnet:native:arbg · Zuletzt geändert: 19.09.2017 09:54

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum