Fx.bpm:业务流程相关函数
1. findInstances 查找指定对象和指定数据的所有业务流实例
Fx.bpm.findInstances(<String objectApiName>, <String state>, <String dataId>, <Integer pageSize>, <Integer pageNumber>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
objectApiName | String | 对象的apiName |
state | String | String state; 业务流状态,支持的状态:in_progress(进行中), pass(通过), cancel(取消), error(异常) |
dataId | String | 业务数据Id |
pageSize | Integer | 一页的数据数量,最大100条 |
pageNumber | Integer | 当前页数 |
返回值类型
APIResult
返回值说明
返回的数据类型: 返回审批相关的字段包括: 业务流程id(instanceId) 业务流名称(workflowName) 业务流状态(state) 发起人Id(applicantId) 开始时间戳(start) 结束时间戳(end)
Java举例
APIResult ret = Fx.bpm.findInstances("object_C6kha__c", "in_progress", "600558de3dacbe000167a1d9", 10, 1);
log.info(ret);
Groovy举例
def ret = Fx.bpm.findInstances("object_C6kha__c", "in_progress", "600558de3dacbe000167a1d9", 10, 1)
log.info(ret)
2. findTaskList 查找业务流所有任务节点
Fx.bpm.findTaskList(<String instanceId>, <Integer pageSize>, <Integer pageNumber>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
instanceId | String | 业务流实例Id |
pageSize | Integer | 一页的数据数量,最大100条 |
pageNumber | Integer | 当前页数 |
返回值类型
APIResult
返回值说明
返回的数据类型: 任务节点List,相关的字段包括: 任务Id(taskId), 任务名称(taskName) 状态(state) 执行类型(executionType),执行类型包括: update(更新类型的节点) approve(审批节点) externalApplyTask(应用节点) operation(业务操作节点) addRelatedObject(添加关联对象) batchAddRelatedObject(批量添加关联对象) batchEditMasterDetailObject(批量编辑从对象) addMDObject(新建从对象) latency(定时等待节点) 节点类型(taskType),节点类型包括: anyone(单人处理) all(会签审批) 是否需要指定下一节点处理人:1 指定,非1不指定(assignNextTask) 应用appId(linkApp) 应用类型(linkAppType) 节点的处理意见(List <Opinion> ),Opinion 包含的字段有: tenantId 节点处理人的企业Id userId 节点处理人的userId actionType 处理类型 opinion 处理意见 replyTime 处理时间
Java举例
APIResult ret = Fx.bpm.findTaskList("600655f76cf582000145d366", 10, 1);
log.info(ret);
Groovy举例
def ret = Fx.bpm.findTaskList("600655f76cf582000145d366", 10, 1)
log.info(ret)
3. findTask 查找某个节点的详细信息
Fx.bpm.findTask(<String taskId>, <Boolean notGetData>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 任务Id |
notGetData | Boolean | 获取流程编辑任务的时候不获取对象数据 |
返回值类型
APIResult
返回值说明
返回的数据类型: name:任务名称 state:状态 applicantId:发起人 entityId:任务关联对象 objectId:任务关联数据id candidateIds:待处理人 processIds:已处理人 activityInstanceId:任务节点编号
Java举例
APIResult ret = Fx.bpm.findTask("600655f76cf582000145d367", true);
log.info(ret);
Groovy举例
def ret = Fx.bpm.findTask("600655f76cf582000145d367", true)
log.info(ret)
4. cancel 取消流程实例
Fx.bpm.cancel(<String instanceId>, <String reason>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
instanceId | String | 业务流实例Id |
reason | String | 取消原因 |
返回值类型
APIResult
Java举例
APIResult ret = Fx.bpm.cancel("60058b414349d20001b32aef", "不要了");
log.info(ret);
Groovy举例
def ret = Fx.bpm.cancel("60058b414349d20001b32aef", "不要了")
log.info(ret)
5. approval 对审批节点进行操作(不支持需要指定下一节点任务处理人的节点)
Fx.bpm.approval(<String taskId>, <String userId>, <String action>, <String opinion>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 审批节点Id |
userId | String | 审批人 |
action | String | 操作类型,支持的类型有agree(同意), reject(拒绝) |
opinion | String | 审批意见 |
返回值类型
APIResult
返回值说明
Java举例
APIResult ret = Fx.bpm.approval("60058bd24349d20001b32af2", "1000", "agree", "绝对同意");
log.info(ret);
Groovy举例
def ret = Fx.bpm.approval("60058bd24349d20001b32af2", "1000", "agree", "绝对同意")
log.info(ret)
6. complete 对业务节点进行完成操作
Fx.bpm.complete(<String taskId>, <String userId>, <String opinion>, <Map map>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 业务节点Id |
userId | String | 审批人 |
opinion | String | 可选参数,与map一并使用,处理意见 |
map | Map | 可选参数,与opinion一并使用,其他参数 |
返回值类型
APIResult
返回值说明
Java举例
//选择或新建关联对象类的业务流节点可以通过函数自动完成,可在第四个参数设置 key:"relatedObjectId" ->value:新建关联对象的id
Map<String, Object>map = Maps.of("relatedObjectId", "5e16cc13e4817e0001ee1a3e");
APIResult ret = Fx.bpm.complete("60058b414349d20001b32af0", "1000", "通过", map);
log.info(ret);
Groovy举例
//选择或新建关联对象类的业务流节点可以通过函数自动完成,可在第四个参数设置 key:"relatedObjectId" ->value:新建关联对象的id
Map map = ["relatedObjectId": "5e16cc13e4817e0001ee1a3e"]
def ret = Fx.bpm.complete("60058b414349d20001b32af0", "1000", "通过", map)
log.info(ret)
7. changeCandidateIds 更换当前节点处理人
Fx.bpm.changeCandidateIds(<String taskId>, <List candidateIds>, <String opinion>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 任务节点id |
candidateIds | List | 要改为的处理人 |
opinion | String | 可选参数,更换处理人意见 |
返回值类型
APIResult
返回值说明
Java举例
APIResult ret = Fx.bpm.changeCandidateIds("600655f76cf582000145d367", Lists.newArrayList(1000, 1001, 1002));
log.info(ret);
Groovy举例
def ret = Fx.bpm.changeCandidateIds("600655f76cf582000145d367", [1000, 1001, 1002])
log.info(ret)
8. startInstance 触发业务流
Fx.bpm.startInstance(<String id>, <String objectId>, <String entityId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 业务流定义id |
objectId | String | 对象数据Id |
entityId | String | 对象apiName |
返回值类型
APIResult
返回值说明
返回的数据类型: String,创建业务流实例的id
Java举例
APIResult ret = Fx.bpm.startInstance("5e9858f5865dbc000155dd87", "e6a338ae8a944cdfb2bae737db1aa12f", "AccountObj");
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
9. getDefinitionList 获取业务流定义列表
Fx.bpm.getDefinitionList(<String entityId>, <Integer page>, <Integer pageSize>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
entityId | String | 对象ApiName |
page | Integer | 页码 |
pageSize | Integer | 每页数量 |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
//根据对象ApiName获取定义
def(Boolean error, Map data, String message) = Fx.bpm.getDefinitionList("FundReturnBackObj", 1, 10)
if(false == error){
//获取定义列表
List item = data['data'] as List
item.each{
//根据流程定义名称获取相关定义
i ->if('被函数获取的定义' == i['workflowName']){
//触发业务流
Fx.bpm.startInstance(i['id'] as String, '62c39d5d71f9010001ae0ea9', 'FundReturnBackObj')
}
}
}
10. delayTaskImmediatelyExecute 业务流等待节点立即执行
Fx.bpm.delayTaskImmediatelyExecute(<String taskId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 等待节点id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
APIResult res = Fx.bpm.delayTaskImmediatelyExecute("62f320a7c6fa24292be4f830");
if(res.isError() || res.message() != ""){
log.info(res.message())
}else{
log.info("业务流自动节点立即执行成功")
}
11. refreshHandler 重新解析任务处理人
Fx.bpm.refreshHandler(<String taskId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 任务id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
String taskId = "6343e4d780f4841c79cbcae0";
APIResult ret = Fx.bpm.refreshHandler(taskId);
if (ret.isError()) {
log.info(ret.message());
} else {
log.info(ret.getData());
}
Groovy举例
def taskId = "6343e4d780f4841c79cbcae0"
def res = Fx.bpm.refreshHandler(taskId)
log.info(res)
12. findDelayTask 根据objectId或workflowInstanceId获取等待节点
Fx.bpm.findDelayTask(<String objectId>, <String workflowInstanceId>, <Integer pageNumber>, <Integer pageSize>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
objectId | String | 数据id |
workflowInstanceId | String | 实例id |
pageNumber | Integer | |
pageSize | Integer |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
String objectId = "63a403eb314aa80001bd9b82";
String instanceId = "63a405d45513f84c58c2b66c";
Integer pageNumber = 1;
Integer pageSize = 3;
//根据数据ID查延迟节点
APIResult ret1 = Fx.bpm.findDelayTask(objectId, null, pageNumber, pageSize);
if (ret1.isError()) {
log.info(ret1.message());
} else {
log.info(ret1.getData());
}
//根据实例ID查延迟节点
APIResult ret2 = Fx.bpm.findDelayTask(null, instanceId, pageNumber, pageSize);
if (ret2.isError()) {
log.info(ret2.message());
} else {
log.info(ret2.getData());
}
Groovy举例
def objectId = "63a403eb314aa80001bd9b82"
def instanceId = "63a405d45513f84c58c2b66c"
Integer pageNumber = 1
Integer pageSize = 3
//根据数据ID查延迟节点
def(Boolean err1, Map data1, String msg1) = Fx.bpm.findDelayTask(objectId, null, pageNumber, pageSize)
if (err1) {
log.info("error: " + msg1)
} else {
log.info(data1)
}
//根据实例ID查延迟节点
def(Boolean err2, Map data2, String msg2) = Fx.bpm.findDelayTask(null, instanceId, pageNumber, pageSize)
if (err2) {
log.info("error: " + msg2)
} else {
log.info(data2)
}