JBPM4.4学习之四:JUEL表达式应用

EL表达式

EL 全名为ExpressionLanguage,EL 语法很简单,它最大的特点就是使用上很方便。在JBPM的jar包中,也提供了对EL表达式的支持。JUEL

在流程实例xml文件中有时候我们需要动态的指定一些数据,这时候我们就能用到JUEL了。

将实体数据动态绑定到流程定义文件。不会EL表达式的同学先自己补充一下EL的知识。

 

首先看一下流程定义文件中是如何写的。

<?xml version="1.0"encoding="UTF-8"?>

 

<process key="test"name="test" xmlns="http://jbpm.org/4.4/jpdl">

   <start g="255,35,48,48" name="start1">

      <transition g="-63,-25"name="提交到科长" to="科长审批"/>

   </start>

   <task assignee="${user.kezhang}"g="230,148,92,52" name="科长审批">

      <transition g="-63,-25"name="提交到主任" to="主任审批"/>

   </task>

   <task assignee="${user.zhuren}"g="233,263,92,52" name="主任审批">

      <transition g="-62,-25"name="通过" to="end1"/>

   </task>

   <end g="259,379,48,48" name="end1"/>

</process>

 

 

看一下代码中如何操作:

/**

          * 创建流程实例,动态赋值负责人

          */

         @Override

         public voidcreateInstance() {

                   super.startUp();

                   Map<String,Object> map= new HashMap<String,Object>();

                   User user = newUser();

                   user.setKezhang("张三");

                   user.setZhuren("李四");

                   map.put("user",user);

                  

                   ProcessInstanceprocessInstance = executionService.startProcessInstanceByKey("test",map);

                   print("流程实例ID",processInstance.getId());

         }

 

PS:在采用实体模型进行动态赋值时,必须序列化实体模型,即实现序列化接口Serializable,否则JBPM会抛出异常。

         JUEL表达式和EL表达式几乎没有什么区别,只要用过EL表达式就可以忽略此篇了。

你可能感兴趣的:(JBPM4.4学习之四:JUEL表达式应用)