Activiti一个流程的创建

在一个流程中API关系:
ProcessDefinition和Deployment是一对一关系
ProcessDefinition和ActivityImpl是一对多的关系
ProcessDefinition和ProcessInstance是一对一

ProcessInstance和Execution是一对多关系
Task和Rxecution是一对一关系
Execution和ActivityImpl是一对一关系

ProcessDefinition,Deployment,ActivityImpl规则相关
Task,Rxecution,ProcessInstance运行时流程相关


Activiti中三种不同的表单及其应用
动态表单:表单完全没有布局,所有的表单元素都是顺序输出显示在页面,需要在流程定义文件(bpmn20.xml)中用activiti:formProperty属性定义。可以在开始事件(Start Event)和Task上设置,而且支持变量自动替换,语法就是UEL。表单的内容都是以key和value的形式数据保存在引擎表中!!!
引擎已经自动绑定在一起了,不需要额外配置。

外置表单:
这种方式常用于基于工作流平台开发的方式,代码写的很少,开发人员只要把表单内容写好保存到.form文件中即可然后配置每个节点需要的表单名称(form key),实际运行时通过引擎提供的API读取Task对应的form内容输出到页面。如果节点没有业务的大量改动就可以考虑使用。
当流程需要一些特殊处理时可以借助Listener或者Delegate方式实现。
和业务关联是可选的,提供的例子中是没有和业务关联的,如果需要关联只需要在提交StartForm的时候设置businessKey即可。

普通表单
常用于业务比较复杂的系统中,或者业务比较固定不变的需求中
普通表单的特点是把表单的内容存放在一个页面(jsp、jsf、html等)文件中,存放方式也有两种(一体式、分离式)
和第二种外置表单类似,但是表单的显示、表单字段值填充均由开发人员写代码实现。

猜你喜欢

转载自janle.iteye.com/blog/2238564