Please enable JavaScript to view this site.

Das Handbuch für den JobRouter Entwickler

Navigation: REST-API-Beispiele > Praxisbeispiele > Prozesse

Dialogfunktion ausführen

Scroll Zurück Oben Weiter Mehr

Sie können über die POST-Route /application/steps/:workflowId/dialogfunctions/:functionName Dialogfunktionen ausführen. Dabei wird der Funktionsname als Parameter functionName angegeben. Ein weiterer Pflichtparameter ist die Workflow-ID des gewünschten Startschrittes (workflowId). In dem Request-Body werden die Aufrufparameter der Funktion und alle notwendigen Dialogwerte angegeben, z. B. wenn diese anhand getDialogValue in der aufgerufene Dialogfunktion ermittelt werden.

Hinweis: Möchten Sie die Dialogfunktion in einem neuen Startschritt ausführen, der noch keine Workflow-ID besitzt, geben Sie den Wert new anstatt der Workflow-ID an. Zusätzlich müssen Prozessname, Prozessversion und Schrittnummer im Request-Body angegeben werden (processName, processVersion, stepNo).

Antwort

Die Antwort ist im JSON-Format und beinhaltet die Rückgabewerte der Dialogfunktion, die Workflow-ID, die Prozess-ID (Vorgangskennung) und die Prozess-Step-ID.

{

 "dialogfunctions": {

         "returnValues": {

                 "usernameAccordingToCheckbox": "Max Muster (mmuster)",

                 "__DialogFunctionClassSaveCalled__": true

         }

 },

 "meta": {

         "workflowId": "d6e48c7de99fd065ff741a6cb195dffb0000002458",

         "processId": "d6e48c7de99fd065ff741a6cb195dffb0000001575",

         "processStepId": "d6e48c7de99fd065ff741a6cb195dffb0000003315"

 }

}

Wurde in der Dialogfunktion die PHP-API Funktion save aufgerufen, wird der Parameter __DialogFunctionClassSaveCalled__ mit dem Wert true zurückgegeben.

Beispiel: Ausführen einer Funktion in einem bestehenden Schritt

Im Beispielprozess wird abhängig von einer Checkbox im Dialog der volle Name des übergebenen Benutzers oder nur der Benutzername in dem Rückgabeparameter usernameAccordingToCheckbox zurückgegeben.

guzzlehttp

// Benutzer wurde bereits authentifiziert

 

// Funktionsparameter und Dialogwerte angeben (z. B. für das Ermitteln mit getDialogValue in der PHP-Funktion)

$input = [

    "functionParameters" => [

        ["name" => "fullname", "value" => 0],

    ],

    "dialog" => [

        "fields" => [

            ["name" => "userNameField", "value" => "mmuster"],

        ],

    ],

];

 

try {

 $response = $client->request('POST', $route, ['json' => $inputData]);

 echo "Status code: " . $response->getStatusCode() . PHP_EOL;

 $body = $response->getBody();

 $decodedBody = json_decode($body->getContents(), true);

 

 foreach ($decodedBody['dialogfunctions']['returnValues'] as $name => $value) {

         // Ausgabe: "userAccordingToCheckbox => mmuster"

                    echo $name . " => " . $value . PHP_EOL;

 }

} catch (ClientException $e) {

    echo $e->getMessage() . PHP_EOL;

    exit;

} catch (Exception $e) {

    echo "Error: " . $e->getMessage() . PHP_EOL;

    exit;

}

 

// Benutzer-Session beenden

cURL

// Benutzer wurde bereits authentifiziert

 

// Funktionsparameter und Dialogwerte angeben (z. B. für das Ermitteln mit getDialogValue in der PHP-Funktion)

$inputData = [

    "functionParameters" => [

        ["name" => "fullname", "value" => 1],

    ],

    "dialog" => [

        "fields" => [

            ["name" => "userNameField", "value" => "mmuster"],

        ],

    ],

];

 

$response = $client->post($route, $inputData, 200);

 

if (count($response)) {

 foreach ($response['dialogfunctions']['returnValues'] as $name => $value) {

         // Ausgabe: "userAccordingToCheckbox => Max Muster (mmuster)"

         echo $name . " => " . $value . PHP_EOL;

 }

}

// Benutzer-Session beenden