Activiti学习笔记
- - 企业架构 - ITeye博客第一个Activiti的HelloWorld. 获取核心ProcessEngine对象 2. 根据需求,获取对应的服务实例 3. 使用服务方法,做事情
*
* @author Administrator
*
*/
public class HelloWorld {. // 加载核心API ProcessEngine.
ACTIVITI 学习笔记 - 监听
1.事件监听
所有分发的事件都是org.activiti.engine.delegate.event.ActivitiEvent的子类。
ENGINE_CREATED | 监听器监听的流程引擎已经创建完毕,并准备好接受API调用。 | org.activiti...ActivitiEvent |
ENGINE_CLOSED | 监听器监听的流程引擎已经关闭,不再接受API调用。 | org.activiti...ActivitiEvent |
ENTITY_CREATED | 创建了一个新实体。实体包含在事件中。 | org.activiti...ActivitiEntityEvent |
ENTITY_INITIALIZED | 创建了一个新实体,初始化也完成了。如果这个实体的创建会包含子实体的创建,这个事件会在子实体都创建/初始化完成后被触发,这是与 ENTITY_CREATED 的区别。 |
org.activiti...ActivitiEntityEvent |
ENTITY_UPDATED | 更新了已存在的实体。实体包含在事件中。 | org.activiti...ActivitiEntityEvent |
ENTITY_DELETED | 删除了已存在的实体。实体包含在事件中。 | org.activiti...ActivitiEntityEvent |
ENTITY_SUSPENDED | 暂停了已存在的实体。实体包含在事件中。会被ProcessDefinitions, ProcessInstances 和 Tasks抛出。 | org.activiti...ActivitiEntityEvent |
ENTITY_ACTIVATED | 激活了已存在的实体,实体包含在事件中。会被ProcessDefinitions, ProcessInstances 和 Tasks抛出。 | org.activiti...ActivitiEntityEvent |
JOB_EXECUTION_SUCCESS | 作业执行成功。job包含在事件中。 | org.activiti...ActivitiEntityEvent |
JOB_EXECUTION_FAILURE | 作业执行失败。作业和异常信息包含在事件中。 |
org.activiti...ActivitiEntityEvent and org.activiti...ActivitiExceptionEvent
|
JOB_RETRIES_DECREMENTED | 因为作业执行失败,导致重试次数减少。作业包含在事件中。 | org.activiti...ActivitiEntityEvent |
TIMER_FIRED | 触发了定时器。job包含在事件中。 | org.activiti...ActivitiEntityEvent |
JOB_CANCELED | 取消了一个作业。事件包含取消的作业。作业可以通过API调用取消, 任务完成后对应的边界定时器也会取消,在新流程定义发布时也会取消。 | org.activiti...ActivitiEntityEvent |
ACTIVITY_STARTED | 一个节点开始执行 | org.activiti...ActivitiActivityEvent |
ACTIVITY_COMPLETED | 一个节点成功结束 | org.activiti...ActivitiActivityEvent |
ACTIVITY_SIGNALED | 一个节点收到了一个信号 | org.activiti...ActivitiSignalEvent |
ACTIVITY_MESSAGE_RECEIVED | 一个节点收到了一个消息。在节点收到消息之前触发。收到后,会触发 ACTIVITY_SIGNAL 或 ACTIVITY_STARTED ,这会根据节点的类型(边界事件,事件子流程开始事件) |
org.activiti...ActivitiMessageEvent |
ACTIVITY_ERROR_RECEIVED | 一个节点收到了一个错误事件。在节点实际处理错误之前触发。 事件的 activityId 对应着处理错误的节点。 这个事件后续会是 ACTIVITY_SIGNALLED 或 ACTIVITY_COMPLETE , 如果错误发送成功的话。 |
org.activiti...ActivitiErrorEvent |
UNCAUGHT_BPMN_ERROR | 抛出了未捕获的BPMN错误。流程没有提供针对这个错误的处理器。 事件的 activityId 为空。 |
org.activiti...ActivitiErrorEvent |
ACTIVITY_COMPENSATE | 一个节点将要被补偿。事件包含了将要执行补偿的节点id。 | org.activiti...ActivitiActivityEvent |
VARIABLE_CREATED | 创建了一个变量。事件包含变量名,变量值和对应的分支或任务(如果存在)。 | org.activiti...ActivitiVariableEvent |
VARIABLE_UPDATED | 更新了一个变量。事件包含变量名,变量值和对应的分支或任务(如果存在)。 | org.activiti...ActivitiVariableEvent |
VARIABLE_DELETED | 删除了一个变量。事件包含变量名,变量值和对应的分支或任务(如果存在)。 | org.activiti...ActivitiVariableEvent |
TASK_ASSIGNED | 任务被分配给了一个人员。事件包含任务。 | org.activiti...ActivitiEntityEvent |
TASK_CREATED | 创建了新任务。它位于 ENTITY_CREATE 事件之后。当任务是由流程创建时, 这个事件会在TaskListener执行之前被执行。 |
org.activiti...ActivitiEntityEvent |
TASK_COMPLETED | 任务被完成了。它会在 ENTITY_DELETE 事件之前触发。当任务是流程一部分时,事件会在流程继续运行之前, 后续事件将是 ACTIVITY_COMPLETE ,对应着完成任务的节点。 |
org.activiti...ActivitiEntityEvent |
TASK_TIMEOUT | 任务已超时,在 TIMER_FIRED 事件之后,会触发用户任务的超时事件, 当这个任务分配了一个定时器的时候。 |
org.activiti...ActivitiEntityEvent |
PROCESS_COMPLETED | 流程已结束。在最后一个节点的 ACTIVITY_COMPLETED 事件之后触发。 当流程到达的状态,没有任何后续连线时, 流程就会结束。 |
org.activiti...ActivitiEntityEvent |
MEMBERSHIP_CREATED | 用户被添加到一个组里。事件包含了用户和组的id。 | org.activiti...ActivitiMembershipEvent |
MEMBERSHIP_DELETED | 用户被从一个组中删除。事件包含了用户和组的id。 | org.activiti...ActivitiMembershipEvent |
MEMBERSHIPS_DELETED | 所有成员被从一个组中删除。在成员删除之前触发这个事件,所以他们都是可以访问的。 因为性能方面的考虑,不会为每个成员触发单独的 MEMBERSHIP_DELETED 事件。 |
org.activiti...ActivitiMembershipEvent |
监听接口org.activiti.engine.delegate.event.ActivitiEventListener
添加监听实现
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> ... <property name="eventListeners"> <list> <bean class="org.activiti.engine.example.MyEventListener" /> </list> </property> </bean>
监听特殊事件
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> ... <property name="typedEventListeners"> <map> <entry key="JOB_EXECUTION_SUCCESS,JOB_EXECUTION_FAILURE" > <list> <bean class="org.activiti.engine.example.MyJobEventListener" /> </list> </entry> </map> </property> </bean>
运行阶段添加监听,通过RuntimeService(API)方式添加。注意,运行时添加的监听引擎重启后失效。