Restart Process Instance Async

Restarts process instances that were canceled or terminated asynchronously. Can also restart completed process instances. It will create a new instance using the original instance information. To execute the restart synchronously, use the Restart Process Instance method.

For more information about the difference between synchronous and asynchronous execution, please refer to the related section of the user guide.

Method

POST /process-definition/{id}/restart-async

Parameters

Path Parameters

Name Description
id The id of the process definition of the process instances to restart.

Request Body

A JSON object with the following properties:

Name Description
processInstanceIds A list of process instance ids to restart.
historicProcessInstanceQuery A historic process instance query like the request body described by POST /history/process-instance .
skipCustomListeners Skip execution listener invocation for activities that are started as part of this request.
skipIoMappings Skip execution of input/output variable mappings for activities that are started as part of this request.
initialVariables Set the initial set of variables during restart. By default, the last set of variables is used.
withoutBusinessKey Do not take over the business key of the historic process instance.
instructions A JSON array of instructions. The instructions are executed in the order they are in. An instruction may have the following properties:
Name Description
type Mandatory. One of the following values: startBeforeActivity, startAfterActivity, startTransition. A startBeforeActivity instruction requests to enter a given activity. A startAfterActivity instruction requests to execute the single outgoing sequence flow of a given activity. A startTransition instruction requests to execute a specific sequence flow.
activityId Can be used with instructions of types startBeforeActivity and startAfterActivity. Specifies the activity the instruction targets.
transitionId Can be used with instructions of types startTransition. Specifies the sequence flow to start.

Result

A JSON object corresponding to the Batch interface in the engine. Its properties are as follows:

Name Value Description
id String The id of the batch.
type String The type of the batch. See the User Guide for more information about batch types.
totalJobs Number The total jobs of a batch is the number of batch execution jobs required to complete the batch.
jobsCreated Number The number of batch execution jobs already created by the seed job.
batchJobsPerSeed Number The number of batch execution jobs created per seed job invocation. The batch seed job is invoked until it has created all batch execution jobs required by the batch (see totalJobs property).
invocationsPerBatchJob Number Every batch execution job invokes the command executed by the batch invocationsPerBatchJob times. E.g., for a process instance migration batch this specifies the number of process instances which are migrated per batch execution job.
seedJobDefinitionId String The job definition id for the seed jobs of this batch.
monitorJobDefinitionId String The job definition id for the monitor jobs of this batch.
batchJobDefinitionId String The job definition id for the batch execution jobs of this batch.
suspended Boolean Indicates whether this batch is suspended or not.
tenantId String The tenant id of the batch.
createUserId String The id of the user that created the batch.

Response codes

Code Media type Description
200 application/json Request successful.
400 application/json In case following parameters are missing: instructions, activityId or transitionId, processInstanceIds or historicProcessInstanceQuery, an exception of type InvalidRequestException is returned. See the Introduction for the error response format.

Example

Restarting one or more Process Instances with known processInstanceIds:

Request

POST /process-definition/aProcessDefinitionId/restart-async

Request Body:

{
  "instructions": [
    {
      "type": "startAfterActivity",
      "activityId": "aUserTask"
    }
  ],
  "processInstanceIds": [
    "aProcessInstance",
    "anotherProcessInstance"
  ],
  "initialVariables" : true,
  "skipCustomListeners" : true,
  "withoutBusinessKey" : true
}

Response

Status 200.

{
  "id": "aBatchId",
  "type": "aBatchType",
  "totalJobs": 10,
  "batchJobsPerSeed": 100,
  "invocationsPerBatchJob": 1,
  "seedJobDefinitionId": "aSeedJobDefinitionId",
  "monitorJobDefinitionId": "aMonitorJobDefinitionId",
  "batchJobDefinitionId": "aBatchJobDefinitionId",
  "tenantId": "aTenantId"
}

Restarting one or more Process Instances using a historicProcessInstanceQuery:

Request

POST /process-definition/aProcessDefinitionId/restart-async

Request Body:

{
  "instructions": [
    {
      "type": "startAfterActivity",
      "activityId": "aUserTask"
    }
  ],
  "initialVariables" : true,
  "skipCustomListeners" : true,
  "withoutBusinessKey" : true,
  "historicProcessInstanceQuery": {
    "processDefinitionId": "aProcessDefinitionId",
    "processInstanceBusinessKey" : "businessKey"
  }
}

Response

Status 200.

{
  "id": "aBatchId",
  "type": "aBatchType",
  "totalJobs": 10,
  "batchJobsPerSeed": 100,
  "invocationsPerBatchJob": 1,
  "seedJobDefinitionId": "aSeedJobDefinitionId",
  "monitorJobDefinitionId": "aMonitorJobDefinitionId",
  "batchJobDefinitionId": "aBatchJobDefinitionId",
  "tenantId": "aTenantId"
}

On this Page: