创建流程实例时 act_ru_identitylink 表中没有出现相关的人员数据

来源:4-6 流程实例ProcessInstance

leslie1996

2021-01-09

老师您好,我对流程实例有两个问题:

  1. 创建流程实例的方法,视频中给出的是
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process_1", "business_id");

请问这个方法和如下所示的方法有什么区别嘛

ProcessInstance processInstance = runtimeService.createProcessInstanceBuilder()
                .processDefinitionKey("Process_1")
                .businessKey("business_id")
                .start();
  1. 在执行上述代码创建流程实例时,act_ru_identitylink 中没有生成 bpmn 文件中指定的 user_task 的人员数据,请问老师这个数据是否与数据库选型及老师提供的 user 表有关。我使用的是 PostgreSQL 数据库 activiti 版本是 7.1.0.M6,无论是否创建 user 表,这里都没有生成人员数据,还是我创建的 bpmn 文件是有问题的,因为我 idea 版本不兼容课程中提到的插件,我下载了一个 “Camunda Modeler” 的软件用来绘制 bpmn,创建流程实例时,act_ru_task 和 act_ru_executioin 都可以正常生成数据,只有 act_ru_identitylink 没按照视频中所预期的生成数据。下面是我 bpmn 文件的 xml 麻烦老师帮忙定位一下问题,谢谢。
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_078izda" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.4.0">
  <bpmn:process id="Process_1" name="流程定义" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1">
      <bpmn:outgoing>Flow_1wk41cc</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="Flow_1wk41cc" sourceRef="StartEvent_1" targetRef="Activity_18xsp7z" />
    <bpmn:endEvent id="Event_1es5pkq">
      <bpmn:incoming>Flow_1jcpj04</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_1jcpj04" sourceRef="Activity_18xsp7z" targetRef="Event_1es5pkq" />
    <bpmn:userTask id="Activity_18xsp7z" name="user task" camunda:assignee="leslie">
      <bpmn:incoming>Flow_1wk41cc</bpmn:incoming>
      <bpmn:outgoing>Flow_1jcpj04</bpmn:outgoing>
    </bpmn:userTask>
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
      <bpmndi:BPMNEdge id="Flow_1jcpj04_di" bpmnElement="Flow_1jcpj04">
        <di:waypoint x="210" y="300" />
        <di:waypoint x="210" y="372" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_1wk41cc_di" bpmnElement="Flow_1wk41cc">
        <di:waypoint x="210" y="158" />
        <di:waypoint x="210" y="220" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
        <dc:Bounds x="192" y="122" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_1es5pkq_di" bpmnElement="Event_1es5pkq">
        <dc:Bounds x="192" y="372" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1302g84_di" bpmnElement="Activity_18xsp7z">
        <dc:Bounds x="160" y="220" width="100" height="80" />
      </bpmndi:BPMNShape>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

写回答

1回答

汪汪对

2021-01-11

1、我们开启一个流程,第一个环节一般并不是Activiti的任务,而是一个自己编写的页面,比如请假,在第一个页面填写请假的类型,事假、年假、产假等,填写后根据类型不同启动不同的任务,同时表单数据也是要存在自己建的业务表里的,实现表单数据与Activiti实例的关联,可以通过存储表单数据后返回的主表ID放在businessKey里,建立业务表与流程实例的关联。当然也可以自己把流程实例ID存在业务表里,也能实现关联,就可以不用businessKey了。或者双向都存储,方便开发的时候互相获取。


2、Camunda在节点描述上和Actvitiv是有区别的,如果actiBPM不好用,可以看课程后面的bpmnjs部署,并且可以先用在线的测试一下BPMN是否能正常使用http://139.9.118.236:2020/layuimini/page/login-1.html

1
1
leslie1996
非常感谢!
2021-01-11
共1条回复

Activiti7工作流开发 打造通用型可视化UML工作流系统

从0打造黑马潜力项目作品,掌握新版Activiti7核心+工程化思维。

920 学习 · 357 问题

查看课程