# 父子流程

# 应用场景

# 子流程是已上线的流程,且与父流程的审批过程不同,无法简单复用



# 创建进入子流程的步骤

  • 子流程代码,规则:{子流程步骤名称}@{子流程代码}



注意:子流程代码不能填错,不然无法对应到具体的流程。可以链接到任何一个子流程的步骤,只要填入对应的步骤名称。

# 子流程的走向

  • 子流程中自动步骤的名称与父流程中对应子流程的节点所延伸出的线的名称一一对应

# 父子流程传递数据

R-读:代表子流程能够读取父流程数据
W-写:代表父流程可以回写子流程数据

此方法当且仅当字段名称相同时使用,如字段名称不同,需使用字段映射配置



# 父子流程字段映射

  • 字段名称不同时,使用子流程的字段映射,可以传递数据



# 子流程处理数据

  • onInstanceStarting的时候处理数据,执行渲染,每次从父流程进入,都会触发
    @Override
    public InfoPlusResponse onInstanceStarting(InfoPlusEvent e) {
        DomesticTravelRequest form = e.toBean(DomesticTravelRequest.class);

        List<DomesticTravelRequestCCRYList> listData = new ArrayList<>();

        DomesticTravelRequestCCRYList data1 = new DomesticTravelRequestCCRYList();

        data1.setCCRYTel("test1");

        listData.add(data1);

        DomesticTravelRequestCCRYList data2 = new DomesticTravelRequestCCRYList();

        data2.setCCRYTel("test2");

        listData.add(data2);

        form.setCCRYList(listData);

        return new InfoPlusResponse(e, form);
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  • 这样每次重新发起子流程,都会重新进行对应的赋值操作



父流程案例地址

子流程案例地址

父流程案例 messenger 地址

子流程案例 messenger 地址