技术交流28群

服务热线

135-6963-3175

微信服务号

actviti之事件元素 更新时间 2016-5-22 浏览2106次

activiti中主要有开始启动事件StartEvent,结束事件EndEvent

用于一个流程的开始节点

开始启动事件的四种类型:1.空启动事件 2.定时启动事件 3.消息、信号启动事件 4.异常启动事件

StartEvent

TimerStartEvent

MessageStartEvent

SignalStartEvent

一、StartEvent面板介绍

1643205425311.png

1.General面板

1643205427036.png

Asynchronous :  是否异步(默认否)表示是否能被异步执行。

Exclusive    :   是否排他(默认是)表示同一个流程实例在同一时刻只能由一个人执行该步骤, 跟asynchronous互斥。

2.Main config主面板

1643205426637.png

Initiator:可以用来记录启动流程人的id(也可以是用户的名称)启动流程之后次属性指定的变量就会自动设置当前人的名称

Form key:可以用来指定空启动事件关联表单

3.Document面板

    文档说明

4.Form properties

表单属性

1643205424581.png

这里的监听器和流程的执行监听器是一样的。


                                                                                                       

1.空开始事件:空开始事件意味着没有指定启动流程实例的触发条件。                                                                            

2.消息开始事件:                                                                                                   

   仅在顶级流程上受支持。嵌入式子流程不支持消息启动事件。                                                                            

<message id="msg" name="msg"></message>                                                               
    <process>                                                                                             
       <startEvent id="sid-015F02BE-1F2C-4F71-9C0F-3530DF654D01" activiti:isInterrupting="false">         
         <messageEventDefinition messageRef="msg"></messageEventDefinition>                               
       </startEvent>                                                                                      
       ...                                                                                                
    </process>                                                                                            
    runtimeService.startProcessInstanceByMessage("msg");                                                  
    runtimeService.startProcessByMessage("abc");

信号开始事件:                                                                                                   

     类似一种广播模式                                                                                             

     一般由信号中间件或后台执行方法发出信号,ref里面有该信号的所有组件将接收到信号,开始执行                                                      

<signal id="Signal" name="SignalPTM"></signal>                                                      
      <process id="myProcess" name="My process" isExecutable="true">                                      
         <startEvent id="signalstartevent1" name="Signal start">                                          
           <signalEventDefinition signalRef="Signal"></signalEventDefinition>                             
         </startEvent>                                                                                    
         ....                                                                                             
      </process>

 3.定时器开始事件:                                                                                                  

        定时器开始事件当符合时间条件时触发。常用场景,例如:定时查看系统运行情况。                                                             

        场景:系统每五秒执行一次任务。                                                                                   

<startEvent id="sid-9C504F6F-3405-4549-AA58-AAE4D66EC7E7" activiti:isInterrupting="false">        
           <timerEventDefinition>                                                                         
               <timeCycle>0/5 * * * * ?</timeCycle>                                                       
           </timerEventDefinition>                                                                        
        </startEvent>

4.错误开始事件:                                                                                                   

        错误开始事件可以用来触发一个事件子流程。                                                                              

        错误启动组件只能放在事件子流程中使用                                                                                

        场景:检查端口占用情况                                                                                       

       当throw new BpmnError("error");

<startEvent id="sid-AB7EFCB2-C377-4A44-9C82-ACC740872D52" activiti:isInterrupting="false">      
             <errorEventDefinition errorRef="error"></errorEventDefinition>                               
</startEvent>

二、EndEvent

用于流程的结束

EndEvent

ErrorEndEvent

TerminateEndEvent

CancelEndEvent


持续更新