Submit Task Form

Completes a task and updates process variables using a form submit. There are two differences between this method and the complete method:

  • If the task is in state PENDING - i.e., has been delegated before, it is not completed but resolved. Otherwise it will be completed.
  • If the task has Form Field Metadata defined, the process engine will perform backend validation for any form fields which have validators defined. See the Generated Task Forms section of the User Guide for more information. Note that Form Field Metadata does not restrict which variables you can submit via this endpoint.

Method

POST /task/{id}/submit-form

Parameters

Path Parameters

Name Description
id The id of the task to submit the form for.

Request Body

A JSON object with the following properties:

Name Description
variables A JSON object containing variable key-value pairs. Each key is a variable name and each value a JSON variable value object and has the following properties:

Name Description
value The variable's value. For variables of type Object, the serialized value has to be submitted as a String value.

For variables of type File the value has to be submitted as Base64 encoded string.

type The value type of the variable.
valueInfo A JSON object containing additional, value-type-dependent properties.

For serialized variables of type Object, the following properties can be provided:

  • objectTypeName: A string representation of the object's type name.
  • serializationDataFormat: The serialization format used to store the variable.

For serialized variables of type File, the following properties can be provided:

  • filename: The name of the file. This is not the variable name but the name that will be used when downloading the file again.
  • mimetype: The MIME type of the file that is being uploaded.
  • encoding: The encoding of the file that is being uploaded.

The following property can be provided for all value types:

  • transient: Indicates whether the variable should be transient or not. See documentation for more informations.

withVariablesInReturn Indicates whether the response should contain the process variables or not. The default is false with a response code of 204. If set to true the response contains the process variables and has a response code of 200. If the task is not associated with a process instance (e.g. if it's part of a case instance) no variables will be returned.

Result

This method returns no content.

Response Codes

Code Media type Description
200 Request successful. The response contains the process variables.
204 application/json Request successful. The response contains no variables.
400 application/json The variable value or type is invalid, for example if the value could not be parsed to an Integer value or the passed variable type is not supported. See the Introduction for the error response format.
500 application/json If the task does not exist or the corresponding process instance could not be resumed successfully. See the Introduction for the error response format.

Example

Submit a task form

Request

POST /task/anId/submit-form

Request Body:

{
    "variables": {
        "aVariable": {
            "value": "aStringValue"
        },
        "anotherVariable": {
            "value": 42
        },
        "aThirdVariable": {
            "value": true
        },
        "aFileVariable": {
            "value": "TG9yZW0gaXBzdW0=",
            "type": "File",
            "valueInfo": {
                "filename": "myFile.txt"
            }
        }
    }
}

Response

Status 204. No content.

Submit a task form with variables in return

Request

POST /task/anId/submit-form

Request Body:

{
    "variables": {
        "aVariable": {
            "value": "aStringValue"
        },
        "anotherVariable": {
            "value": 42
        },
        "aThirdVariable": {
            "value": true
        }
    },
    "withVariablesInReturn": true
}

Response

Status 200.

{
    "aVariable": {"value" : "aStringValue", "type": "String",
                    "valueInfo" : {} },
    "anotherVariable": {"value" : 42, "type": "Integer",
                    "valueInfo" : {} },
    "aThirdVariable": {"value" : true, "type": "Boolean",
                    "valueInfo" : {} }
}

On this Page: