Workflow¶
In GEVER haben viele Inhaltstypen einen assozierten Workflow (z.B. Ordnungspositionen, Dossiers, Aufgaben, ...).
Der aktuelle Workflow-State eines Objekts ist der Einfachheit halber als
review_state
direkt in der GET Repreäsentation
eines Objekts enthalten:
HTTP/1.1 200 OK
Content-Type: application/json
{
"@context": "http://www.w3.org/ns/hydra/context.jsonld",
"@id": "https://example.org/dossier-15",
"@type": "opengever.dossier.businesscasedossier",
"...": "...",
"review_state": "dossier-state-active"
}
Für die restlichen Aspekte des Workflows eines Objekts wird der @workflow
Endpoint verwendet:
-
GET
/
(path)/@workflow
¶ Liefert die Workflow-Informationen zu dem durch path addressierten Objekt zurück.
Die Workflow-Informationen enthalten die Workflow-History (und darin enthalten, der aktuelle Workflow-State) und die für dieses Objekt möglichen Workflow-Transitionen.
Beispiel-Request:
GET /dossier-15/@workflow HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "history": [ { "action": null, "actor": "john.doe", "comments": "", "review_state": "dossier-state-active", "time": "2016-08-02T17:08:50+00:00" }, { "action": "dossier-transition-resolve", "actor": "john.doe", "comments": "", "review_state": "dossier-state-resolved", "time": "2016-08-02T17:08:54+00:00" } ], "transitions": [ { "@id": "http://example.org/dossier-15/@workflow/dossier-transition-reactivate", "title": "dossier-transition-reactivate" } ] }
Dieses Dossier befindet sich zur Zeit im Status abgeschlossen (
dossier-state-resolved
, letzter Eintrag in der Workflow-History).In diesem Beispiel ist die einzig von diesem Workflow-State ausgehende Transition, das Dossier wiederzueröffnen (
dossier-transition-reactivate
). Diese Transition kann ausgeführt werden, indem einPOST
Request auf die entsprechende URL durchgeführt wird:
-
POST
/
(path)/@workflow/
(transition)¶ Führt für das durch path addressierte Objekt die Workflow-Transition transition durch.
Beispiel-Request:
POST /dossier-15/@workflow/dossier-transition-reactivate HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "action": "dossier-transition-reactivate", "actor": "john.doe", "comments": "", "review_state": "dossier-state-active", "time": "2016-08-02T15:20:21+00:00" }
Workflow-Schema¶
Gewisse Workflow Transitions, wie bspw. der Dossier-Abschluss, erwarten je nach Konfiguration weiter Angaben. Diese Schemas können mit einem Request auf den zusätzlichen API Endpoint @workflow-schema
abgefragt werden. Mit dem Rückgabewert kann ein entsprechendes Formular generiert werden.