Activiti

Activiti
--------

1 下载
[url]http://www.activiti.org/download.html[/url]

2 安装
* 解压到任意目录
* 打开[b]readme.html[/b] 链接 [b]文档[/b] 和 [b][i]发行日志[/i][/b]
* 阅读 [b]userguide[/b] 用户指南 [u][b]docs/userguide/index.html[/b][/u] 快速入门

3 源码

4 前提
* JDK 1.6+
* Ant 1.8.1+
[url]http://ant.apache.org/bindownload.cgi[/url]
* Tomcat 6.0+
[url]http://tomcat.apache.org/download-70.cgi[/url]
* Eclipse Indigo/Juno
[url]http://www.eclipse.org/downloads/[/url]

5 问题列表
* 用户论坛
[url]http://forums.activiti.org/en/viewforum.php?f=3[/url]
* JIRA issue tracker
[url]http://jira.codehaus.org/browse/ACT[/url]

6 入门
1 JAVA_HOME 环境变量
2 复制 activiti-explorer.war 到 Tomcat 的 webapps 目录
3 启动 Tomcat 通过 startup.bat
4 访问流程浏览器应用: 启动流程, 分配任务, 查看/处理任务 ,管理流程引擎[url]http://localhost:8080/activiti-explorer[/url]
账号:
kermit/kermit
默认使用 H2 数据库.

默认连接配置位置:
Activiti Explorer 应用目录 WEB-INF/classes/db.properties

7 DEMO 账户
[b]UserId Password Roles[/b]
kermit kermit admin
gonzo gonzo manager
fozzie fozzie user

8 流程引擎
嵌入模式
独立模式

9 取消 DEMO 用户和组
Activiti Explorer 应用目录 WEB-INF/activiti-standalone-context.xml

10 配置
activiti.cfg.xml

11 Activiti API
Activiti 通过各种服务与流程引擎 ProcessEngine 交互,包括:

RuntimeService
RepositoryService
TaskService
ManagementService
IdentityService
HistoryService
FormService

12 部署流程
RepositoryService
|
*.bpmn20.xml
|
DB (流程定义KEY 流程实例 KEY)

13 启动流程
RuntimeService
|
(ProcessInstance KEY)
|
DB
|
TaskService 查看/启动/完成任务

14 挂起/恢复流程
流程定义挂起时不能创建流程实例

RepositoryService
|
流程定义KEY

15 查询API
TaskService

16 表达式
* 值表达式
${myBean.myProperty}
* 方法表达式
${myBean.addNewOrder('orderName')}

17 配置WEB 应用启动/关闭监听器来启动/关闭流程引擎


public class ProcessEnginesServletContextListener implements ServletContextListener {

public void contextInitialized(ServletContextEvent servletContextEvent) {
ProcessEngines.init();
}

public void contextDestroyed(ServletContextEvent servletContextEvent) {
ProcessEngines.destroy();
}

}



18 整合Spring

19 自动流程部署



<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
...
<property name="deploymentResources" value="classpath*:/org/activiti/spring/test/autodeployment/autodeploy.*.bpmn20.xml" />
</bean>

<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>



20 单元测试


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:org/activiti/spring/test/junit4/springTypicalUsageTest-context.xml")
public class MyBusinessProcessTest {

@Autowired
private RuntimeService runtimeService;

@Autowired
private TaskService taskService;

@Autowired
@Rule
public ActivitiRule activitiSpringRule;

@Test
@Deployment
public void simpleProcessTest() {
runtimeService.startProcessInstanceByKey("simpleProcess");
Task task = taskService.createTaskQuery().singleResult();
assertEquals("My Task", task.getName());

taskService.complete(task.getId());
assertEquals(0, runtimeService.createProcessInstanceQuery().count());

}
}





<bean id="activitiRule" class="org.activiti.engine.test.ActivitiRule">
<property name="processEngine" ref="processEngine" />
</bean>


21 流程图
*.png

22 流程版本

23 流程仓库
<definitions
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti="http://activiti.org/bpmn"
[b]targetNamespace="Examples"[/b]>

24 BPMN 2.0
如何定义一个流程


<definitions
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti="http://activiti.org/bpmn"
targetNamespace="Examples">

<process id="myProcess" name="My First Process">
..
</process>

</definitions>




25 表单
FormService
* 内置表单

表单属性: Map<String,String>
流程变量: Java Object

MAP <----------> Java Object

StartFormData(processDefinitionId)
TaskFormdata (taskId)

* 外部表单 自定义表单UI渲染
** 表单模板 打包到 *.bar 的 form/*-form.xml
** 关联任务
<userTask activiti:formKey=""
** 获取表单数据
FormService StartFormData/TaskFormdata
** 渲染表单
** 提交表单数据
FormService submitStartFormData

26 Eclipse Designer
[url]http://activiti.org/designer/update/[/url]
流程设计器

27 REST API
activiti-rest.war

28 示例


未完待续...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值