码迷,mamicode.com
首页 > 其他好文 > 详细

流程任务-手工/接收/邮件任务

时间:2014-12-10 01:46:17      阅读:1179      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   使用   sp   on   

  BPMN中支持send task/receive task/manual task和business rule task 任务。send task主要为email  task 和 mule task ,而business rule task 主要是JBoss的Drools规则引擎。

1.手工任务和接收任务

  手工任务即不需要任何程序或流程引擎驱动,会自动执行的任务。流程到达该任务时,简单记录下流程历史数据,会自动离开。

  接收任务需要等待外界通知后,流程才可以继续向前执行,通知需要使用RuntimeService的sinal方法。

<!--手动任务-->
<manualTask id="manualtask1" name="Manual Task"></manualTask>
<!--接收任务-->
<receiveTask id="receivetask1" name="Receive Task"></receiveTask>
// 启动流程
ProcessInstance pi = runtimeService.startProcessInstanceByKey("process1");
// 查询当前任务
List<Task> tasks = taskService.createTaskQuery().list();
System.out.println("执行手工任务之后、接收任务之前的任务数量:" + tasks.size()); //0
List<ProcessInstance> pis = runtimeService.createProcessInstanceQuery().list(); //1
System.out.println("执行手工任务之后、接收任务之前的流程实例数量:" + pis.size());
// 让流程向前执行
runtimeService.signal(pi.getId());
// 查询流程
pis = runtimeService.createProcessInstanceQuery().list(); //0

2.邮件任务

  执行类为ActivitiBehavior,对应实现类MailActivitiBehavior。

<sendTask id="mailtask1" name="Mail Task" activiti:type="mail">
    <extensionElements>
        <activiti:field name="from" stringValue="发件人地址" />
        <activiti:field name="to"
            stringValue="收件人地址" />
        <activiti:field name="subject" stringValue="test" />
        <activiti:field name="html">
            <activiti:expression>
                <![CDATA[
                  <html>
                    <body>
                      <table border="1">
                        <tr><td>name</td>
                            <td>age</td>
                        </tr>
                      </table>
                    </body>
                  </html>
                ]]>
            </activiti:expression>
        </activiti:field>
    </extensionElements>
</sendTask>

还需要提供邮件服务器的配置信息:

    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!--jdbc配置省略-->
        <property name="mailServerHost" value="smtp.163.com"></property>
        <property name="mailServerPort" value="25"></property>
        <property name="mailServerUsername" value="你的163邮箱用户名"></property>
        <property name="mailServerPassword" value="你的邮箱密码"></property>
    </bean>

在流程到达该任务时会自动根据配置发送邮件。

//ProcessInstance pi = runtimeService.startProcessInstanceByKey("process1");

 

--学习来自: 疯狂workflow讲义

流程任务-手工/接收/邮件任务

标签:style   blog   io   ar   color   os   使用   sp   on   

原文地址:http://www.cnblogs.com/baidu-google/p/4154525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!