1.activiti部署xml时发现process的id属性实际部署到数据库中对应process的key字段。数据库
2.主流程中使用service task,调用JavaDelegate实现类抛出BPMN异常来调用子流程中的错误开始事件报错。要求subprocess必须为event subprocess。eclipse
解决:选中subprocess构件,勾选triggered by event异步
如图ide
3.由于在actiBPM中没有找到事务子流程、取消结束事件、补偿事件等元素。所以从新下载了eclipse并安装了activiti插件。由于部门使用idea开发环境,所以我使用eclipse画完流程图以后,尝试把bpmn拷贝回idea运行。idea
使用idea打开bpmn文件,选择图上的取消结束事件,能够观察到actiBPM并不识别 EventType,从而显示Error getting value。而且以前一条链接补偿边界事件和补偿 service task之间的虚线也消失了。插件
此时运行程序提示以下code
Compensation activity could not be found (or it is missing 'isForCompensation="true"'
即找不到对应的补偿事件或者没有在补偿事件上设置isForconsation属性,查看xml文件,属性已经设置,找不到补偿事件天然时虚线消失的问题,至于为何消失还有待研究。//todoxml
4.在子流程设置了消息启动时间,启动不成功的问题,解决方案。blog
ProcessEngine engine= ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService=engine.getRuntimeService(); //不能使用以下命令启动,由于如下命令是启动一个新的流程实例 而非子流程 // runtimeService.startProcessInstanceByMessage("myMsg"); //应该先获取消息name设置为myMsg的全部execution,在根据executionID来向他发送消息 Execution execution=runtimeService.createExecutionQuery().messageEventSubscriptionName("myMsg").singleResult(); System.out.println(execution.toString()); runtimeService.messageEventReceived("myMsg",execution.getId());
5.service task启动其余事件后,主流程不能继续往下跑。可是若是使用中间抛出事件,而且设置为异步,那么主流程能够继续往下跑。事件
6.actiBPM存在变动bpmn图像后xml不跟随改变,即变动bpmn图像无效的状况。
7.actiBPM打开流程图,以前设置的属性存在所有不现实(可是有效)的状况。
7.actiBPM缺乏的补偿边界事件,可使用子流程中再包含一个子流程的方式来实现;
错误边界事件和取消边界事件能够起到相似的功能。