Please enable JavaScript to view this site.

Das Handbuch für den JobRouter Entwickler

Navigation: REST-API-Beispiele > Praxisbeispiele > Prozesse

Schrittaktionen

Scroll Zurück Oben Weiter Mehr

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