Fx.stage

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)

2024-09-15
3 7