Aufgaben

Auch Aufgaben können via REST API bedient werden. Die Erstellung einer Aufgabe erfolgt wie bei anderen Inhalten (siehe Kapitel Operationen) via POST request:

Beispiel-Request:

POST /(container) HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "@type": "opengever.task.task",
  "title": "Bitte Dokument reviewen",
  "responsible": "john.doe",
  "issuer": "john.doe",
  "responsible_client": "afi",
  "task_type": "direct-execution"
}

Beispiel-Response:

HTTP/1.1 201 Created
Accept: application/json

{
  "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/task-5",
  "@type": "opengever.task.task",
  "...": "..."
}

Bearbeitung bzw. Statusänderungen

Die Bearbeitung einer Aufgabe via Patch Request ist limitiert und nur möglich solange sich die Aufgabe im Status offen befindet. Im weiteren Verlauf einer Aufgabe werden diese auschliesslich via Statusänderungen bearbeitet. Dies geschieht über den @workflow Endpoint mit entsprechender Transition ID als zusätzlicher Parameter.

Ein GET Request auf den @workflow endpoint listet mögiche Transitions auf:

Beispiel-Request:

GET /(path)/@workflow HTTP/1.1
Accept: application/json

Beispiel-Response:

HTTP/1.1 200 OK
Accept: application/json

{
  "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/task-5/@workflow",
  "history": [],
  "transitions": [
    {
    "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/task-5/@workflow/task-transition-modify-deadline",
    "title": "Frist ändern"
    },
    {
    "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/task-5/@workflow/task-transition-open-in-progress",
    "title": "Akzeptieren"
    },
    {
    "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/task-5/@workflow/task-transition-reassign",
    "title": "Neu zuweisen"
    }
  ]
}

Eine Transition wird dann folgendermassen ausgeführt:

Beispiel-Request:

POST /(path)/@workflow/task-transition-open-in-progress HTTP/1.1
Accept: application/json

{
  "text": "Ok, wird gemacht!"
}

Beispiel-Response:

HTTP/1.1 200 OK
Accept: application/json

{
  "action": "task-transition-open-in-progress",
  "actor": "philippe.gross",
  "comments": "",
  "review_state": "task-state-in-progress",
  "time": "2019-01-24T16:12:12+00:00",
  "title": "In Arbeit"
}

Folgend sind die möglichen Statusänderungen kurz dokumentiert:

Akzeptieren

Transition IDs:
  • task-transition-open-in-progress

Zusätzliche Metadaten:

text
Datentyp:Text

Frist verlängern

Transition IDs:
  • task-transition-modify-deadline

Zusätzliche Metadaten:

responsibles
Datentyp:List
Pflichtfeld:Ja (*)
title
Datentyp:TextLine
Pflichtfeld:Ja (*)
issuer
Datentyp:Choice
Pflichtfeld:Ja (*)
deadline
Datentyp:Date
Pflichtfeld:Ja (*)
text
Datentyp:Text

Neu zuweisen

Transition IDs:
  • task-transition-reassign

Zusätzliche Metadaten:

text
Datentyp:Text
responsible
Datentyp:Choice
Pflichtfeld:Ja (*)
responsible_client
Datentyp:Choice
Pflichtfeld:Ja (*)

Erledigen

Transition IDs:
  • task-transition-in-progress-resolved
  • task-transition-open-resolved

Zusätzliche Metadaten:

text
Datentyp:Text

Überarbeiten

Transition IDs:
  • task-transition-resolved-in-progress

Zusätzliche Metadaten:

text
Datentyp:Text

Abschliessen

Transition IDs:
  • task-transition-resolved-tested-and-closed
  • task-transition-in-progress-tested-and-closed
  • task-transition-open-tested-and-closed

Zusätzliche Metadaten:

text
Datentyp:Text

Abbrechen

Transition IDs:
  • task-transition-open-cancelled
  • task-transition-in-progress-cancelled

Zusätzliche Metadaten:

text
Datentyp:Text

Ablehnen

Transition IDs:
  • task-transition-open-rejected
  • task-transition-in-progress-cancelled

Zusätzliche Metadaten:

text
Datentyp:Text

Wieder eröffnen

Transition IDs:
  • task-transition-cancelled-open
  • task-transition-rejected-open

Zusätzliche Metadaten:

text
Datentyp:Text

Delegieren

Transition IDs:
  • task-transition-delegate

Zusätzliche Metadaten:

text
Datentyp:Text

Des weiteren stehen auch die Statuswechsel für sequentielle Aufgaben zur Verfügung:

Überspringen

Transition IDs:
  • task-transition-planned-skipped
  • task-transition-rejected-skipped

Zusätzliche Metadaten:

text
Datentyp:Text

Öffnen

Transition IDs:
  • task-transition-planned-open

Zusätzliche Metadaten:

text
Datentyp:Text

Aufgabenverlauf

Der Verlauf einer Aufgabe ist in der GET Repräsentation einer Aufgaben unter dem Attribut responses enthalten.

Beispiel-Respones auf ein GET Request:

HTTP/1.1 200 OK
Accept: application/json

{
  "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/task-5",
  "@type": "opengever.task.task",
  "UID": "3a551f6e3b62421da029dfceb71656e6",
  "items": [],
  "responses": [
    {
      "response_id": 1
      "response_type": "default"
      "added_objects": [],
      "changes": [],
      "creator": "zopemaster",
      "created": "2019-05-21T13:57:42+00:00",
      "date_of_completion": null,
      "related_items": [],
      "reminder_option": null,
      "text": "Lorem ipsum.",
      "transition": "task-commented"
    },
    {
      "response_id": 2
      "response_type": "default"
      "added_objects": [],
      "changes": [],
      "creator": "zopemaster",
      "created": "2019-05-21T14:02:01+00:00",
      "date_of_completion": null,
      "related_items": [],
      "text": "Suspendisse faucibus, nunc et pellentesque egestas.",
      "transition": "task-transition-open-in-progress"
    },
  ]
  "responsible": "david.erni",
  "...": "...",
}