HTTPRestHandler

Beschreibung

Der HTTPRestHandler ermöglicht es dem Benutzer, Anfragen an einen Server zu senden und die zurückgegebene Antwort in einer Prozessvariablen zu speichern. Der Status (success oder error) des Aufrufs wird in die Variable .SYS.<Name des Ereignisses>_status geschrieben.


Klasse

com.dooris.bpm.actionhandler.HttpRestHandler

Parameter

Name des Parameters

Standardwert

Beschreibung

Gültige Beispiele

Name des Parameters

Standardwert

Beschreibung

Gültige Beispiele

hostName
MANDATORY

 

Dieser Parameter enthält die URL des angeforderten Servers.

Hostname (URL)

method

post

Dieser Parameter bestimmt, welche Methode remote aufgerufen wird. Bereitstellen bedeutet, dass der Server eine Eingabe im XML-Format erwartet, die er verarbeitet und zurückgibt. Erhalten bedeutet, dass der Server Daten sendet, ohne dass eine Eingabe erforderlich ist.

delete
get
head
options
patch
post
put

templatePathMANDATORY (wenn httpBody nicht gesetzt ist)

 

Dieser Parameter enthält den Dateipfad zu einer JSON-Datei, die die Eingabe für den Server enthält.

Pfad zur Vorlage

getParameter

 

Dieser Parameter enthält die Eingabe für den Server im JSON-Format.

 

httpBodyMANDATORY (wenn templatePath nicht gesetzt ist)

 

Dieser Parameter enthält die Eingabe für den Server im JSON-Format.

 

responseVariable

 

Dieser Parameter enthält die Prozessvariable, in der die Serverantwort gespeichert werden soll.

 

user

 

Dieser Parameter ist nur erforderlich, wenn der Server eine Identifizierung erfordert und den Benutzernamen des Benutzers enthält.

 

pass

 

Dieser Parameter wird nur benötigt, wenn der Server eine Identifizierung erfordert und das Kennwort des Benutzers enthält.

 

authMethodMandatory

 

Dieser Parameter wird nur benötigt, wenn der Server eine Identifizierung erfordert und die Verschlüsselung enthält, die angewendet werden soll. Eine mögliche Verschlüsselung ist base64, die angewendet wird, indem dieser Parameter auf basic.

oauth

basic

oAuthGrantTypeAccess

password

Dieser Parameter beschreibt den OAuth-Gewährungstyp, der in der Anforderung verwendet werden soll. Weitere Optionen: https://oauth.net/2/grant-types/

 

oAuthGrantTypeRefresh

refresh_token

Dieser Parameter sollte zusammen mit dem Wert Aktualisierungstoken enthalten sein und wird verwendet, um ein Zugriffstoken abzurufen.

 

oAuthClientId
MANDATORY (wenn authMethod == oauth)

 

Dieser Parameter ist ein öffentlicher Bezeichner für die Anwendungen, d. h. eine öffentlich verfügbar gemachte Zeichenfolge, die von der Dienst-API zur Identifizierung der Anwendung verwendet wird.

 

oAuthClientSecret
MANDATORY (wenn authMethod == oauth)

 

Dieser Parameter ist ein geheimes Geheimnis, das nur der OAuth-Anwendung und dem Autorisierungsserver bekannt ist. Es wird vom Autorisierungsserver während des Prozesses der Anwendungsregistrierung generiert. Ein Client muss seinen geheimen Clientschlüssel bereitstellen, um sich beim Autorisierungsserver zu authentifizieren.

 

oAuthTokenUrl
MANDATORY (wenn authMethod == oauth)

 

Teilt die URL auf, von der das OAuth-Token abgerufen werden soll.

 

oAuthTokenBasicAuth

false

Wenn dies true, rufen wir das OAuth-Zugriffstoken ab, indem wir die nicht leeren Werte der Parameter oAuthClientId und oAuthClientSecret als Parameter für Basic Auth verwenden.

 

additionalFields

 

Dieser Parameter wird verwendet, um dem Rest zusätzliche Felder hinzuzufügen.

 

additionalHeaders

 

 

Dieser Parameter wird verwendet, um zusätzliche Header zum Rest hinzuzufügen.

{myNewHeader:'headerValue1',my2ndHeader:'headerValue2'}

searchByJsonPath

null

Hier wird der Json-Pfad für einen bestimmten Teil der zurückgegebenen Json-Datei und ein Variablenname, unter dem der spezifische Teil des Jsons gespeichert werden soll, eingetragen. Die Variable(n) werden dann in einem Array mit dem Namen "result" gespeichert. Zum besseren Verständnis siehe Beispiele.

[{path: "[*]", resultVariable: "variable_name"}]

contentType

 

Dieser Parameter gibt den Inhaltstyp der Anforderung an.

 

newLineReplacement

 

Ersetzt alle \n mit dem angegebenen Wert, es sei denn, FALSCH wird als Wert bereitgestellt.

 

urlEncoding

true

Wenn diese Option aktiviert ist, wird die URL in eine US-ASCII-Zeichenfolge konvertiert. Darüber hinaus werden eckige Klammern mit ihren jeweiligen ASCII-Werten versehen.

 

convertBodyToJson

false

Dieser Parameter wird verwendet, um die Abfrageparameter in eine JSON-Zeichenfolge zu konvertieren.

 

addNote

false

Wenn diese Option aktiviert ist, wird die Antwort als Notiz gespeichert und an die aktuelle Prozessinstanz angehängt.

 

addAllDocuments

false

Wenn diese Option aktiviert ist, wird eine mehrteilige Anforderung erstellt, die alle angehängten Dokumente enthält.
Nur relevant für PUT-Anfragen.

 

addLocalDocument

 

Dieser Parameter fügt eine lokale Datei über den angegebenen Pfad hinzu.

 

logResponse

 

Wenn diese Option aktiviert ist, wird die Antwort im Serverprotokoll abgemeldet.

 

logRequest

true

Wenn diese Option aktiviert ist, wird die Anforderung im Serverprotokoll abgemeldet.

 

faultTolerance

1

Dieser Parameter kann entweder als 0 oder 1 angegeben werden. Es macht nur einen Unterschied, wenn eine Ausnahme ausgelöst wird. Wenn eine Ausnahme ausgelöst wird, wird der Prozess gestoppt, wenn der Parameter auf 0 gesetzt ist, und wenn er auf 1 gesetzt ist, wird die Ausnahmemeldung in der responseVariable gespeichert und der Prozess kann wie gewohnt fortgesetzt werden.

0

1

onErrorRepetition

0

Wiederholen Sie die Ausführung, wenn eine fehlerhafte Anforderung vorliegt (wenn es sich um eine IOException (wie 403, 401) handelt)

 

isRestCallButton

false

Dieser Parameter wird verwendet, wenn Sie den Rest-Handler über eine TSD-Schaltfläche aufrufen möchten.

 

 

Beispiel 1:

Parameter

Wert

Parameter

Wert

hostName

https://yourcompanyserver.com/rest/list/${customerList};

method

post

postParameter

{

"Firma":"${customer_company}",

"Vorname":"${customer_firstname}",

"Nachname":"${customer_lastname}",

"email":"${customer_email}"};

user

John.Doe

pass

specialPW

authMethod

basic

responseVariable

responseVar

faultTolerance

0

Beispiel 2:

Eventtype

Node Leave

Eventtype

Node Leave

Actionname

com.dooris.bpm.actionhandler.HttpRestHandler

Actionclass

com.dooris.bpm.actionhandler.HttpRestHandler

Parameter

hostName=https://yourcompanyserver.com/rest/list/${customerList};

method=Post;

postParameter={

"Company":"${customer_company}",

"First Name":"${customer_firstname}",

"Last Name":"${customer_lastname}",

"Email":"${customer_email}",};

user=John.Doe;

pass=specialPW;

authMethod=basic;

responseVariable=responseVar;

faultTolerance=0;

 

Beispieleingaben für searchByJsonPath:

 

JSON-Codebeispiel für das, was mit der get-Methode zurückgegeben wird
[ { "id": "0001", "type": "donut", "batters": { "batter": [ { "id": "1001", "type": "Regular" }, { "id": "1002", "type": "Chocolate" } ] }, "topping": [ { "id": "5001", "type": "None" }, { "id": "5002", "type": "Glazed" } ] } ]

 

  1. Wenn Sie alle Typen aus dem 'batter' erhalten und als Ergebnisvariable 'types' speichern möchten, müssen Sie als Wert verwenden:
    [{path: "[0]['batters']['batter'][*]['type']", resultVariable: "types"}]
    (Wir verwenden *, um alle Typen zu erhalten. Verwenden Sie für eine bestimmte Position die Zahl anstelle von *)
    Ergebnis: {"types":["Regular","Chocolate"]}

  2. Wenn Sie die Typen jedes "Teigs" abrufen und in verschiedenen Ergebnisvariablen speichern möchten:
    [{path: "[0]['batters']['batter'][0]['type']", resultVariable: "type1"},{path: "[0]['batters']['batter'][1]['type']", resultVariable: "type2"}]
    Ergebnis:{"type2":"Schokolade","type1":"Regulär"}

  3. Wenn Sie das gesamte Objekt basierend auf einem bestimmten Wert erhalten möchten, z. B. 'Schokolade':
    [{path: "[0]['batters']['batter'][*][?( @.type == 'Schokolade')]", resultVariable: "res"}]
    Ergebnis: {"res":[{"id":"1002","type":"Schokolade"}]}

Â