工作流流程自定义发起人

1 业务背景
场景一:
采购申请单数据来源于第三方系统,第三方系统同步数据到苍穹时同步发起流程走审批;此业务场景是通过api实现,在api里获取到推送过来的批量数据然后调用实体的提交操作,触发流程;提交操作会以当前登录人为流程的发起人,需求是以单据的创建人或某一个单据人员字段作为发起人,而不是当前api登录人;
场景二:
采购申请单下推生成采购单据订单,并同步发起采购订单的审批流程;此时流程默认发起人是【下推】操作人,需求该业务场景下采购订单审批流程发起人为系统人员维护的”系统默认“用户,不是【下推】操作人;
2 思路与方案
通过代码动态设置操作人,切换上下文的用户
OperateOption operateOption = OperateOption.create();
operateOption.setVariableValue("_initiator_", "人员id");
3 实现步骤
1、测试单据维护人员字段(流程发起人)

2、创建自定义API

2、编写自定义api插件
@ApiController(value = "bos", desc = "demo样例")
@ApiMapping(value = "demo")
public class CustomDemoController implements Serializable {
@ApiPostMapping("/kdec_bill0514/saveAndSubmit")
public CustomApiResult<Boolean> saveAndSubmit(@ApiParam("表单数据") Map<String, Object> map) {
if(map == null) {
throw new KDBizException(new ErrorCode("0002", "保存数据不能为空"));
}
Object idObj = map.get("billno");
if(idObj == null) {
throw new KDBizException(new ErrorCode("0001", "编码不能为空"));
}
Object kdec_userfield = map.get("kdec_userfield");
if(kdec_userfield == null) {
throw new KDBizException(new ErrorCode("0003", "流程发起人不能为空"));
}
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("kdec_bill0514");
dynamicObject.set("billno",idObj);
dynamicObject.set("kdec_userfield",kdec_userfield);
dynamicObject.set("billstatus","A");
//创建人
dynamicObject.set("creator", 工作流流程自定义发起人
1 业务背景场景一:采购申请单数据来源于第三方系统,第三方系统同步数据到苍穹时同步发起流程走审批;此业务场景是通过api实现,在api里...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



