Flowable 工作流 问题汇总

官网地址:https://www.flowable.org/

插件地址:http://www.flowable.org/designer/update/ 

用户手册地址:https://tkjohn.github.io/flowable-userguide/


一、Bpmn常用节点

1、Task任务:

用户任务(userTask)

系统任务(serviceTask )

2、Event事件:

定时器事件(timerEventDefinition)

3、Gateway网关:

排他网关(exclusive gateway)

二、关键字段

1、procInstId 流程实例Id

2、taskId 任务Id

3、executionId 执行Id

总结一下,如果形象的拿procInstId,executionId,taskId做一个比喻的话,procInstId为一个面,executionId为在面上的一条线,taskId为在线上的一个点。

4、processDefinitionId (w10:9:b06e3e66-bb55-11e9-97c7-c485089b220a)流程定义Id

通过DEPLOYMENT_ID 关联 aff565df-bb55-11e9-97c7-c485089b220a (多对一)

5、processDefinitionKey(就是xml 定义的key: w10) 流程定义Key

6、processDefinitionName (w10#1)流程定义名称

后边三个是在xml中配置的

	<process id="w10" name="w10 #1"	isExecutable="true">

发起一个流程:

利用方法  repositoryService.createProcessDefinitionQuery().processDefinitionKey(key) .latestVersion().singleResult()

从act_re_procdef  表中取出processDefinitionId ,variables为变量的map执行此方法

(通过flowable提供的接口runtimeService中的startProcessInstanceBy**去发起)

ProcessInstance startProcessInstanceById(String processDefinitionId, Map<String, Object> variables);

 执行完以上语句会返回procInstId 流程实例Id

备注:

1.bpmn流程图后缀

其中资源后缀的定义如下:

 public static final String[] BPMN_RESOURCE_SUFFIXES = new String[]{"bpmn20.xml", "bpmn"};

也就是说我们必须以这2个格式结束,否则无法加入流程中。

以bpmn或者bpmn20.xml结尾

2.如果没有自动创建出整个表

原因:isEngineTablePresent(是否从新创建表)

可以看到使用的是表ACT_RU_EXECUTION是否存在来判断的,可能别的数据库中有这个表

3.流程表:ACT_RE_PROCDEF 为空

其中资源后缀的定义如下:

 public static final String[] BPMN_RESOURCE_SUFFIXES = new String[]{"bpmn20.xml", "bpmn"};

必须以这bpmn或者bpmn20.xml结尾,否则无法加入流程中。

4.监听器(user Task)类型:

public interface BaseTaskListener extends Serializable {

    String EVENTNAME_CREATE = "create";
    String EVENTNAME_ASSIGNMENT = "assignment";
    String EVENTNAME_COMPLETE = "complete";
    String EVENTNAME_DELETE = "delete";

    /**
     * Not an actual event, used as a marker-value for {@link BaseTaskListener}s that should be called for all events, including {@link #EVENTNAME_CREATE} , {@link #EVENTNAME_ASSIGNMENT} and
     * {@link #EVENTNAME_COMPLETE} and {@link #EVENTNAME_DELETE}.
     */
    String EVENTNAME_ALL_EVENTS = "all";
}
public interface TaskListener extends BaseTaskListener {

    void notify(DelegateTask delegateTask);
}

(1)create:任务创建时,并且所有的属性都被设置好后,进入该回调。
(2)assignment:任务被委派给某人后.。注意: 当流程执行到达一个userTask时。
(3)complete:在任务完成后,且被从运行时数据(runtime data)中删除前触发。
(4)delete:在任务将要被删除之前发生。注意,当任务通过completeTask完成任务时,它也会被执行。
 

5.assignment任务被委派给某人

{
  "approved": false,
  "assignee": "ZHANGSAN",
  "comment": "委派给张三",
  "processId": "f2056621-be97-11e9-ba31-c485089b220a",
  "reassigned": true,
  "taskId": "f27f0303-be97-11e9-ba31-c485089b220a"
}

 代码如下:

if (review.reassigned) {
      if (Strings.isNullOrWhitespace(review.getAssignee())) {
        throw new NoAssigneeException();
      }
      engineTaskService.setAssignee(taskId, review.getAssignee());
    } 

7 *.bpmn20.xml 修改后不生效

a,有xml报错,会造成ACT_GE_BYTEARRAY不更新(旧的有效)

8.eclipse flowable插件

导入项目,注意选择maven 选择General

安装插件

Name: Flowable BPMN 2.0 designer

Location: http://flowable.org/designer/update/

安装完毕后打开

 

7.修改bpmn流程图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javafanwk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值