Unify and manage your data

Business Process API

This section describes Platform API for business process tools integration.

Core platform configuration has no support of business process or workflow definition inside. The main purpose of this API is to store data of the business process created outside of the platform and handle association between business process and objects stored by Reltio Platform.

Structure

Business process data record stands for description of some business process created outside platform, but associated with objects or resources inside platform.

Property Required Description Type
objectUris true Collection of objects participating in workflow. It is object level participation-entities, relationships. URI array
URI true URI of the business process data record. URI
resourceUris false Collection of additional resources participating in workflow. If resources of attributes or crosswalks layer is participating in workflow, they should be listed in this field. URI array
businessProcessId false Business process unique identifier. Information will not be used by API itself, for business process engine usage and search purposes. It has the same meaning as shortUri in fact, each business process data record has a URI - businessProcesses/businessProcessId. String
tasks false Collection of tasks associated with business process. Each task has 3 fields:
  • taskId- unique identifier of the task
  • taskName- name of the task
  • taskAssignee- list of users to which the task is assigned
JSON Structure Example:
{
 "taskId" : "taskId",
 "taskName" : "Review",
 "taskAssignee" : [
 "user1",
 "user2"
 ]
}
businessProcessEngine true Business process engine description. String
externalInfo false Additional business process record info, optional to use. JSON structure with free format
businessProcessName false Name of the business process. String
businessProcessDueDate false Due date of the business process. Milliseconds (long)

Example

{
 "objectUris" : [ "entities/AAA", "entities/BBB" ],
 "resourceUris" : [ "entities/AAA/attributes/FirstName/FFFF" ],
 "URI" : "businessProcesses/firstBusinessProcess",
 "tasks" : [
 {
 "taskId" : "task-task",
 "taskName" : "Just do something with objects",
 "taskAssignee" : [ "user1", "user2" ]
 },
 {
 "taskId" : "task-task2",
 "taskName" : "Just do something other with objects",
 "taskAssignee" : [ "user1", "user2" ]
 }
 ],
 "businessProcessEngine" : "Amazon, very smart engine",
 "externalInfo" : {
 "customProperty1" : "custom property",
 "anotherCustomProperty" : "very important and smart property",
 "nestedCustomProperty" : {
 "integerValue" : 1,
 "booleanValue" : false
 }
 },
 "businessProcessName": "ABC",
 "businessProcessDueDate": 644896288
}

Supported Operations

Create/Update Business Process Data Record

Same REST API endpoint should be used to create or update business process data record inside Reltio Platform or to associate objects and resources with it.

Request

POST {Tenant URL}/businessProcesses
Table 1. Parameters
Parameter Name Required Details
Headers Authorization Yes Information about authentication access token in format "Bearer <accessToken>" (see details in Authentication API ).
Content-TypeYes Should be "Content-Type: application/json".
Body Yes JSON Array with objects representing business object records to be created or updated.

Example Request

POST testTenant/businessProcesses[
   {
      "objectUris":[
         "entities/AAA",
         "entities/BBB"
      ],
      "resourceUris":[
         "entities/AAA/attributes/FirstName/FFFF"
      ],
      "URI":"businessProcesses/firstBusinessProcess",
      "tasks":[
         {
            "taskId":"task-task",
            "taskName":"Just do something with objects",
            "taskAssignee":[
               "user1",
               "user2"
            ]
         },
         {
            "taskId":"task-task2",
            "taskName":"Just do something other with objects",
            "taskAssignee":[
               "user1",
               "user2"
            ]
         }
      ],
      "businessProcessEngine":"Amazon, wery smart engine",
      "externalInfo":{
         "customProperty1":"custom property",
         "anotherCustomProperty":"very important and smart property",
         "nestedCustomProperty":{
            "integerValue":1,
            "booleanValue":false
         }
      },
      "businessProcessName":"ABC",
      "businessProcessDueDate":644896288
   }
]

Response

POST testTenant/businessProcesses[
   {
      "index":0,
      "object":{
         "objectURIs":[
            "entities/00005KL"
         ],
         "businessProcessId":"firstBusinessProcess",
         "tasks":[
            {
               "taskId":"task-task",
               "taskName":"Review entity",
               "taskAssignee":[
                  "user1",
                  "user2"
               ]
            },
            {
               "taskId":"task-task-sec",
               "taskName":"Additional entity review",
               "taskAssignee":[
                  "user1",
                  "user2"
               ]
            }
         ],
         "businessProcessEngine":"Best workflow engine!",
         "externalInfo":{
            "customProperty1":"custom property",
            "anotherCustomProperty":"very important and smart property",
            "nestedCustomProperty":{
               "integerValue":1,
               "booleanValue":false
            }
         },
         "businessProcessName":"ABC",
         "businessProcessDueDate":644896288
      },
      "successful":true
   }
]

Get Business Process Data Record By Business Process Identifier

(URI)

Request

GET {TenantURL}/businessProcesses/{businessProcessIdentifier}

Parameters

Parameter Name Required Details
Headers Authorization Yes Information about authentication access token in format "Bearer <accessToken> " (see details in Authentication API ).
Content-Type Yes Should be "Content-Type: application/json".

Example

Request

GET testTenant/businessProcesses/firstBusinessProcess

Response

GET testTenant/businessProcesses{
   "objectURIs":[
      "entities/00005KL",
      "entities/00009ab"
   ],
   "businessProcessId":"firstBusinessProcess",
   "tasks":[
      {
         "taskId":"task-task",
         "taskName":"Review entity",
         "taskAssignee":[
            "user1",
            "user2"
         ]
      },
      {
         "taskId":"task-task-sec",
         "taskName":"Additional entity review",
         "taskAssignee":[
            "user1",
            "user2"
         ]
      },
      {
         "taskId":"task-task-third",
         "taskName":"Additional entity review",
         "taskAssignee":[
            "user1",
            "user2"
         ]
      }
   ],
   "businessProcessEngine":"Best workflow engine!",
   "externalInfo":{
      "customProperty1":"custom property",
      "anotherCustomProperty":"very important and smart property",
      "nestedCustomProperty":{
         "integerValue":1,
         "booleanValue":false
      }
   }
}

View/Search Business Process Data Records Inside Objects

API user can view business process data records inside every object structure associated with a corresponding business process. Also API user is able to search by all properties of the business process. Using entities API, for example, user can retrieve entities content having associated business process records inside. To include business process records information inside the entity JSON, user should add the businessProcessData option to the selected parameter.

Business process data remains in the entity even after the workflow is completed. This information is retained until the workflow process and its associated tasks are removed. If you want to search for entities with active workflow processes, use the additional filter exists(businessProcessData.tasks.taskName).

Example 1: Retrieve business process data for a specific entity

GET testTenant/entities/AAA?select=URI,type,attributes,crosswalks,businessProcessData

Example 2: Search for entities by task ID and attribute

GET testTenant/entities?filter=equals(businessProcessData.tasks.taskId,'task-task') and equals(attributes, 'Evil')&select=URI,type,businessProcessData

Example 3: Search for entities with active workflow processes

{
  "filter": "exists(businessProcessData.businessProcessName) and exists(businessProcessData.tasks.taskName)",
  "select": "uri,label,businessProcessData",
  "max": 25,
  "offset": 0
}

Sync Business Process Data

Request

POST /{tenantId}/jobs/syncBusinessProcessData
Table 2. Parameters
Parameter Name Required Details
Headers Authorization Yes Information about authentication access token in format "Bearer <accessToken>" (see details in Authentication API ).
Content-TypeYes Should be "Content-Type: application/json".
EnvironmentURLYesReltio Environment URL.
Body processTypeYes Process definition type.
objectURIsYesList of Reltio object URIs (entity/relation)
processDefinitionIdNoProcess definition ID.
assigneeNoAssignee of the active task.
createdByNoInitiator of the process instance.
startedAfterNoTime in milliseconds.
startedBeforeNoTime in milliseconds.
stateNoValidation state of the process instance, which will return tasks of any state; default value=all.

Response Structure

  • error: returned if an error is encountered, contains details of the issue:
    • errorCode: 5-digit error code
    • errorMessage: error message
    • errorData: details of the error:
      • exception: exception message
      • stack: stack trace
    • innerError: details of the error from Reltio API:
      • errorMessage: Reltio API error message
      • errorCode: Reltio API error code
      • innerErrorData: Reltio API inner error data
  • status: result of the operation; possible values are OK or failed

Sample Request JSON

{
   "processType":"dataChangeRequestReview",
   "objectURIs":[
      "entities/E8y5hJv"
   ],
   "processDefinitionId":"recommendForDelete:118:8842195",
   "assignee":"adminqa",
   "createdBy":"user3mosk",
   "startedAfter":1499680875124,
   "startedBefore":1500285675127,
   "state":"valid"
}

Example

GET {workflowURL}/{tenantId}/jobs

Sample Response JSON

{
   "status":"OK",
   "backgroundTaskId":"2b1ac782-1459-45e0-979a-8f1fc65e50fd"
}

Terminate Process Instances

Request

 POST /{tenantId}/jobs/terminateProcessInstances?background=true
Table 3. Parameters
Parameter Name Required Details
Headers Authorization Yes Information about authentication access token in format "Bearer <accessToken>" (see details in Authentication API ).
Content-TypeYes Should be "Content-Type: application/json".
EnvironmentURLYesReltio Environment URL.
ParametersbackgroundNoBackground false/true.
Body processTypeYes Process definition type.
objectURIsYesList of Reltio object URIs (entity/relation).
processDefinitionIdNoProcess definition ID.
assigneeNoAssignee of the active task.
createdByNoInitiator of the process instance.
startedAfterNoTime in milliseconds.
startedBeforeNoTime in milliseconds.
stateNoValidation state of the process instance, which will return tasks of any state; default value=all.

Response Structure

  • error: returned if an error is encountered, contains details of the issue:
    • errorCode: 5-digit error code
    • errorMessage: error message
    • errorData: details of the error:
      • exception: exception message
      • stack: stack trace
    • innerError: details of the error from Reltio API:
      • errorMessage: Reltio API error message
      • errorCode: Reltio API error code
      • innerErrorData: Reltio API inner error data
  • status: result of the operation; possible values are OK or failed

Sample Request JSON

{
   "processType":"dataChangeRequestReview",
   "objectURIs":[
      "entities/E8y5hJv"
   ],
   "processDefinitionId":"recommendForDelete:118:8842195",
   "assignee":"adminqa",
   "createdBy":"user3mosk",
   "startedAfter":1499680875124,
   "startedBefore":1500285675127,
   "state":"valid"
}

Example

GET {workflowURL}/{tenantId}/jobs

Sample Response JSON

{
   "status":"OK",
   "total":1,
   "data":[
      {
         "processInstanceId":"8900966"
      }
   ]
}

Update Multiple Tasks by Filter

Request

POST /{tenantId}/jobs/updateTasks
Table 4. Parameters
Parameter Name Required Details
Headers Authorization Yes Information about authentication access token in format "Bearer <accessToken>" (see details in Authentication API ).
Content-TypeYes Should be "Content-Type: application/json".
EnvironmentURLYesReltio Environment URL.
Body filterYes Filter of the tasks.
assigneeYesAssignee of the active task.
processInstanceIDNoProcess instance ID.
processTypeNoProcess definition type.
suspendedNoBoolean state of the tasks; possible true or false.
createdByNoInitiator of the process instance.
priorityClassNoPriority class of the tasks.
taskTypeNoType of tasks.
createdAfterNoTime in milliseconds.
createdBeforeNoTime in milliseconds.
stateNoValidation state of the process instance (default value=all), which will return tasks with any state.
objectURIsNoList of Reltio object URIs (entity/relation). Filtering by AND-condition.
changesYesList of changes.
objectURIsNoList of Reltio object URIs (entity/relation). Filtering by AND-condition.
assigneeNoAssignee of the active task.
dueDateNoTime in milliseconds.
processInstanceCommentNoComment in string format.
priorityNoPriority.
excludeNoList of tasks in string format.

Response Structure

  • error: returned if an error is encountered, contains details of the issue:
    • errorCode: 5-digit error code
    • errorMessage: error message
    • errorData: details of the error:
      • exception: exception message
      • stack: stack trace
    • innerError: details of the error from Reltio API:
      • errorMessage: Reltio API error message
      • errorCode: Reltio API error code
      • innerErrorData: Reltio API inner error data
  • status: result of the operation; possible values are OK or failed

Sample Request JSON

{
   "filter":{
      "assignee":"string",
      "processInstanceId":"string",
      "processType":"string",
      "suspended":true,
      "createdBy":"string",
      "priorityClass":"Urgent",
      "taskType":"string",
      "createdAfter":0,
      "createdBefore":0,
      "state":"valid",
      "objectURIs":[
         "string"
      ]
   },
   "changes":{
      "objectURIs":[
         "string"
      ],
      "assignee":"string",
      "dueDate":0,
      "processInstanceComment":"string",
      "priority":0
   },
   "exclude":[
      "string"
   ]
}

Example

GET {workflowURL}/{tenantId}/jobs

Sample Response JSON

{
   "status":"OK",
   "backgroundTaskId":"2b1ac782-1459-45e0-979a-8f1fc65e50fd"
}

Validate Task From Tasks Request

Request

POST /{tenantId}/jobs/validateTasks
Table 5. Parameters
Parameter Name Required Details
Headers Authorization Yes Information about authentication access token in format "Bearer <accessToken>" (see details in Authentication API ).
Content-TypeYes Should be "Content-Type: application/json".
EnvironmentURLYesReltio Environment URL.
BodyassigneeYesAssignee of the active task.
processInstanceIDNoProcess instance ID.
processTypeNoProcess definition type.
suspendedNoBoolean state of the tasks; possible true or false.
createdByNoInitiator of the process instance.
priorityClassNoPriority class of the tasks.
taskTypeNoType of tasks.
createdAfterNoTime in milliseconds.
createdBeforeNoTime in milliseconds.
stateNoValidation state of the process instance (default value=all), which will return tasks with any state.
objectURIsNoList of Reltio object URIs (entity/relation). Filtering by AND-condition.

Response Structure

  • error: returned if an error is encountered, contains details of the issue:
    • errorCode: 5-digit error code
    • errorMessage: error message
    • errorData: details of the error:
      • exception: exception message
      • stack: stack trace
    • innerError: details of the error from Reltio API:
      • errorMessage: Reltio API error message
      • errorCode: Reltio API error code
      • innerErrorData: Reltio API inner error data
  • status: result of the operation; possible values are OK or failed

Sample Request JSON

{
   "assignee":"string",
   "processInstanceId":"string",
   "processType":"string",
   "offset":0,
   "max":0,
   "suspended":true,
   "createdBy":"string",
   "priorityClass":"Urgent",
   "orderBy":"createTime",
   "ascending":true,
   "taskType":"string",
   "createdAfter":0,
   "createdBefore":0,
   "state":"valid",
   "objectURIs":[
      "string"
   ]
}

Example

GET {workflowURL}/{tenantId}/jobs

Sample Response JSON

{
  "status": "OK",
}