activiti 5.19整合modeler在线编辑器
来源:互联网 发布:苹果电脑系统删除软件 编辑:程序博客网 时间:2024/05/28 17:08
心得:想要做一件事,首先得清楚这件事的本质。
最开始学习activiti,我与大家都一样,徘徊在如何与业务系统对接,如何整合modeler实现在线编辑。当我花了1周时间高强度学习后,我发现,一开始想得太多了。
最初阶段,我应该先让activiti跑起来,然后与业务系统对接,弄清楚activiti的各种实现原理后,最后来整合modeler才是最好的方式。因为这个时候你已经明白了modeler与工作流引擎之间的关系,你知道应该怎么做,你的方向在哪里。
这可能就是为什么网上的教程,每一个都是直接从测试类开始,只告诉大家如何进行流程流程,而不是一上来就告诉大家怎么整合与使用modeler的因为吧。
下面,就开始整合modeler,如果过程中有不对的或者有疑问的地方,欢迎指导与探讨。
所以,我的教程也是基于你已经有一个能够运行activiti的项目基础上。
1、什么是modeler
modeler是activiti的一个在线编辑流程插件,通俗的说,它就是一个页面,不过这个页面包含了很多的控制以实现我们的目的。
2、在线编辑原理
很多人一开始可能会被“流程在线编辑”这几个字误导,认为modeler编辑的是流程,其实不然,编辑器编辑的只是一个Model。Model部署后才是流程(procdef),已经部署的流程(procdef)也可以转换为Model,Model与流程(procdef)是分别独立的,删掉Model流程还在,删掉流程Model还在。
3、整合modeler需要的资源
a.样式(官方发布的activiti-explorer.war包中获取):diagram-viewer文件夹、editor-app文件夹
b.页面控件(官方发布的activiti-explorer.war包中获取):stencilset.json
c.modeler.html(官方发布的activiti-explorer.war包中获取)
d.流程定义列表(如果先做项目后整合,那么这个列表应该是已经有的)(如果没有,下载咖啡兔的demo,然后拷贝process-list)建议大家参照着自己写一个页面
e.模型列表(下载咖啡兔的demo,拷贝model-list)建议大家参照着自己写一个页面
f.jar包(下载咖啡兔的demo,参照咖啡兔的jar包,不是所有的都用得上,最好的方式就是先导入基础包,然后运行,运行报错差什么包就加什么包)
4、整合步骤
a.将diagram-viewer文件夹与editor-app文件夹拷贝至项目webapp下,保证项目编译后在根目录
b.将stencilset.json文件拷贝至resources目录下,保证项目编译后在根目录
c.将modeler.html文件拷贝至WEB-INF目录下
d.将process-list文件与model-list文件拷贝至WEB-INF目录指定的页面路劲下
e.导入jar包
f.扫描activiti源生controller(只要controller)
<context:component-scan base-package="org.activiti.rest.editor"/><context:component-scan base-package="org.activiti.rest.diagram"/>
g.编写controller(一个用来操控流程,一个用来操控模型)(操控流程的controller用自己写的,操控模型的controller参考咖啡兔的ModelController)
1)流程controller(代码太多,这里就不贴出来了,参考咖啡兔的ActivitiController,我只列出整合modeler需要用到的方法)
a)获取流程定义列表(用于流程定义列表页面展示所有已经部署的流程定义)
b)流程定义转换Model(用于没有模型的流程转换模型)
2)模型controller(参考咖啡兔的ModelController,其实直接全部拷贝就可以了)
h.扫描自身controller(该controller的作用就是将请求重定向到modeller页面,页面的所有控件会由js自行加载)
<context:component-scan base-package="cn.cst.oss.bpm.contorller"/>
i.将modeler.html独立出来,因为spring mvc 一般都是直接过滤的所有路径(在静态资源控制的地方添加)不然访问会报错,提示没有这个方法
<resources mapping="/modeler.html" location="WEB-INF/"/>
5、检验
a.项目启动,跳转到流程定义列表,能够看到所有的流程定义表示成功。
b.点击任意流程定义后面的转换Model控件,后台不抱错并且页面到了模型列表页,有一条数据,表示成功。
d.点击编辑按钮(咖啡兔是直接在页面超链接跳转到modeler.html,我是在模型controller写了一个方法来跳转,实现效果一致),成功打开modeler.html表示成功。
c.模型列表的其他功能自己去挨个实验,这里不多做说明。
6、原理:先要获取到所有的流程定义,然后将流程定义转换为Model(模型),将模型ID传给modeler页面并跳转到modeler页面。modeler页面会自动解析之前所列出的样式资源与控件资源,一旦进行逻辑操作就调用第4.f 步骤扫描的controller。
- activiti 5.19整合modeler在线编辑器
- activiti modeler在线编辑器中文汉化
- 整合Acitiviti在线流程设计器(Activiti-Modeler 5.18.0)
- 整合Acitiviti在线流程设计器(Activiti-Modeler 5.18.0)
- 整合Acitiviti在线流程设计器(Activiti-Modeler 5.18.0)
- activiti modeler在线编辑器关闭跳转路劲自定义
- 整合Activiti Modeler到SpringMVC
- 整合Activiti-modeler并汉化
- 在线流程设计器activti modeler整合 activiti modeler在线流程设计器自定义代理人、候选人选择
- Activiti Modeler和业务系统整合
- activiti-modeler各种整合版本下载列表
- Spring boot整合activiti modeler 5.22
- Spring boot整合activiti modeler 5.22
- Activiti-Modeler
- 整合Activiti Modeler到业务系统(或BPM平台)
- Activiti Modeler 5.22.0整合到Spring项目
- Activiti Modeler 5.22.0整合到Spring项目
- activiti在线编辑器 关闭路径
- 【JAVA学习笔记】面向对象
- 对Android中Touch事件分发机制的理解和总结
- 让VS编译的Release版本程序在其他机器上顺利运行
- Android自动化测试框架目标
- isEqual
- activiti 5.19整合modeler在线编辑器
- 轻松制作GIF动画!教你玩转PS时间轴之5个小技巧篇
- UVA 11437 Triangle Fun 几何基础
- How do I write things in Swift?
- Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏
- 物流接口查询
- 玩转Android studio 插件开发、测试、JCenter库发布(1)
- Hbase原理、基本概念、基本架构
- 设计模式(Design Patterns)