文章目录
基于WS或Action工作流二次开发
工作流对外提供了一套完善的WEB服务和Action供工作流二次开发。其中包括流程的启动,提交,撤回,重启等。还包括开发客户化审批页面所需的所有接口,通过调用WEB服务或Action可以很容易实现驳回,退回,征询,委派等。如果二次开发与平台2.0同工程建议使用Action(非Extjs4.1开发),与平台2.0不同工程使用WEB服务。另外为了提高系统安全性,工作流WEB服务的所有方法最后两个参数都是固定的loginName 和password。这两个参数对应提供WEB服务的平台登录用户名和密码,只有通过用户的校验,才可以访问相关的方法,否则会返回错误提示。
工作流WEB服务 URL:http://host:port/contextpath/services/workflowWS?wsdl
工作流Action URL: http://host:port/contextpath/workflowUtilAction.do
1 启动流程
1.1 根据流程编码启动流程
1.1.1 基于WEB Service实现
方法:createInstanceByProcessCode
参数:processCode:流程编码
loginName:登录用户名(要与平台2.0的用户名相一致)
password :登录用户的密码
返回值:返回XML串
创建流程实例成功,返回值中有流程实例编码
<result><flag>0</flag><instanceCode>流程实例编码</instanceCode></result>
创建流程失败返回值中msg为错误提示
<result><flag>1</flag><msg>错误提示</msg></result>
1.1.2 基于Action实现
URL:/workflowUtilAction.do?method=createInstanceByProcessCode
参数:processCode 流程编码
返回值:Json串
创建流程实例成功返回{flag:0,instanceCode:流程实例编码}
创建流程实例失败返回{flag:1,msg:错误提示信息}
1.2 根据业务实体编码创建流程实例
首先根据业务实体编码和传入的实体属性值,计算符合条件的流程,如果由只有一个符合条件的流程,则直接返回流程ID。如果有多个流程满足条件则返回待选流程列表,开发选择流程的界面。然后通过方法createInstanceByProcessId根据流程的ID创建流程实例。
1.2.1 基于WEB Service实现
根据业务实体编码获取流程
方法:getProcessIdByEntityCode
参数:entityCode:业务实体编码
entityAttJson:业务实体属性值对Json串。格式{attr1Code:attr1Val,attr2Code:attr2Val}
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
当只有一个符合条件流程时返回flag为0,并将processId返回
<result><flag>0</flag><processId></processId></result>
当计算符合条件的流程出错时flag返回1,msg返回错误提示
<result><flag>1</flag><msg></msg></result>
当计算符合条件流程返回多个是,flag返回2,并在再data中返回流程列表
<result>
<flag>2</flag>
<data>
<row>
<processId></processId>
<processCode></processCode>
<processName></processName>
</row>
<row>
<processId></processId>
<processCode></processCode>
<processName></processName>
</row>
</data>
</result>
根据方法getProcessIdByEntityCode获取流程Id,如果多个流程返回开发一个界面供用户选择所要要提交的流程。然后根据流程Id创建流程实例。
方法:createInstanceByProcessId
参数:processId流程Id
loginName:登录用户名(要与平台2.0的用户名相一致)
password :登录用户的密码
返回值:返回XML串
创建流程实例成功,返回值中有流程实例编码
<result><flag>0</flag><instanceCode>流程实例编码</instanceCode></result>
创建流程失败返回值中msg为错误提示
<result><flag>1</flag><msg>错误提示</msg></result>
1.2.2 基于Action实现
根据业务实体编码获取流程
URL:/workflowUtilAction.do?method=getProcessIdByEntityCode
参数:entityCode:业务实体编码
entityAttJson:业务实体属性值对Json串。格式{attr1Code:attr1Val,attr2Code:attr2Val}
返回值:
当只有一个符合条件流程时返回flag为0,并将processId返回
{flag:0,processId:’’}
当计算符合条件的流程出错时flag返回1,msg返回错误提示
{flag:1,msg:’’}
当计算符合条件流程返回多个是,flag返回2,并在再data中返回流程列表
{flag:2,data:[{processId:’’,processCode :’’,processName:’’ },{processId:’’,processCode :’’,processName:’’}]}
根据方法getProcessIdByEntityCode获取流程Id,如果多个流程返回开发一个界面供用户选择所要要提交的流程。然后根据流程Id创建流程实例。
URL:/workflowUtilAction.do?method=createInstanceByProcessId
参数:processId流程Id
返回值:Json串
创建流程实例成功返回{flag:0,instanceCode:流程实例编码}
创建流程实例失败返回{flag:1,msg:错误提示信息}
2 提交流程
提交流程需要分两步完成,首先调用提交流程方法,这时参数userIds必须为空,流程引擎会根据传入的属性和流程配置计算流程提交后的第一个审批节点是否需要选择审批人,如果需要选择审批人返回值中的flag为2,并会在返回值中给出审批人列表。拿到审批人列表需要开发审批人选择界面,将返回的审批人列表显示出来供选择审批人,在选择了审批人后将选择审批人的userId拼出
2.1 基于Web Service实现
方法:submitProcess
参数:
instanceCode:流程实例编码
entityAttJson:业务实体属性值对Json串。格式{attr1Code:attr1Val,attr2Code:attr2Val}
userIds:审批人用户ID列表每个Id用应为逗号隔开,user1Id,user2Id,user3Id
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
提交流程成功 flag返回0
<result>
<flag>0</flag>
<msg></msg>
<instanceCode></instanceCode>
<data></data>
</result>
提交流程失败 flag返回1
<result>
<flag>1</flag>
<msg>错误提示</msg>
<instanceCode></instanceCode>
<data></data>
</result>
流程第一个审批节点需要手工选人flag返回2。multiselect为Y可以多选,否则只能选一个审批人。actName为下一个审批节点的节点名称。
<result>
<flag>2</flag>
<msg></msg>
<instanceCode></instanceCode>
<multiselect>Y</multiselect>
<actName>节点名称</actName>
<data>
<row>
<userId></userId>
<userName></userName>
<empName></empName>
<orgName></orgName>
<actName>节点名称</actName>
</row>
<row>
<userId></userId>
<userName></userName>
<empName></empName>
<orgName></orgName>
<actName>节点名称</actName>
</row>
</data>
</result>
2.2 基于Action实现
URL:/workflowUtilAction.do?method=submitProcess
参数:
instanceCode:流程实例编码
entityAttJson:业务实体属性值对Json串,Json中字符值必须用用英文单引号括起不能使用双引号。格式{attr1Code:attr1Val,attr2Code:attr2Val}
userIds:审批人用户ID列表每个Id用应为逗号隔开,user1Id,user2Id,user3Id
返回值:
提交流程成功 flag返回0
{flag:0,msg:’’, instanceCode:’’}
提交流程失败 flag返回1
{flag:1,msg:’错误提示’, instanceCode:’’}
流程第一个审批节点需要手工选人flag返回2。multiselect为Y可以多选,否则只能选一个审批人。actName为下一个审批节点的节点名称。
{flag:2,msg:’错误提示’, instanceCode:’’,multiselect :’Y’,actName:’’,data:[{userId:’’,username:’’,empName:’’},{userId:’’,username:’’,empName:’’}]}
3 撤回流程
3.1 基于Web Service实现
方法:revokeProcess
参数:
insCode:流程实例编码
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
撤销流程成功 flag返回0
<result>
<flag>0</flag>
<msg></msg>
</result>
撤销流程失败 flag返回1
<result>
<flag>1</flag>
<msg>错误提示</msg>
</result>
3.2 基于Action实现
URL:/workflowUtilAction.do?method=revokeProcess
参数:
instanceCode:流程实例编码
返回值:
撤销流程成功 flag返回0
{flag:0,msg:’’}
撤销流程失败 flag返回1
{flag:1,msg:’错误提示’}
4 根据流程实例编码重提流程
4.1 基于Web Service实现
方法:restartInstance
参数:
instanceCode:流程实例编码
processId:流程Id,如果流程Id为空,则根据原来实例流程重启
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
重启流程成功 flag返回0
<result>
<flag>0</flag>
<msg></msg>
</result>
重启流程失败 flag返回1
<result>
<flag>1</flag>
<msg>错误提示</msg>
</result>
4.2 基于Action实现
URL:/workflowUtilAction.do?method=restartInstance
参数:
instanceCode:流程实例编码
processId:流程Id,如果流程Id为空则根据原实例流程重启
返回值:
重启流程成功 flag返回0
{flag:0,msg:’’}
重启流程失败 flag返回1
{flag:1,msg:’错误提示’}
5 设置流程实体属性
5.1 基于Web Service实现
方法:setInstanceEntityAttrValue
参数:
instanceCode:流程实例编码
attributeName:实体属性名称
attributeValue:属性值
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
设置实体属性成功 flag返回0
<result>
<flag>0</flag>
<msg></msg>
</result>
设置实体属性失败 flag返回1
<result>
<flag>1</flag>
<msg>错误提示</msg>
</result>
5.2 基于Action实现
URL:/workflowUtilAction.do?method=setInstanceEntityAttrValue
参数:
instanceCode:流程实例编码
entityAttrs:实体属性值对Json串”{‘attr1’:’attrValue’,’attr2’:’attr2Value’}”
返回值:
撤销流程成功 flag返回0
{flag:0,msg:’’}
撤销流程失败 flag返回1
{flag:1,msg:’错误提示’}
6 获取待办按钮
6.1 基于Web Service实现
方法:getButtonsByTaskId
参数:
taskId:待办Id
loginName:登录用户名(要与平台2.0的用户名相一致)
Password:登录用户的密码
返回值:
获取待办按钮成功flag返回0,待办中只显示disable为N的按钮。
<result>
<flag>0</flag>
<msg></msg>
<data>
<row>
<id></id>
<code></code>
<name></name>
<category></category>
<disable>N</disable>
<row>
</data>
</result>
当按钮编码(code)
为’btnConsult’时执行发起征询操作
为’btnDelegate’时执行发起委派操作
为’btnBack’时执行回退操作
为’btnCloseConsult’时执行征询反馈操作
为’btnRevokeConsult’时执行撤销征询操作
为’btnCancel’时执行取消流程操作
为’btnCopyTo’时执行关闭抄送操作
为’btnReject’时执行驳回流程操作
获取待办按钮失败flag返回1
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
6.2 基于Action实现
URL:/workflowUtilAction.do?method=getButtonsByTaskId
参数:
taskId:待办Id
返回值:
获取待办按钮成功flag返回0,待办中只显示disable为N的按钮。
{flag:0,msg:’’,data:[{id:’’, code:’’,name:’’,category:’’,disable:’N’},
{id:’’, code:’’,name:’’,category:’’,disable:’N’}]}
当按钮编码(code)
为’btnConsult’时执行发起征询操作
为’btnDelegate’时执行发起委派操作
为’btnBack’时执行回退操作
为’btnCloseConsult’时执行征询反馈操作
为’btnRevokeConsult’时执行撤销征询操作
为’btnCancel’时执行取消流程操作
为’btnCopyTo’时执行关闭抄送操作
为’btnReject’时执行驳回流程操作
如果按钮编码不再上述列表内,则执行完成待办操作
获取待办按钮失败flag返回1
{flag:1,msg:’错误提示’}
7 完成待办
7.1 基于Web Service实现
方法:completeWorkItem
参数:
taskId:待办Id
lineCode:按钮编码
comment:审批意见
approvers:下一节点审批人用户Id列表,用英文逗号隔开
loginName:登录用户名(要与平台2.0的用户名相一致)
Password:登录用户的密码
返回值:
完成待办成功 flag返回0
<result>
<flag>0</flag>
<msg></msg>
< taskId></ taskId>
</result>
完成待办失败 flag返回1
<result>
<flag>1</flag>
<msg>错误提示</msg>
< taskId></ taskId>
</result>
下一个审批节点需要手工选人flag返回2。multiselect为Y可以多选,否则只能选一个审批人。actName为下一个审批节点的节点名称。
<result>
<flag>2</flag>
<msg></msg>
< taskId></ taskId>
<multiselect>Y</multiselect>
<actName>节点名称</actName>
<data>
<row>
<userId></userId>
<userName></userName>
<empName></empName>
<orgName></orgName>
<actName>节点名称</actName>
</row>
<row>
<userId></userId>
<userName></userName>
<empName></empName>
<orgName></orgName>
<actName>节点名称</actName>
</row>
</data>
</result>
7.2 基于Action实现
URL:/workflowUtilAction.do?method=completeWorkItem
参数:
taskId:待办Id
lineCode:按钮编码
comment:审批意见
userIds:下一节点审批人用户Id列表,用英文逗号隔开
返回值:
完成待办成功 flag返回0
{flag:0,msg:’’, taskId:’’}
完成待办失败 flag返回1
{flag:1,msg:’错误提示’, taskId:’’}
下个审批节点需要手工选人flag返回2。multiselect为Y可以多选,否则只能选一个审批人。actName为下一个审批节点的节点名称。
{flag:2,msg:’错误提示’, taskId:’’,multiselect :’Y’,actName:’’,data:[{userId:’’,username:’’,empName:’’},{userId:’’,username:’’,empName:’’}]}
8 退回
退回操作首先根据方法getBackActivityList获取当前待办之前可以退回的审批节点列表然后开发一个界面供用户选择所要退到的审批节点。然后调用方法doBack执行退回到该节点的操作。
8.1 基于Web Service实现
获取可以退回审批节点列表
方法:getBackActivityList
参数:
taskId:待办Id
loginName:登录用户名(要与平台2.0的用户名相一致)
Password:登录用户的密码
返回值:
当获取可退回审批节点成功flag返回0,data中列出可退回的节点的列表。activityId为节点Id,在执行退回操作的时候需要传入节点Id。 activityCode为节点编码activityName为节点名称
<result>
<flag>0</flag>
<msg></msg>
<data>
<row>
<activityId></activityId>
<activityCode></activityCode>
<activityName></activityName>
<row>
</data>
</result>
如果获取壳退回节点失败flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
执行退回操作
方法:doBack
参数:
taskId:待办Id
backToActivityId:要退回到的审批节点
comment:退回意见
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
退回成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
退回失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
8.2 基于Action实现
获取可以退回审批节点列表
URL:/workflowUtilAction.do?method=getBackActivityList
参数:
taskId:待办Id
返回值:
当获取可退回审批节点成功flag返回0,data中列出可退回的节点的列表。activityId为节点Id,在执行退回操作的时候需要传入节点Id。 activityCode为节点编码 activityName为节点名称
{flag:0,msg:’’,data[{activityId:’’,activityCode:’’,activityName:’’}]}
如果获取壳退回节点失败flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
执行退回操作
URL:/workflowUtilAction.do?method=doBack
参数:
taskId:待办Id
backToActivityId:要退回到的审批节点
comment:退回意见
返回值:
退回成功flag返回0
{flag:0,msg:’错误提示’}
退回失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
9 驳回
驳回就是将流程退回到开始节点
9.1 基于Web Service实现
方法:doRejectProcess
参数:
taskId:待办Id
approverComment:驳回意见
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
驳回成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
驳回失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
9.2 基于Action实现
URL:/workflowUtilAction.do?method=rejectProcess
参数:
taskId:待办Id
comment:驳回意见
返回值:
驳回成功flag返回0
{flag:0,msg:’’}
驳回失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
10 征询
10.1 基于Web Service实现
先调用getUsers获取用户列表,开发一个界面列出用户,供用户选择一个用户后并执行方法doConsult发起征询操作
获取用户列表
方法:getUsers
参数:
taskId:待办Id
conditionStr:条件值,可以为员工姓名或组织名称
start:分页的开始记录数
limit:分页的每页记录数
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
如果成功flag为0。totalProperty 总记录数;orgId组织Id;orgName组织名称;userId用户Id;username用户名;empId员工Id;empName姓名。如果失败flag为1,msg返回错误提示。
<result>
<flag></flag>
<msg></msg>
<totalProperty></totalProperty>
<data>
<row>
<orgId></orgId>
<orgName></orgName>
<userId></userId>
<userName></userName>
<empId></empId>
<empName></empName>
</row>
<row>
<orgId></orgId>
<orgName></orgName>
<userId></userId>
<userName></userName>
<empId></empId>
<empName></empName>
</row>
</data>
</result>
发起征询
方法:doConsult
参数:
taskId:待办Id
username:要征询的用户名
comment:征询内容说明
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
发起征询成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
发起征询失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
10.2 基于Action实现
先调用getUsersForConsultOrDelegate4Ext获取用户列表,开发一个界面列出用户,供用户选择一个用户后并执行方法doConsult发起征询操作
获取用户列表
URL:/workflowUtilAction.do?method=getUsersForConsultOrDelegate4Ext
参数:
taskId:待办Id
conditionStr:条件值,可以为员工姓名或组织名称
start:分页的开始记录数
limit:分页的每页记录数
返回值:
如果成功flag为0。totalProperty 总记录数;orgId组织Id;orgName组织名称;userId用户Id;username用户名;empId员工Id;empName姓名。如果失败flag为1,msg返回错误提示。
{flag:’’,msg:’’,totalProperty:40,data:[{orgId:’’,orgName:’’,userId:’’,username:’’,empId:’’,empName:’’},{orgId:’’,orgName:’’,userId:’’,username:’’,empId:’’,empName:’’}]}
发起征询
URL:/workflowUtilAction.do?method=doConsult
参数:
taskId:待办Id
userId:要征询的用户Id
comment:征询内容说明
返回值:
发起征询成功flag返回0
{flag:0,msg:’’}
发起征询失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
11 撤回征询
11.1 基于Web Service实现
方法:revokeConsultTask
参数:
taskId:待办Id
comment:撤回原因
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
撤回征询成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
撤回征询失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
11.2 基于Action实现
URL:/workflowUtilAction.do?method=revokeConsultTask
参数:
taskId:待办Id
comment:撤回原因
返回值:
撤回征询成功flag返回0
{flag:0,msg:’’}
撤回征询失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
12 征询反馈
12.1 基于Web Service实现
方法:closeConsultTask
参数:
taskId:待办Id
comment:反馈内容
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
征询反馈成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
征询反馈失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
12.2 基于Action实现
URL:/workflowUtilAction.do?method=closeConsultTask
参数:
taskId:待办Id
comment:反馈内容
返回值:
征询反馈成功flag返回0
{flag:0,msg:’’}
征询反馈失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
13 委派
13.1 基于Web Service实现
先调用getUsers获取用户列表,开发一个界面列出用户,供用户选择一个用户后并执行方法doDelegate发起委派操作
获取用户列表
方法:getUsers
参数:
taskId:待办Id
conditionStr:条件值,可以为员工姓名或组织名称
start:分页的开始记录数
limit:分页的每页记录数
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
如果成功flag为0。totalProperty 总记录数;orgId组织Id;orgName组织名称;userId用户Id;username用户名;empId员工Id;empName姓名。如果失败flag为1,msg返回错误提示。
<result>
<flag></flag>
<msg></msg>
<totalProperty></totalProperty>
<data>
<row>
<orgId></orgId>
<orgName></orgName>
<userId></userId>
<userName></userName>
<empId></empId>
<empName></empName>
</row>
<row>
<orgId></orgId>
<orgName></orgName>
<userId></userId>
<userName></userName>
<empId></empId>
<empName></empName>
</row>
</data>
</result>
发起征询
方法:doDelegate
参数:
taskId:待办Id
username:要委派的用户名
comment:委派说明
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
发起委派成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
发起委派失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
13.2 基于Action实现
先调用getUsersForConsultOrDelegate4Ext获取用户列表,开发一个界面列出用户,供用户选择一个用户后并执行方法doDelegate发起委派操作
获取用户列表
URL:/workflowUtilAction.do?method=getUsersForConsultOrDelegate4Ext
参数:
taskId:待办Id
conditionStr:条件值,可以为员工姓名或组织名称
start:分页的开始记录数
limit:分页的每页记录数
返回值:
如果成功flag为0。totalProperty 总记录数;orgId组织Id;orgName组织名称;userId用户Id;username用户名;empId员工Id;empName姓名。如果失败flag为1,msg返回错误提示。
{flag:’’,msg:’’,totalProperty:40,data:[{orgId:’’,orgName:’’,userId:’’,username:’’,empId:’’,empName:’’},{orgId:’’,orgName:’’,userId:’’,username:’’,empId:’’,empName:’’}]}
发起征询
URL:/workflowUtilAction.do?method=doDelegate
参数:
taskId:待办Id
userId:要委派的用户Id
comment:委派说明
返回值:
发起委派成功flag返回0
{flag:0,msg:’’}
发起委派失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
14 关闭抄送
14.1 基于Web Service实现
方法:closeCopyToTask
参数:
taskId:待办Id
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码返回值:
关闭抄送成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
关闭抄送失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提示’</msg>
</result>
14.2 基于Action实现
URL:/workflowUtilAction.do?method=closeCopyToTask
参数:
taskId:待办Id
返回值:
关闭抄送成功flag返回0
{flag:0,msg:’’}
关闭抄送失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
15 取消流程
15.1 基于Web Service实现
方法:revokeProcess4Task
参数:
taskId:待办Id
loginName:登录用户名(要与平台2.0的用户名相一致)
password:登录用户的密码
返回值:
取消流程成功flag返回0
<result>
<flag>0</flag>
<msg>’’</msg>
</result>
取消流程失败,flag返回1,msg返回错误提示
<result>
<flag>1</flag>
<msg>’错误提
15.2 基于Action实现
URL:/workflowUtilAction.do?method=revokeProcess4Task
参数:
taskId:待办Id
返回值:
取消流程成功flag返回0
{flag:0,msg:’’}
取消流程失败,flag返回1,msg返回错误提示
{flag:1,msg:’错误提示’}
转载请注明:兴竹集成开发平台 » 工作流Action+WS API