Start Process Instance

Start a new process instance.

Request Format

POST https://{apigw-address}/enos-bpm-service/v2.0/work/process-instances

Request Parameters (Header)

Name

Location

Mandatory/Optional

Data Type

Description

Authorization

Header

Mandatory

String

The access token, which is represented by the bearer token. It can be obtained by invoking the Log In or Refresh Access Token API.

Request Parameters (Body)

Name

Mandatory/Optional

Data Type

Description

processDefinitionId

Mandatory

String

The process definition ID.

name

Optional

String

The process name.

formId

Optional

String

The ID of the submitted form.

values

Mandatory

Map (String for key, Object for value)

The data in the submitted form, where the key is the form variable name, and the value is the submitted form value.

outcome

Optional

String

The form result string.

Response Parameters

Name

Data Type

Description

data

Data Struct

The details of the process instance.

Data Struct

Name

Data Type

Description

id

String

The process instance ID.

name

String

The process name.

businessKey

String

The key of the process instance.

processDefinitionId

String

The process definition ID.

processDefinitionName

String

The process definition name.

processDefinitionDescription

String

The process definition description.

processDefinitionKey

String

The process definition key.

processDefinitionCategory

String

The process definition type.

processDefinitionVersion

Integer

The process definition version number.

processDefinitionDeploymentId

String

The deployment resource ID corresponding to the process definition.

graphicalNotationDefined

Boolean

Whether to define the process icon.

startFormDefined

Boolean

Whether to define the process start form.

tenantId

String

The organization ID.

createdTime

Timestamp

The creation time of the process instance.

completedTime

Timestamp

The end time of the process instance.

terminable

Boolean

Whether the current process can be terminated by the current user.

terminatedTime

Timestamp

The termination time of the process instance.

terminateReason

String

The reason for terminating the process instance.

startedBy

UserRepresentation Struct

Information about the process starter.

terminatedBy

UserRepresentation Struct

Information about the process terminator.

assignee

UserRepresentation Struct

Information about the current task assignee.

taskName

String

The name of current task.

url

String

The URL of the process details in the BPM application.

UserRepresentation Struct

Name

Data Type

Description

id

String

The user ID.

firstName

String

The user’s first name.

lastName

String

The user’s last name.

email

String

The user’s email.

fullName

String

The user’s full name.

tenantId

String

The organization ID.

groups

UserRepresentation Struct Array

The user group.

privileges

String array

The user permissions.

GroupRepresentation Struct

Name

Data Type

Description

id

String

The user group ID.

name

String

The user group name.

type

String

The user group type.

Error Codes

Code

Description

33400

The process definition ID is empty.

33403

The user does not have the permission to create this process instance.

33500

The required fields are empty.

Samples

Request Sample

url: https://{apigw-address}/enos-bpm-service/v2.0/work/process-instances

method: POST

headers: {"Authorization":"Bearer {your_access_token}"}

requestBody:
{
  "processDefinitionId": "your_process_definition_id",
  "name": "your_process_definition_name",
  "formId": "task_form_id",
  "outcome": "form_outcome",
  "values": {
    "field1": "value1",
    "field2": "value2"
  }
}

Return Sample

{
  "code": 0,
  "msg": "",
  "data": {
    "id": "43560586-e629-11ea-b8f9-02420a05d432",
    "name": "c10sProcessTerminationTest",
    "businessKey": "a43551b25e62911eab8f902420a05d432",
    "processDefinitionId": "c9389796-e396-11ea-befd-92ab641570c6",
    "tenantId": "o15874765326651",
    "started": null,
    "ended": null,
    "startedBy": {
      "id": "u15916978791551",
      "firstName": null,
      "lastName": null,
      "email": "john.smith@envision-digital.com",
      "fullName": "john.smith",
      "tenantId": "o15874765326651",
      "groups": [],
      "privileges": []
    },
    "processDefinitionName": "c10sProcessTerminationTest",
    "processDefinitionDescription": null,
    "processDefinitionKey": "ab448ac59d7b711eab60886111ce5630f",
    "processDefinitionCategory": "http://flowable.org/test",
    "processDefinitionVersion": 4,
    "processDefinitionDeploymentId": "c8d82813-e396-11ea-befd-92ab641570c6",
    "graphicalNotationDefined": true,
    "startFormDefined": false,
    "assignee": null,
    "taskName": null,
    "url": null,
    "terminable": null,
    "terminatedBy": null,
    "terminateReason": null,
    "variables": [],
    "processInstanceId": "43560586-e629-11ea-b8f9-02420a05d432",
    "completedTime": null,
    "terminatedTime": null,
    "processName": "c10sProcessTerminationTest",
    "createdTime": null,
    "processStatus": "inProgress"
  }
}

Java SDK Sample

public class BpmSdkTest{
    @Test
    public void startProcessInstanceTest() {
        String bearerToken = "your_bearer_token";
        CreateProcessInstanceRepresentation createProcessInstanceRepresentation = new CreateProcessInstanceRepresentation();
        createProcessInstanceRepresentation.setName("your_process_definition_name");
        createProcessInstanceRepresentation.setProcessDefinitionId("your_process_definition_id");
        createProcessInstanceRepresentation.setFormId("form_id");
        createProcessInstanceRepresentation.setOutcome("the_outcome_of_form");
        Map<String, Object> values = new HashMap<>();
        values.put("field1", "value1");
        values.put("field2", "value2");
        createProcessInstanceRepresentation.setValues(values);
        ProcessInstanceStartRequest request = new ProcessInstanceStartRequest(createProcessInstanceRepresentation,
                bearerToken);
        ProcessInstanceStartResponse response = Poseidon.config(PConfig.init().appKey("your_access_key")
                                                        .appSecret("your_secret_key").debug()).url("https://{apigw-address}")
                                                        .getResponse(request, ProcessInstanceStartResponse.class);
        assertNotNull("response cannot be null", response);
    }
}