电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

工作流流程自定义发起人

来源:金蝶云社区作者:金蝶2024-09-233

工作流流程自定义发起人

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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信