Möchten Sie einen bestehenden Schritt absenden oder sichern, nutzen Sie die PUT-Route /application/steps/:workflowId. Für beiden Aktionen wird als Parameter workflowId die Workflow-ID des Schrittes angegeben. Weitere Schrittaktionen sind momentan nicht in der REST-API implementiert. Die gewünschte Aktion wird im HTTP-Request-Body der Anfrage angegeben. Weitere Parameter sind Prozessname, Version, Schrittnummer und Dialog-Typ (Desktop- oder mobile Version). Sie können auch Werte für Dialogelemente mitangeben.
Bitte beachten Sie: Der Schritt muss vorher vom authentifizierten Benutzer gesperrt sein (siehe Route PUT application/steps/<workflowId>/lock)!
Die Antwort ist im JSON-Format und beinhaltet u. a. die Prozess-ID:
{
"steps": [
{
"id": "354e2b74c003c9a45455075f64f374ac0000005445",
"workflowId": "354e2b74c003c9a45455075f64f374ac0000005445",
"processId": "354e2b74c003c9a45455075f64f374ac0000003809",
"processName": "archiveDocument",
"processVersion": 1,
"stepNo": 10,
"simulation": false,
"newStep": 0,
"dialog": "archiveDocument.1.input",
"readOnly": 0,
"action": "save" // ausgeführte Aktion
}
]
}
Beispiel: Senden eines bestehenden Schrittes
guzzlehttp
// Benutzer wurde bereits authentifiziert
// Schritt ist für den Benutzer gesperrt
// Eingabedaten definieren
$input = [
'processName' => 'archiveDocument',
'processVersion' => 1,
'stepNo' => 10,
'action' => 'send',
'workflowId' => '354e2b74c003c9a45455075f64f374ac0000005445',
'dialogType' => 'desktop',
'dialog' => [
'fields' => [
[
'name' => 'approvedBy',
'value' => 'jdoe'
]
],
],
];
try {
// Schritt mit den definierten Daten senden
$response = $client->request(
'PUT',
'application/steps/' . $input['workflowId'],
['json' => $input]
);
// Antwort bearbeiten
if ($response->getStatusCode() === 200) {
$body = $response->getBody();
$decodedBody = json_decode($body->getContents(), true);
$stepData = $decodedBody['steps'][0];
echo "Workflow-ID: " . $stepData['workflowId'] . "\n";
echo "Prozess-ID: " . $stepData['processId'] . "\n";
echo "Dialog: " . $stepData['dialog'] . "\n";
}
} catch (Exception $e) {
echo "Fehler beim Ausführen: " . $e->getMessage() . "\n";
}
// Benutzer-Session beenden
cURL
// Benutzer wurde bereits authentifiziert
// Schritt ist für den Benutzer gesperrt
$inputData = [
'processName' => 'archiveDocument',
'processVersion' => 1,
'stepNo' => 1,
'action' => 'send',
'workflowId' => '4c057f28ebc1740d5334bff12ddfe8870000000048',
'dialogType' => 'desktop',
'dialog' => [
'fields' => [
[
'name' => 'approvedBy',
'value' => 'jdoe',
]
],
],
];
curl_setopt(
$curlHandle,
CURLOPT_URL,
'http://example.org/jobrouter/api/rest/v2/application/steps/4c057f2...'
);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, json_encode($inputData));
curl_setopt($curlHandle, CURLOPT_COOKIEFILE, 'path/to/cooke/file.cookie');
$response = curl_exec($curlHandle);
$statusCode = curl_getinfo($curlHandle, CURLINFO_HTTP_CODE);
curl_close();
if ($statusCode == 200) {
$stepData = json_decode($response, true);
echo "Prozess-ID: " . $stepData['steps'][0]['processId'] . "\n";
} else {
echo "Fehler beim Ausführen: Code - " . $statusCode . ", ";
echo "Response: " . var_export($response, true);
}
// Benutzer-Session beenden