Remote Workflow-Transitionen

Der @remote-workflow Endpoint erlaubt es, eine Workflow-Transition mandantenübergreifend auszulösen.

Der Aufruf erfolgt genau gleich wie ein Aufrauf des regulären @workflow Endpoints, mit dem einzigen Unterschied, dass das Objekt über eine remote_oguid (im JSON body des Requests) spezifiziert wird, statt über den Pfad auf welchem der Endpoint aufgerufen wird.

Das über die remote_oguid identifizierte Objekt muss sich auf einem anderen Mandant befinden, und muss von einem Typ sein, dessen OGUID im GlobalIndex indexiert ist (dies sind zur Zeit nur Aufgaben).

Das Backend bestimmt dann den entsprechenden Mandanten, leitet den Request an diesen weiter (im Security-Kontext des Benutzers), und leitet die Response wieder an den Client zurück. Wenn der Benutzer auf dem remote-Mandanten die nötigen Berechtigungen hat, wird dadurch die entsprechende Workflow-Transition durchgeführt.

Im untenstehenden Beispiel ist fd der Remote-Mandant, und der Benutzer will via seinem lokalen Mandanten, rk, eine Aufgabe auf dem fd akzeptieren. Diese Aufgabe ist durch die remote_oguid fd:12345 identifiziert.

Beispiel-Request:

POST /rk/@remote-workflow/task-transition-open-in-progress HTTP/1.1
Content-Type: application/json
Accept: application/json

{
  "remote_oguid": "fd:12345",
  "text": "Ich akzeptiere diese Aufgabe"
}

Beispiel-Response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "action": "task-transition-open-in-progress",
  "actor": "hugo.boss",
  "comments": "",
  "review_state": "task-state-in-progress",
  "time": "2020-08-17T13:28:04+00:00",
  "title": "In Arbeit"
}