Fx.stage:阶段推进器API 阶段的api
1. trigger 触发阶段推进器
Fx.stage.trigger(<String objectApiName>, <String objectId>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
objectApiName | String | 对象的api名称 |
objectId | String | 对象数据id |
userId | String | 发起人 |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
workflowInstanceId:当前触发的阶段推进器的流程id
isCurrentDef:当前实例是否为当前定义
hasInstance:是否存在流程实例
stagePropellerName: 阶段推进器定义名称
返回值参考
[false,{"workflowInstanceId":"631020344ffa3d4d730ebf3b"},""]
注:以上是函数统一的返回结构,第一个返回值表示请求是否失败,false表示请求成功
Java举例
APIResult ret = Fx.stage.trigger("object_qep6N__c", "617f9b7340beec0001b9b14e","1007");
log.info(ret);
if (ret.isError()) {
log.info(ret.message());
} else{
log.info(ret.getData());
}
Groovy举例
def(Boolean error, Map data, String errorMessage) = Fx.stage.trigger("object_qep6N__c", "617f9b7340beec0001b9b14e","1007")
log.info(ret)
if (error) {
log.info(errorMessage)
} else{
log.info(data)
}
2. matchDef 匹配可以触发的阶段推进器(非商机2.0)
Fx.stage.matchDef(<String entityId>, <String objectId>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
entityId | String | 对象apiName |
objectId | String | 数据id |
userId | String | 用户id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
sourceWorkflowId:定义id
isCurrentDef:当前实例是否为当前定义
hasInstance:是否存在流程实例
stagePropellerName:阶段推进器定义名称
返回值参考
[false, {sourceWorkflowId=62fcad533149760001149c27, isCurrentDef=true, hasInstance=true, stagePropellerName=ln主从编辑}, ]
Groovy举例
def api_name = context.data.object_describe_api_name as String
def object_id = context.data._id as String
log.info(api_name + "," + object_id)
def match_result = Fx.stage.matchDef(api_name, object_id, "1000")
log.info(match_result)
3. change 切换阶段推进器(非商机2.0 , 商机2.0对象不允许使用这个函数来操作)
Fx.stage.change(<String entityId>, <String objectId>, <String sourceWorkflowId>, <String stageId>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
entityId | String | 对象apiName |
objectId | String | 数据id |
sourceWorkflowId | String | 由预匹配得到的阶段推进器的定义id,参考Fx.stage.matchDef |
stageId | String | 初始化阶段id |
userId | String | 用户id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
// 非商机2.0对象切换阶段推进器
def match_result = Fx.stage.change("object_qep6N__c", "617f9b7340beec0001b9b14e", "61a87f17bb3d4700017f5a78", "1", "1000")
log.info(match_result)
// 注意:商机2.0对象,建议使用Fx.object.update修改「销售流程」字段来实现切换阶段推进器。
// 以下代码仅供参考:
String sourceWorkflowId = "640ac64fd7d00c767d0d9641" //要切换的阶段推进器的sourceWorkflowId
String stageId="1" //切换阶段推进器后,初始化的阶段ID
String objectAPIName = "NewOpportunityObj"
String objectId = context.objectIds[0]
Map updateData = [
"sales_process_id":sourceWorkflowId,
"sales_stage":stageId
]
def (Boolean error, Map data, String errorMessage) = Fx.object.update( objectAPIName, objectId, updateData, false, false)
if (error) {
log.info("error:" + errorMessage )
}
log.info(data)
4. changeTaskHandler 更新并完成任务
Fx.stage.changeTaskHandler(<String taskId>, <List candidateIds>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | |
candidateIds | List | 要更换的处理列表 |
userId | String | 用户id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
def rst = Fx.stage.changeTaskHandler("6343ff9e80f4841c79cbcb5c", ["1000"], "1106")
log.info(rst)
5. completeCreateAndRelatedTask 完成选择关联的任务
Fx.stage.completeCreateAndRelatedTask(<String taskId>, <String entityId>, <String objectId>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | |
entityId | String | 对象apiName |
objectId | String | 数据id |
userId | String |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
def rst = Fx.stage.completeCreateAndRelatedTask("6343ff9e80f4841c79cbcb5c", "object_qep6N__c", "617f9b7340beec0001b9b14e", "1106")
log.info(rst)
6. updateAndCompleteTask 更新并完成任务
Fx.stage.updateAndCompleteTask(<String taskId>, <Map data>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | |
data | Map | 要更新的数据信息 |
userId | String | 用户id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
def data = ["name": "value"]
def rst = Fx.stage.updateAndCompleteTask("6343ff9e80f4841c79cbcb5c", data, "1001")
log.info(rst)
7. reactive 重新激活
Fx.stage.reactive(<String workflowInstanceId>, <String activeStageId>, <Map data>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
workflowInstanceId | String | 流程实例Id |
activeStageId | String | 激活阶段 |
data | Map | 更新表单数据 |
userId | String | 用户id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
//重新激活函数demo
//实例id
def workflowInstanceId="62c3da4e0d9f997b27dfd90e"
//要跳转的阶段
def activeStageId="47u3S02Gz"
//重新激活表单填写
Map data= ["field_0mvhC__c": "90"]
def userId= "1000"
def(boolean error, Map result, String message) = Fx.stage.reactive(workflowInstanceId, activeStageId, data, userId)
if (error) {
log.info("error :" + message)
} else {
log.info(result)
}
8. reactiveValidate 重新激活校验
Fx.stage.reactiveValidate(<String workflowInstanceId>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
workflowInstanceId | String | 流程实例Id |
userId | String | 用户id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
//重新激活校验函数接口demo
//实例id
def workflowInstanceId= "62c3da4e0d9f997b27dfd90e"
def userId = context.userId
def(boolean error, Map result, String message) = Fx.stage.reactiveValidate(workflowInstanceId, userId)
if (error) {
log.info("error: " + message)
} else {
log.info(result)
}
9. getInstanceInfo 获取对象的阶段实例信息(form下发layout , desc和data)
Fx.stage.getInstanceInfo(<String entityId>, <String objectId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
entityId | String | 对象apiName |
objectId | String | 数据ID |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
String objectId = "63f6d5b94315da0001585821"; //数据id
String entityId = "object_8F03i__c"; //对象apiName
APIResult ret = Fx.stage.getInstanceInfo(entityId, objectId);
log.info(ret);
if (ret.isError()) {
log.info(ret.message());
} else{
log.info(ret.getData());
}
Groovy举例
def objectId = "63f6d5b94315da0001585821"; //数据id
def entityId = "object_8F03i__c"; //对象apiName
def (Boolean error, Map data, String message) = Fx.stage.getInstanceInfo(entityId, objectId);
if (error) {
log.info("error:" + message)
}
log.info(data)
10. regenerateHandler 重新解析任务处理人
Fx.stage.regenerateHandler(<String stageTaskId>, <String opinion>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
stageTaskId | String | 阶段ID |
opinion | String | 意见 |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
String stageTaskId = "63f6d7a3363f0627220ac287"; //阶段ID
String opinion = "数据负责人变化自动刷新任务处理人"; //意见
APIResult ret = Fx.stage.regenerateHandler(stageTaskId, opinion);
log.info(ret);
if (ret.isError()) {
log.info(ret.message());
} else{
log.info(ret.getData());
}
Groovy举例
def stageTaskId = "63f6d7a3363f0627220ac287"; //阶段ID
def opinion = "数据负责人变化自动刷新任务处理人"; //意见
def (Boolean error, Map data, String message) = Fx.stage.regenerateHandler(stageTaskId, opinion);
if (error) {
log.info("error:" + message)
}
log.info(data)
11. completeTask 完成任务
Fx.stage.completeTask(<String taskId>, <String userId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
taskId | String | 任务id |
userId | String | 用户id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
//注:完成编辑任务请使用Fx.stage.updateAndCompleteTask;
// 完成创建关联对象任务请使用Fx.stage.completeCreateAndRelatedTask
String taskId = "64254c322d63c9681c050ea3"; //任务id
String userId = "1001"; //用户id
APIResult ret = Fx.stage.completeTask(taskId, userId);
log.info(ret);
if (ret.isError()) {
log.info(ret.message());
} else{
log.info(ret.getData());
}
Groovy举例
//注:完成编辑任务请使用Fx.stage.updateAndCompleteTask;
// 完成创建关联对象任务请使用Fx.stage.completeCreateAndRelatedTask
def taskId = "64254c322d63c9681c050ea3" //任务id
def userId = "1002" //用户id
def(Boolean error, Map data, String message) = Fx.stage.completeTask(taskId, userId)
if (error) {
log.info("error:" + message)
}
log.info(data)
12. getInstanceTasks 根据entityId和objectId获取阶段推进器实例中的所有任务
Fx.stage.getInstanceTasks(<String entityId>, <String objectId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
entityId | String | 对象apiName |
objectId | String | 数据id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
String entityId = "NewOpportunityObj"; //对象apiName
String objectId = "sdf2312"; //数据id
APIResult ret = Fx.stage.getInstanceTasks(entityId, objectId)
log.info(ret);
if (ret.isError()) {
log.info(ret.message());
} else{
log.info(ret.getData());
}
Groovy举例
def entityId = "NewOpportunityObj" //对象apiName
def objectId = context.data._id as String //数据id
def ret = Fx.stage.getInstanceTasks(entityId, objectId)
log.info(ret)
13. getBySourceWorkflowId 根据sourceWorkflowId获取阶段推进器定义
Fx.stage.getBySourceWorkflowId(<String sourceWorkflowId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
sourceWorkflowId | String | 阶段推进器的唯一标识,可在后台阶段推进器管理 > 详细信息 > API名称中查看 |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Groovy举例
def(boolean error, Map data, String message) = Fx.stage.getBySourceWorkflowId("667bc6b9ed7d04000171daaf")
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}
14. cancel 根据对象apiName和数据ID终止数据上的阶段推进器实例(仅支持非商机2.0对象的实例)
Fx.stage.cancel(<String entityId>, <String objectId>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
entityId | String | 对象apiName |
objectId | String | 数据id |
返回值类型
APIResult
返回值说明
返回的数据类型: Map
Java举例
String entityId = "object_8F03i__c";
String objectId = context.data._id;
APIResult ret = Fx.stage.cancel(entityId, objectId);
log.info(ret);
if (ret.isError()) {
log.info(ret.message());
} else{
log.info(ret.getData());
}
Groovy举例
def entityId = "object_8F03i__c"
def objectId = context.data._id
def(Boolean error, Map data, String message) = Fx.stage.cancel(entityId, objectId)
if (error) {
log.info("error:" + message)
}
log.info(data)