# 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:
  • Workflow Description
  • Workflow Summary
insState string Available Workflow Status:
  • starting
  • ended
  • terminate
  • rejected
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:
  • Workflow Description
  • Workflow Summary
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