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:
|
JSON Structure Example:
|
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
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
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 codeerrorMessage
: error messageerrorData
: details of the error:exception
: exception messagestack
: stack trace
innerError
: details of the error from Reltio API:errorMessage
: Reltio API error messageerrorCode
: Reltio API error codeinnerErrorData
: Reltio API inner error data
status
: result of the operation; possible values areOK
orfailed
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
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 codeerrorMessage
: error messageerrorData
: details of the error:exception
: exception messagestack
: stack trace
innerError
: details of the error from Reltio API:errorMessage
: Reltio API error messageerrorCode
: Reltio API error codeinnerErrorData
: Reltio API inner error data
status
: result of the operation; possible values areOK
orfailed
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
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 codeerrorMessage
: error messageerrorData
: details of the error:exception
: exception messagestack
: stack trace
innerError
: details of the error from Reltio API:errorMessage
: Reltio API error messageerrorCode
: Reltio API error codeinnerErrorData
: Reltio API inner error data
status
: result of the operation; possible values areOK
orfailed
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
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 codeerrorMessage
: error messageerrorData
: details of the error:exception
: exception messagestack
: stack trace
innerError
: details of the error from Reltio API:errorMessage
: Reltio API error messageerrorCode
: Reltio API error codeinnerErrorData
: Reltio API inner error data
status
: result of the operation; possible values areOK
orfailed
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",
}