# Business Process Management (BPM)
Version: 1.0 | Release Date: 29/7/2021
# Historical Workflow
Query the user's Historical Workflows based on the incoming filtering options.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/tracking?sortBy=id%20DESC&startRow=5&fetchSize=5")
  .get()
  .addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("options", "{\"module\":\"employee\",\"keyWord\":\"ha\"}")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
The API returns JSON structured like this:
{
    "totalSize": 442,
    "size": 2,
    "values": [
        {
            "apvModule": "employee", //Workflow associated Module
            "code": "I-143543699", //Workflow Instance Code
            "wfTpltId": 161,      //Workflow Template Id
            "apvRecordCode": "HavidAA", //Workflow associated Document Code
            "apvRecordId": 1130, //Workflow associated Document Id
            "startTime": "1900-01-01 00:00:00", //Workflow start time
            "endTime": "1900-01-01 00:00:00", //Workflow end time
            "wfId": 997   //Workflow instance id
        },
        {
            "summary": "Created by :B Code: JA39 Description:Havid",
            "apvModule": "employee",
            "code": "I-153113818",
            "wfTpltId": 162,
            "apvRecordCode": "JA39",
            "apvRecordId": 1129,
            "startTime": "1900-01-01 00:00:00",
            "endTime": "1900-01-01 00:00:00",
            "wfId": 996
        }
    ]
}
# HTTP Request
GET http://[server]/jsf/rfws/bpm/wfs/tracking?sortBy=[sortBy]&startRow=[startRow]&fetchSize=[fetchSize]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| options | string(Header) | JSON String. Contains all possible filter parameters | 
| sortBy | string(Query) | Order By Field. Can be one of wfinstance(table) columns | 
| startRow | int(Query) | Start index for this fetch | 
| fetchSize | int(Query) | Fetch size | 
# Available Filters in options
| Name | Type | Description | 
|---|---|---|
| module | string | Document Module | 
| keyWord | string | Keyword Searching Coverage: 
 | 
| insState | string | Available Workflow Status: 
 | 
| wfType | int | Workflow Type Id | 
| wfTpltId | int | Workflow Template Id | 
| recodeCode | string | Document Code | 
| startFrom | string | Workflow Start Date range from | 
| startTo | string | Workflow Start Date range to | 
| endFrom | string | Workflow End Date range from | 
| endTo | string | Workflow End Date range to | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | Workflows List as JSON format | 
# Create Workflow
Submit a document and system will create a new workflow for this document.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/submit/employee?id=1124")
  .post()
  .addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
POST http://[server]/jsf/rfws/bpm/submit/[module]?id=[id]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| module | string(Path) | Document module, such as 'employee' | 
| id | int(Query) | Document id, such as 1124 | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | New created workflow id | 
| fail | Header(304) | Exists other opening workflow | 
| fail | Header(303) | Flag named "needapv" is disabled in [Approval Setup] | 
| fail | Header(313) | Cannot found available workflow template in [Approval Setup] | 
| fail | Header(314) | Founded workflow template in [Approval Setup] cannot be used now (expired or change Module) | 
# My Tasks
Query the user's todo tasks.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/task/filter?sortBy=id%20DESC&startRow=5&fetchSize=5")
  .get()
  .addHeader("authorization", "Bearer OTUwODcyNWYtNWJkMy00NGIwLWI4ZTUtZjRhYTkzNjg2NTM3")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("options", "{\"module\":\"employee\"}")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
The API returns JSON structured like this:
{
    "totalSize": 283,
    "size": 2,
    "values": [
        {
	    "atvtyId": "2", //Workflow node Id
            "apvModule": "employee", //Workflow associated Module
            "wfTpltId": 161, //Workflow Template Id
            "apvRecordCode": "HavidCC", //Workflow associated Document Code
            "atvtyName": "User Task", //Workflow node name
            "wfInstanceId": 999, //Workflow instance id
            "apvViewCode": "employee", //Restricted View
            "apvRecordId": 1132, //Workflow associated Document Id
            "isAfterDue": true, //time out or not
            "atvtyKey": "UserTask_1q2ixpn", //Workflow node key
            "insState": "starting", //Workflow status
            "createDate": "2017-06-14 14:47:09" //Workflow create time,
	    "createUid": "11", //Workflow Creator Id
	    "createUdesc": "Jacky", //Workflow Creator Description
	    "beId": "1122", //Workflow associated Business Entity
	    "recordLink": "http://[serverip]/jsf/app.faces#employee/view/module/employee/c2bc204b?id=1" //Workflow associated Document URL,
	    "apvViewCodeLimited": "" // Restricted View Code,
	    "moduleName": "Employee" // Workflow associated Module Description
        },
        {
	    "atvtyId": "3", //Workflow node Id
            "apvModule": "employee",
            "wfTpltId": 161,
            "apvRecordCode": "HavidCC",
            "atvtyName": "User Task",
            "wfInstanceId": 999,
            "apvViewCode": "employee",
            "apvRecordId": 1132,
            "atvtyKey": "UserTask_0p9w708",
            "insState": "starting",
            "createDate": "2017-06-14 14:47:09",
	    "createUid": "11", 
	    "createUdesc": "Jacky", 
	    "beId": "1122",
	    "recordLink": "http://[serverip]/jsf/app.faces#employee/view/module/employee/c2bc204b?id=1"
	    "apvViewCodeLimited": "",
	    "moduleName": "Employee"
        }
    ]
}
# HTTP Request
GET http://[server]/jsf/rfws/bpm/task/filter??sortBy=[sortBy]&startRow=[startRow]&fetchSize=[fetchSize]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| options | string(Header) | JSON String. Contains all possible filter parameters | 
| sortBy | string(Query) | Order By Field. Can be one of wfinstance(table) columns. | 
| startRow | int(Query) | Start index for this fetch | 
| fetchSize | int(Query) | Fetch size | 
# Available Filters in options
| Name | Type | Description | 
|---|---|---|
| module | string | Document Module | 
| wfType | int | Workflow Type Id | 
| wfTpltId | int | Workflow Template Id | 
| wfInstanceId | int | Workflow Id | 
| recodeCode | string | Document Code | 
| keyWord | string | Keyword Searching Coverage: 
 | 
| days | int | From the task was created, the number of days | 
| dueType | string | The task time out or not. One of 'afterDue', 'beforeDue'. Empty means 'All'. | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | Task List as JSON format | 
# Workflow Graph
Get the workflow graph link.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/graph/999")
  .get()
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
GET http://[server]/jsf/rfws/bpm/wfs/graph/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | redirect to graph link | 
# Select next node
Query the workflow template node which supports selecting next node directly.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/tplt/userEoxGateway/162")
  .get()
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
The API returns JSON structured like this:
{
    "UserTask_1txbhvu": "{\"UserTask_1igpmls\":\"To Node A\",\"EndEvent_0w1fhfw\":\"to End\",\"UserTask_17a00dk\":\"To Node B\"}"
}
# HTTP Request
GET http://[server]/jsf/rfws/bpm/tplt/userEoxGateway/[wfTpltId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfTpltId | int(Path) | Workflow Template Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | All the node keys which support directly go to next | 
# Terminate Workflow
Terminate a specific workflow.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/terminate/999")
  .put(null)
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://[server]/jsf/rfws/bpm/wfs/terminate/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Repair Workflow
Resynchronize workflow status to abnormal record.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/repair/999")
  .put(null)
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://[server]/jsf/rfws/bpm/wfs/repair/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Recalculate Workflow
Recalculate all outstanding workflow participants according to Global Setup
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/recalcpator")
  .put(null)
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://[server]/jsf/rfws/bpm/wfs/recalcpator
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Pass Action
User perform pass action to one node.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/passAtvty/1009")
  .put(null)
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "2")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/passAtvty/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyId | string(Header) | Workflow Node Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Pass Action(Select next)
User perform pass action and choose next.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/passAtvtyWithTarget/1010")
  .put(null)
  .addHeader("authorization", "Bearer NDgwYWMxZGItYjBjYS00ZmQwLTk3NzQtODY4MjMzNDFmNGI4")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "4")
  .addHeader("targetatvtykey", "UserTask_17a00dk")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/passAtvtyWithTarget/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyId | string(Header) | Workflow Node Id | 
| targetatvtykey | string(Header) | the Next Node to go | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Reject Action
User perform reject action to one node.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/rejectAtvty/1009")
  .put(null)
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "2")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/rejectAtvty/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyId | string(Header) | Workflow Node Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Workflow Timeline
Query workflow timeline.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/loadWfLog/1009")
  .get()
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
The API returns JSON structured like this:
[
    {
        "atvtyKey": "UserTask_1txbhvu",
        "atvtyName": "Node A",
        "caseCode": "I-121142627",
        "caseDesc": "",
        "info": "wf.Starting",
        "infoType": "event",
        "link": "",
        "time": 1498104928000,
        "user": {
            "id": 2,
            "code": "B",
            "desc": "Englishtest3"
        }
    },
    {
        "atvtyKey": "UserTask_016hspg",
        "atvtyName": "Node B",
        "caseCode": "I-121142627",
        "caseDesc": "",
        "info": "wf.pass",
        "infoType": "action",
        "link": "",
        "time": 1498104928000,
        "user": {
            "id": 2,
            "code": "B",
            "desc": "Englishtest3"
        }
    }
]
# HTTP Request
GET http://127.0.0.1:8080/jsf/rfws/bpm/loadWfLog/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Workflow Snapshot
Query workflow node status.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/snapshot/1009")
  .get()
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
The API returns JSON structured like this:
{
    "size": 3,
    "values": [
        {
            "atvtyId": "1",
            "atvtyName": "Node A",
            "atvtyKey": "StartEvent_1cf0uyy",
            "isEnd": true
        },
        {
            "atvtyId": "2",
            "atvtyName": "Node B",
            "atvtyKey": "UserTask_016hspg",
            "isEnd": true
        }
    ]
}
# HTTP Request
GET http://127.0.0.1:8080/jsf/rfws/bpm/wfs/snapshot/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | Workflow Node status info as JSON array | 
# Workflow Participant
Query workflow node participant (include history & todo).
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/handlerInfo/1009")
  .get()
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
The API returns JSON structured like this:
{
    "size": 2,
    "values": [
        {
            "code": "B",  //user code 
            "atvtyKey": "UserTask_15hry6g",
            "type": "done", //'done' means the user have perform some action the node(reference to info)
            "userId": 2,
            "desc": "Englishtest3",
            "info": "wf.pass",
            "logTime": "2017-06-22 14:41:16"
        },
        {
            "code": "B",
            "atvtyKey": "UserTask_1txbhvu",
            "type": "todo",//'todo' means the user is the next participant
            "userId": 2,
            "desc": "Englishtest3",
            "logTime": "2017-06-22 14:41:29"
        }
    ]
}
# HTTP Request
GET http://127.0.0.1:8080/jsf/rfws/bpm/wfs/handlerInfo/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | Workflow Node participant info as JSON array | 
# Add Comment
Add comment to whole workflow or specical node.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/addWfComment/1011")
  .post(null)
  .addHeader("authorization", "Bearer ODQxYzRiZjMtOGE5YS00OGJhLWEzM2ItZTYxNGRlZTA5ZGIw")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("comment", "this is a comment")
  .addHeader("inviteusers", "40,50,51,")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
POST http://127.0.0.1:8080/jsf/rfws/bpm/addWfComment/[wfInstanceId]?atvtyKey=[atvtyKey]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyKey | string(Query) | Workflow Node Key | 
| comment | string(Header) | Comment content | 
| inviteusers | string(Header) | Users Id list which involved in this comment | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Reverse to Creator Action
User perform reverseToStart action.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/reverseToStart/1011")
  .put(null)
  .addHeader("authorization", "Bearer NTE4NTIwMDItZGJlZC00MzE5LTgwMjEtOGYxMGEzYTc1ODBi")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "2")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/reverseToStart/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyId | string(Header) | Workflow Node Id | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Reverse to Action
User perform reverseTo action
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/reverseAtvty/1012")
  .put(null)
  .addHeader("authorization", "Bearer NzMyYjUxZTMtOTRiYi00ODk2LThkYjMtYzM2N2EwNjRjZWMx")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "4")
  .addHeader("targetatvtykey", "UserTask_016hspg")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/reverseToStart/[wfInstanceId]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyId | string(Header) | Workflow Node Id | 
| targetatvtykey | string(Header) | Workflow Node which reversed to | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Redo Action
User perform redo action.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/redoAtvty/1012/UserTask_016hspg")
  .put(null)
  .addHeader("authorization", "Bearer NzMyYjUxZTMtOTRiYi00ODk2LThkYjMtYzM2N2EwNjRjZWMx")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .addHeader("postman-token", "7b6603bd-d6a0-9970-e273-3ec38c1ac374")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/redoAtvty/[wfInstanceId]/[atvtyKey]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyKey | string(Path) | Workflow Node which want to redo | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Add Approver Action
User perform addapprover action
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/addApprover/1013/4?user=50&user=51")
  .put(null)
  .addHeader("authorization", "Bearer OGFiZmU2ZTktMzYzMS00NjIwLWJhNGYtYWU2OGQyNTZhMmNi")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/addApprover/[wfInstanceId]/[atvtyId]?user=[target]&user=[target]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyId | string(Path) | Workflow Node Id | 
| user | string(Query) | Target User | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 | 
# Change Approver Action
User perform addapprover action.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/assignApprover/1013/4?user=77")
  .put(null)
  .addHeader("authorization", "Bearer OGFiZmU2ZTktMzYzMS00NjIwLWJhNGYtYWU2OGQyNTZhMmNi")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();
Response response = client.newCall(request).execute();
# HTTP Request
PUT http://127.0.0.1:8080/jsf/rfws/bpm/assignApprover/[wfInstanceId]/[atvtyId]?user=[target]
# Parameters
| Name | Type | Description | 
|---|---|---|
| authorization | string(Header) | Required. Access Token obtained via Oauth2 | 
| client_id | string(Header) | Required. When registered in [OAuth Applications], generated by the M18 | 
| wfInstanceId | int(Path) | Workflow Instance Id | 
| atvtyId | string(Path) | Workflow Node Id | 
| user | string(Query) | Target User | 
# Result
| Type | Location(error_id) | Description | 
|---|---|---|
| success | Body | HTTP 200 |