Fx.bpm

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)
}

2024-09-15
4 5