JBPM进阶篇 一: 发布并改进JBPM demo websale 工作流

JBPM进阶篇 一: 发布并改进JBPM demo websale  工作流

  在前面一篇文章  在Tomcat和Mysql下部署JBPM 3.2.2
中 我们讨论了如何在tomcat和mysql中部署JBPM web-console环境,但是当我们使用

http://localhost:8080/jbpm-console
来访问时候, 可以发现里面还没有发布任何工作流. 在这一篇文章中我们就来看看如

何发布JBPM demo中的websale工作流. 并利用该demo来学习下如何与工作流交互.

发布websale工作流

要发布JBPM工作流可以有多种方式,如 通过gpd(流程设计器)发布,也可以通过编程的

方式发布(JBPM很多测试代码都是通过这种方式的,请参考/jbpm-jpdl-3.2.2/examples

中的测试代码), 当然了还有一种更简单的方式,通过web-console来发布, 既然我们已

经部署好了web-console为什么不试一下呢. 下面我们就通过web-console来发布

websale工作流.
打开http://localhost:8080/jbpm-console, 用manager用户登陆,如果你登陆遇到了

问题,请参考 在Tomcat和Mysql下部署JBPM 3.2.2
点击 Processes 菜单,你将看到在左边的菜单中有个Actions菜单,Actions下面有个

Deploy a new process, 点击 Deploy来部署我们的工作流. 选择 E:/jbpm-jpdl-

3.2.2/examples/websale/target/websale.jpdl 然后点击Deploy按钮, 你就看到一个

蓝色的提示信息 New process deployed. ok 我们的工作流已经部署成功了.

说明: websale.jpdl文件为JBPM工作流文档包,与jar java库文件打包格式一样(zip格

式,可以使用winrar查看里面的内容),里面包涵了工作流的定义文件.

使用工作流

部署成功后,使用右上角的logout按钮退出,使用user用户登陆.
登陆后可以看到 ProcessTasks可用. Processes下面只有websale 流程(我们刚刚

发布的) ,Tasks下面没人任何tasks. 如下图:

user login
点击 examine 会发现没有 Process Instances 存在,点击Tasks也是空的,这是应为我

们还没有创建流程呢. 点击Process Image 可以看到该流程的一个流程图.

现在 点击  Start a new instance of this process 来创建一个流程.

然后点击 Examine 来输入订单的详细信息
有3项输入内容:
Item: 
Quantity: 
Address:
和2二个按钮 Save 和 Evaluate, Save按钮只是保存信息 并不是流程前进到下一个状

态. Evaluate 保存同时是流程前进到下一个状态. 

点击Evaluate.然后是一个输入评论的页面, 这一步骤是可选的.

然后流程转到下一个状态, 下一个状态是由Manager来处理的. 现在我们就logout 使

用Manager登陆. 登陆后点击Tasks, 可以看到 有个任务 Evaluate web order 等待你

来处理.

点击 Examine  我们就来到该任务的详细信息页面, 信息下面有一些我们可以执行的

动作 (Save ,OK ,More Info Needed).

这里我们先不做操作, 来看下 Tomcat启动窗口. 我们可以看到一个循环的消息信息
2007-11-22 14:00:20 org.jbpm.websale.RemindActor execute
信息: ###############################################
2007-11-22 14:00:20 org.jbpm.websale.RemindActor execute
信息: ### manager, task 'Evaluate web order' is waiting for you.
2007-11-22 14:00:20 org.jbpm.websale.RemindActor execute
信息: ###############################################


该信息会周期性的出现. 这是由于在流程中配置了 jPDL Timer Action ,我们再后面

来讨论该 Timer的实现.

我们发现我们不卖空调. 该订单不能生效,需要客户修改, 我们点击左边 Views中的

Comments连接.来添加一个消息给客户 点击 Save按钮.

然后点击 左边Views中的 Transitions连接. 可以看到这里有2个可以执行的动作, 由

于我们需要客户程序下定单,所以我们选择  More info needed transition, 点你End

Task.

现在流程又回到了 客户那里, 现在我们logout, 使用 user用户登陆.

登陆后 点击 Tasks连接, 可以看到一个Fix web order data 任务等待我们处理, 点

击Examine, 然后修改我们的订单信息 点击Evaluate按钮.

再logout 使用Manager登陆, 点击Tasks连接. 查看Evaluate web order任务, 可以看

到更新后的订单信息. 点击ok按钮 接受该订单.

我们现在来看看在流程图上流程到那里了, 点击Processes 连接, 然后点击websale

流程的Examine连接. 可以看到一个状态为 Running 的流程, 点击 Examine. 然后点

击左边Views中的 Process Image 连接. 可以看到该流程图

通过流程图上的连接也可以是流程继续下去. 流程的操作就是这样了.

改进websale流程


下面我们来看看该流程的实现代码并做些改进. 实现我们来安装gpd(E:/jbpm-jpdl-

3.2.2/designer) , 安装好后启动Eclipse.

在首选项中的 JBoss jBPM 下的 Runtime Locations中设置我们的运行环境(E:/jbpm

-jpdl-3.2.2)
然后使用gpd创建一个Process Project. 创建成功后. 我们来导入E:/jbpm-jpdl-

3.2.2/examples/websale项目. 选择File -> Import... ,然后选择 File System选项

.

导入后 我们来看看该流程 在gpd中的显示. 打开src/main/jpdl 下面的

processdefinition.xml文件, 可以看到该流程在gpd中的图像显示.

 

下面我们来做一点改进. 当订单到达的时候, 我们希望得到通知. JPBM3.2支持Email

通知, 我们可以配置当订单到达的时候 发送一个Email给我们,这是个不错的好主意.

Email通知实现:
选择Evaluate web order 任务节点 ,在Properties属性中 选择Events 属性页, 点击

右键添加一个Events.
newevent.jpg

在event-type中选择node-enter.
右键点击 node-enter可以创建一个 Email任务. 这里我们使用直接编辑源代码的方式

.

点击gpd的source tab来编辑源代码. 在node-enter中添加如下代码:
         <mail name="mailIt" actors="buyer" to="micah@localhost">
          <subject>We got an order!</subject>
          <text>#{buyer} just ordered #{quantity} #{item}.  We're

making money!</text>
         </mail>

注意上面的实现使用了JBPM的el表达式. 配置好Email信息,我们就可以发布流程了
 

在上面我们还可以看到如下的timer定义:
     <timer duedate="20 seconds" repeat="10 seconds">
        <action class="org.jbpm.websale.RemindActor">
          <swimlaneName>salesman</swimlaneName>
        </action>
      </timer>

这就是我们在前面看到的tomcat 控制台输入的周期性信息. 查看

org.jbpm.websale.RemindActor类可以看到 其实现只是输入我们看到的信息.

流程发布

点击流程设计器上面的Deployment 页, 设置发布的服务器配置, 点击Test

Connection... 来测试连接是否正常, 然后就可以点击Deploy Process Archive...

来发布了, 发布成功后可以看到提示信息.


然后再次登陆 http://localhost:8080/jbpm-console, 就可以看到现在已经有2个流

程了.其中一个是我们刚刚发布的流程.

参考资料:
http://wiki.jboss.org/wiki/Wiki.jsp?page=JbpmGettingStarted 本文只是按照上面的说明做简单翻译,
这里还讲述了如何添加一个新的任务到当前流程中. 有兴趣的可以去看看

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值