Die Funktionsaufrufe, die vom Workflowmanager geschickt werden, nimmt das Workflowmanagerinterface entgegen und ruft dann die entsprechenden Funktionen im Auftragshandler auf.
Die wichtigste Funktion die der Workflowmanager aufrufen kann, ist die Funktion ''Speichere neuen Auftrag``, die als Parameter einen Auftrag enthält. Wenn das Workflowinterface diesen Aufruf erhält, ruft es die entsprechende Funktion im Auftragshandler auf. Der Auftragshandler muss nun überprüfen, welcher Art der Auftrag ist. Die erste Möglichkeit ist, daß es sich um einen Auftrag handelt, der an eine bestimmte Einkaufsrolle und ein bestimmtes Konto oder direkt an einen User gerichtet ist. In diesem Fall wird der Auftrag mit allen wichtigen Daten, wie Workflowinstanceid, BenutzerId bzw. Einkaufsrolle und Konto in der Datenbank abgelegt, damit er später für den oder die entsprechenden Benutzer wieder ausgelesen werden kann.
Eine zweite Möglichkeit ist, daß bei dem Auftrag erst bestimmt werden muss, welche Einkaufsrolle bestellberechtigt ist. Dies geschieht wenn der ursprüngliche Auftraggeber selber nicht berechtigt war diese Bestellung zu veranlassen. Also sucht der Auftragsabwickler in diesem Fall die kleinste Einkaufsrolle, die bestellberechtigt ist und in der sich auch Benutzer mit Berechtigung auf das Bestellkonto befinden. Dann legt der Auftragsabwickler den Auftrag, der jetzt eindeutig einer Benutzergruppe zugeordnet ist, in der Datenbank ab.
Bei der letzten Möglichkeit handelt es sich um einen Auftrag, der direkt vom Auftragshandler bearbeitet wird. Hier wird kein eingreifen vom Benutzer mehr benötigt. Es handelt sich um im Template festgelegte Auftragsdaten die direkt in die Datenbank abgelegt werden. Es wird vom Auftragshandler die selbe Funktionalität ausgeführt, wie bei einem fertigen Auftrag vom Client. Alle neuen Daten des Auftrags werden in die Datenbank geschrieben. Es werden eventuell noch andere Funktionen wie Mailversand erledigt. Danach wird der Auftrag auf ''done`` gesetzt und der Workflowmanager benachrichtigt das der Auftrag abgearbeitet wurde.
Der Workflowmanager kann außerdem noch eine Funktion aufrufen, die überprüft ob ein Benutzer berechtigt ist eine bestimmten Bestellung aufzugeben. Dies wird eigentlich bei jeder Bestellung geschehen. Nachdem ein neuer Workflow gestartet ist und der Besteller die ersten Daten eingegeben hat, ruft der Workflowmanager diese Funktion auf. Der Auftragshandler überprüft dann anhand der Einkaufsrolle ob der Benutzer berechtigt ist die Bestellung aufzugeben. Ist der Nutzer nicht berechtigt, wird der Workflowmanager einen neuen Auftrag an den Applicationserver schicken, der den Auftragsabwickler veranlaßt bestellberechtigte Personen zu finden und von diesen den Auftrag weitebesrbeiten zu lassen.
Jan Kechel 2006-04-28