Handle BPMN Error
curl --request POST \
--url http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"workerId": "aWorker",
"errorCode": "bpmn-error",
"errorMessage": "anErrorMessage",
"variables": {
"aVariable": {
"value": "aStringValue",
"type": "String"
},
"anotherVariable": {
"value": true,
"type": "Boolean"
}
}
}
'import requests
url = "http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError"
payload = {
"workerId": "aWorker",
"errorCode": "bpmn-error",
"errorMessage": "anErrorMessage",
"variables": {
"aVariable": {
"value": "aStringValue",
"type": "String"
},
"anotherVariable": {
"value": True,
"type": "Boolean"
}
}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workerId: 'aWorker',
errorCode: 'bpmn-error',
errorMessage: 'anErrorMessage',
variables: {
aVariable: {value: 'aStringValue', type: 'String'},
anotherVariable: {value: true, type: 'Boolean'}
}
})
};
fetch('http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workerId' => 'aWorker',
'errorCode' => 'bpmn-error',
'errorMessage' => 'anErrorMessage',
'variables' => [
'aVariable' => [
'value' => 'aStringValue',
'type' => 'String'
],
'anotherVariable' => [
'value' => true,
'type' => 'Boolean'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError"
payload := strings.NewReader("{\n \"workerId\": \"aWorker\",\n \"errorCode\": \"bpmn-error\",\n \"errorMessage\": \"anErrorMessage\",\n \"variables\": {\n \"aVariable\": {\n \"value\": \"aStringValue\",\n \"type\": \"String\"\n },\n \"anotherVariable\": {\n \"value\": true,\n \"type\": \"Boolean\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"workerId\": \"aWorker\",\n \"errorCode\": \"bpmn-error\",\n \"errorMessage\": \"anErrorMessage\",\n \"variables\": {\n \"aVariable\": {\n \"value\": \"aStringValue\",\n \"type\": \"String\"\n },\n \"anotherVariable\": {\n \"value\": true,\n \"type\": \"Boolean\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workerId\": \"aWorker\",\n \"errorCode\": \"bpmn-error\",\n \"errorMessage\": \"anErrorMessage\",\n \"variables\": {\n \"aVariable\": {\n \"value\": \"aStringValue\",\n \"type\": \"String\"\n },\n \"anotherVariable\": {\n \"value\": true,\n \"type\": \"Boolean\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"type": "<string>",
"message": "<string>",
"code": 123
}{
"type": "<string>",
"message": "<string>",
"code": 123
}{
"type": "<string>",
"message": "<string>",
"code": 123
}外部任务
处理BPMN错误
Reports a business error in the context of a running external task by id. The error code must be specified to identify the BPMN error handler.
POST
/
external-task
/
{id}
/
bpmnError
Handle BPMN Error
curl --request POST \
--url http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"workerId": "aWorker",
"errorCode": "bpmn-error",
"errorMessage": "anErrorMessage",
"variables": {
"aVariable": {
"value": "aStringValue",
"type": "String"
},
"anotherVariable": {
"value": true,
"type": "Boolean"
}
}
}
'import requests
url = "http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError"
payload = {
"workerId": "aWorker",
"errorCode": "bpmn-error",
"errorMessage": "anErrorMessage",
"variables": {
"aVariable": {
"value": "aStringValue",
"type": "String"
},
"anotherVariable": {
"value": True,
"type": "Boolean"
}
}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workerId: 'aWorker',
errorCode: 'bpmn-error',
errorMessage: 'anErrorMessage',
variables: {
aVariable: {value: 'aStringValue', type: 'String'},
anotherVariable: {value: true, type: 'Boolean'}
}
})
};
fetch('http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workerId' => 'aWorker',
'errorCode' => 'bpmn-error',
'errorMessage' => 'anErrorMessage',
'variables' => [
'aVariable' => [
'value' => 'aStringValue',
'type' => 'String'
],
'anotherVariable' => [
'value' => true,
'type' => 'Boolean'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError"
payload := strings.NewReader("{\n \"workerId\": \"aWorker\",\n \"errorCode\": \"bpmn-error\",\n \"errorMessage\": \"anErrorMessage\",\n \"variables\": {\n \"aVariable\": {\n \"value\": \"aStringValue\",\n \"type\": \"String\"\n },\n \"anotherVariable\": {\n \"value\": true,\n \"type\": \"Boolean\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"workerId\": \"aWorker\",\n \"errorCode\": \"bpmn-error\",\n \"errorMessage\": \"anErrorMessage\",\n \"variables\": {\n \"aVariable\": {\n \"value\": \"aStringValue\",\n \"type\": \"String\"\n },\n \"anotherVariable\": {\n \"value\": true,\n \"type\": \"Boolean\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://{host}:{port}/{contextPath}/external-task/{id}/bpmnError")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workerId\": \"aWorker\",\n \"errorCode\": \"bpmn-error\",\n \"errorMessage\": \"anErrorMessage\",\n \"variables\": {\n \"aVariable\": {\n \"value\": \"aStringValue\",\n \"type\": \"String\"\n },\n \"anotherVariable\": {\n \"value\": true,\n \"type\": \"Boolean\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"type": "<string>",
"message": "<string>",
"code": 123
}{
"type": "<string>",
"message": "<string>",
"code": 123
}{
"type": "<string>",
"message": "<string>",
"code": 123
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Path Parameters
The id of the external task in which context a BPMN error is reported.
Body
application/json
The id of the worker that reports the failure. Must match the id of the worker who has most recently locked the task.
An error code that indicates the predefined error. It is used to identify the BPMN error handler.
An error message that describes the error.
A JSON object containing variable key-value pairs.
Show child attributes
Show child attributes
Response
Request successful.
⌘I