Klasse TeamWiSE.TAA.BpObject: Steuern des Ablaufs eines Arbeitsgangs

Instanzen dieser Klasse sind immer mit einer ModlEnv-Klasse verbunden, welche eine Instanz dieser Klasse zur Eigenschaft Bp liefert. Manche Eigenschaften und Methoden an diese TAA.BpObject-Klasse sind in Zusammenhang mit dem ModlEnv-Objekt zu betrachten.

Anhand der Klasse TAA.BpObject (BP = Business Process, Arbeitsgang) können Eigenschaften des Arbeitsgangs gesetzt und verändert werden. Die meisten dieser Eigenschaften betreffen das Verhalten beim bzw. nach dem Unregister.

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

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

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

Ein Arbeitsgang, der bei einer Organisationseinheit im Postkorb steht, kann einen von folgenden Stati haben:

Status Wird erreicht durch:
Erledigt, Aktiv keine besonderen Angaben in den Modulen
Unterbrochen ein Modul setzte Suspend, oder SuspendAsynchronous
zur Abarbeitung anstehend ein Modul setzte Confirm
zugeordnet vor Beginn des Arbeitsgangs, oder ein Modul setzte Reset
Fehler ein Modul setzte Fault

Die Klasse kennt nachfolgend beschriebene Eigenschaften und Methoden.

Eigenschaften

Name

String Name { get; }

Diese Eigenschaft liefert den Namen des Arbeitsgangs. Der Name ist derjenige, der im Postkorb des Sachbearbeiters angezeigt wird.

Title

String Title { get; }

Diese Eigenschaft liefert den Titel des Arbeitsgangs.

IsConfirm, IsFault, IsReset, IsSuspend

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

Über diese Eigenschaften können Sie abfragen, ob bereits einer dieser Stati für den Arbeitsgang von einem Baustein gesetzt wurde. Der Wert ist true, wenn die Eigenschaft gesetzt wurde.

Wichtig ist diese Abfrage vor allem nach einem doCall, 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).

Wenn IsFault oder IsReset = true ist, ist auch die Eigenschaft IsSuspend = true.

Methoden

Active

System.Boolean Active()

Die Methode versucht, den WorkflowState dieses Arbeitsgangs auf „Active“ zu setzen.

Dies ist nur sinnvoll in NTRY-Bausteinen, um nach Auftreten von Fehlern, die zum einem WorkflowState Fehler o.ä. geführt haben, die Verarbeitung in anderen TAA-Modulen fortsetzen zu können.

In anderen TAA-Bausteinen (AFUN usw.) wird der Workflow-State von der TAA-Infrstruktur ausgewertet und entsprechend darauf reagiert, sodass dort ein Verändern auf Active zu unvorhergesehenem Laufzeitverhalten der Anwendung führen kann.

Suspend

Boolean Suspend()
Boolean Suspend(DateTime dtDate)
Boolean Suspend(String sOE)
Boolean Suspend(String sOE, DateTime dtDate)
Boolean Suspend(String sOE, String   sDate)
Boolean Suspend(String sOE, DateTime dtDate, String GevoOE)
Boolean Suspend(String sOE, String   sDate,  String GevoOE)

Wenn Sie für einen Arbeitsgang die Methode Suspend ausführen, wird der Arbeitsgang nach dem Unregister unterbrochen. 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, geben Sie im Argument sOE die neue Organisationseinheit an. Der Arbeitsgang erscheint dann - mit dem Status „in Bearbeitung“ - im Postkorb der Organisationseinheit, die ihn weiter bearbeiten soll.

Wenn Sie im Argument dtDate oder sDate 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 GevoOE benutzen, erhält die hier festgelegte Organisationseinheit die Gevo-Verantwortung.

Beispiel:

Me.Bp.Suspend("Verkauf", "2003-10-23");
Me.Unregister();

SuspendAsynchronous

Boolean SuspendAsynchronous()
Boolean SuspendAsynchronous(DateTime dtDate)
Boolean SuspendAsynchronous(String sDate)

Diese Methode1) funktioniert wie Suspend, allerdings mit der Besonderheit, dass der Geschäftsvorfall direkt 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 dtDate bzw. sDate ein Datum angeben, findet die automatische Weiterverarbeitung zu diesem Datum statt. Ist kein Datum angegeben, so findet sie zum frühestmöglichen Zeitpunkt statt

Fault

Boolean Fault()

Fault sollten Sie angeben, 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 Unregister 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 dtDate)
Boolean Confirm(String sDate)

Wenn Sie für einen Arbeitsgang die Methode Confirm ausführen, erwartet das Workflow Management System eine Bestätigung, bevor der Arbeitsgang als abgeschlossen betrachtet wird. Der Arbeitsgang taucht dann bei der zuständigen Organisationseinheit2) 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 ein Datum angegeben ist, so betrachtet das WFM-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, Fault).

Reset

Boolean Reset()
Boolean Reset(String sOE)

Mit der Methode Reset teilen Sie dem WFM-System mit, dass der Sachbearbeiter den Arbeitsgang abgebrochen hat. Der Arbeitsgang wird dann nach dem Unregister unterbrochen. Das WFM-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“). Die Infrastuktur sorgt automatisch dafür, dass der Kontrollfluss bis zur Steuerungsebene zurückgeführt wird.

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

1)
Ab dem Release 7.03 verfügbar.
2)
z.B. Sachbearbeiter oder Abteilung
dotnet:imbp · Zuletzt geändert: 09.08.2024 13:25

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