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-Type Yes 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.

Example 1

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

Example 2

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

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-Type Yes Should be "Content-Type: application/json".
EnvironmentURL Yes Reltio Environment URL.
Body processType Yes Process definition type.
objectURIs Yes List of Reltio object URIs (entity/relation)
processDefinitionId No Process definition ID.
assignee No Assignee of the active task.
createdBy No Initiator of the process instance.
startedAfter No Time in milliseconds.
startedBefore No Time in milliseconds.
state No Validation 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-Type Yes Should be "Content-Type: application/json".
EnvironmentURL Yes Reltio Environment URL.
Parameters background No Background false/true.
Body processType Yes Process definition type.
objectURIs Yes List of Reltio object URIs (entity/relation).
processDefinitionId No Process definition ID.
assignee No Assignee of the active task.
createdBy No Initiator of the process instance.
startedAfter No Time in milliseconds.
startedBefore No Time in milliseconds.
state No Validation 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-Type Yes Should be "Content-Type: application/json".
EnvironmentURL Yes Reltio Environment URL.
Body filter Yes Filter of the tasks.
assignee Yes Assignee of the active task.
processInstanceID No Process instance ID.
processType No Process definition type.
suspended No Boolean state of the tasks; possible true or false.
createdBy No Initiator of the process instance.
priorityClass No Priority class of the tasks.
taskType No Type of tasks.
createdAfter No Time in milliseconds.
createdBefore No Time in milliseconds.
state No Validation state of the process instance (default value=all), which will return tasks with any state.
objectURIs No List of Reltio object URIs (entity/relation). Filtering by AND-condition.
changes Yes List of changes.
objectURIs No List of Reltio object URIs (entity/relation). Filtering by AND-condition.
assignee No Assignee of the active task.
dueDate No Time in milliseconds.
processInstanceComment No Comment in string format.
priority No Priority.
exclude No List 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-Type Yes Should be "Content-Type: application/json".
EnvironmentURL Yes Reltio Environment URL.
Body assignee Yes Assignee of the active task.
processInstanceID No Process instance ID.
processType No Process definition type.
suspended No Boolean state of the tasks; possible true or false.
createdBy No Initiator of the process instance.
priorityClass No Priority class of the tasks.
taskType No Type of tasks.
createdAfter No Time in milliseconds.
createdBefore No Time in milliseconds.
state No Validation state of the process instance (default value=all), which will return tasks with any state.
objectURIs No List 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",
}