activiti工作流常用组件

activiti工作流常用组件
1.事件
1.1 timer事件定义
定时事件定义


    2011-03-11T12:13:14

时间段定义


    P10D

循环定义


    R3/PT10H

1.2 error事件定义


  

1.3 信号时间定义
//信号定义




    抛出信号事件
	
		信号事件定义
		
	
	
	捕获信号事件
	
		
	

运行期通知收到信号

RuntimeService.signalEventReceived(String signalName);//全局通知
RuntimeService.signalEventReceived(String signalName, String executionId);//单实例通知

1.4 message事件定义

  
  

  

    
    	
    
    ...
    
    	
    
    ...
  
  
  启动流程时指定消息
  ProcessInstance startProcessInstanceByMessage(String messageName);
ProcessInstance startProcessInstanceByMessage(String messageName, Map processVariables);
ProcessInstance startProcessInstanceByMessage(String messageName, String businessKey, Map processVariables);

运行时收到消息
void messageEventReceived(String messageName, String executionId);
void messageEventReceived(String messageName, String executionId, HashMap processVariables);

1.5 事件
startEvent 开始事件
endEvent 结束事件
boundaryEvent 附着在其他组件上的事件
intermediateCatchEvent 中间流程事件
intermediateThrowEvent 抛出事件
以上事件都可以内部嵌套不同的事件定义形成更广泛的事件

2.sequenceFlow 连线
用来连接不同的组件,可以配置过渡监听,条件等


  
     100 && order.price < 250}]]>
  

3.Gateways网关
3.1 Exclusive Gateway排他网关
该网关只会选择一条出口,如果有多个出口满足条件,选择定义靠前的
3.2 Parallel Gateway 并行网关
多个出口同时执行,运行时产生子执行实例,
在join时,等待所有流入连线到来,才会执行出口操作
3.3Inclusive Gateway兼容性网关
具有排他网关和并行网关特性,在出口时所有满足条件的出口都会产生子运行实例,
在join时所有上一步运行的子实例都到达时,执行出口操作

4.任务
4.1 User Task


List tasks = taskService.createTaskQuery().taskAssignee("kermit").list();
List tasks = taskService.createTaskQuery().taskCandidateUser("kermit");


4.2Java Service Task


委托给java类执行
public class ToUppercase implements JavaDelegate {

  public void execute(DelegateExecution execution) throws Exception {
    String var = (String) execution.getVariable("input");
    var = var.toUpperCase();
    execution.setVariable("input", var);
  }

}

字段注入,以及解析表达式:



  
    
      ${genderBean.getGenderString(gender)}
    
    
       Hello ${gender == 'male' ? 'Mr.' : 'Mrs.'} ${name}
    
  

你可能感兴趣的:(activiti工作流常用组件)