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("业务流自动节点立即执行成功")
}

results matching ""

    No results matching ""