Fx.bpm
Fx.bpm:业务流程相关函数
1. 查找指定对象和指定数据的所有业务流实例
Fx.bpm.findInstances(<String objectApiName>, <String state>, <String dataId>, <int pageSize>, <int pageNumber>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
objectApiName | String | 对象的apiName |
state | String | String state; 业务流状态,支持的状态:in_progress(进行中), pass(通过), cancel(取消), error(异常) |
dataId | String | 业务数据Id |
pageSize | int | 一页的数据数量,最大100条 |
pageNumber | int | 当前页数 |
返回值类型
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. 查找业务流所有任务节点
Fx.bpm.findTaskList(<String instanceId>, <int pageSize>, <int pageNumber>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
instanceId | String | 业务流实例Id |
pageSize | int | 一页的数据数量,最大100条 |
pageNumber | int | 当前页数 |
返回值类型
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 包含的字段有: 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. 查找某个节点的详细信息
Fx.bpm.findTask(<String taskId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 任务Id |
返回值类型
APIResult
返回值说明
name:任务名称 state:状态 applicantId:发起人 entityId:任务关联对象 objectId:任务关联数据id candidateIds:待处理人 processIds:已处理人 activityInstanceId:任务节点编号
Java举例
APIResult ret = Fx.bpm.findTask("600655f76cf582000145d367");
log.info(ret);
Groovy举例
def ret = Fx.bpm.findTask("600655f76cf582000145d367")
log.info(ret)
4. 取消流程实例
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. 对审批节点进行操作(不支持需要指定下一节点任务处理人的节点)
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. 对业务节点进行完成操作
Fx.bpm.complete(<String taskId>, <String userId>, <String opinion>, <Map map>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 业务节点Id |
userId | String | 审批人 |
opinion | String | 可选参数,与map一并使用,处理意见 |
map | Map | 可选参数,与opinion一并使用,其他参数 |
返回值类型
APIResult
返回值说明
Java举例
APIResult ret = Fx.bpm.complete("60058b414349d20001b32af0", "1000");
log.info(ret);
Groovy举例
def ret = Fx.bpm.complete("60058b414349d20001b32af0", "1000")
log.info(ret)
7. 更换当前节点处理人
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. 触发业务流
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. 获取业务流定义列表
Fx.bpm.getDefinitionList(<String entityId>, <int page>, <int pageSize>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
entityId | String | 对象ApiName |
page | int | 页码 |
pageSize | int | 每页数量 |
返回值类型
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. 业务流等待节点立即执行
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("业务流自动节点立即执行成功")
}