最新JBoss jBPM 3.1 开始指南之二---执行示例流程和管理执行中的流程

执行websale示例流程

    现在我们将使用示例web应用程序来执行部署在JBoss jBPM中的websale示例流程(如图3所示). 记住你自己的web应用程序可能和在此展示的示例相似, 也可能会提供完全不同的用户界面.

3. 部署在JBoss jBPM中的websale示例流程

    第一步登录. 选择用户列表中的”cookie monster”, 单击”login in”按钮, 页面跳转到此用户的主页(Home page), 如图4所示. 主页中有一个”Tasklist”任务列表(当前为空)和开始新流程列表”Start New Process Execution”(4). 请注意下面的开始新流程(Start New Process Execution)列表不仅包括开始流程链接(Start Process Link), 还显示流程名(Process)”websale”和版本号(Version)” 1”.

4. 包括任务列表(Tasklist)和开始新流程(Start New Process Execution)列表的主页

    单击“Create new web sale order”。web应用程序将调用Jboss jBPM创建一个新的websale流程实例。图5是任务页, 此页右边流程图中的红框说明流程进行到哪一步,左边供用户填写信息的表格。表格中的变量(itemquantityaddress)也是websale流程的流程变量。

5. 任务页,右边的流程图显示当前的流程步骤

    Item填入“cookie”,quantity填入“ 1 address置空。选择"Save and Close Task"完成任务。然后web应用程序将把输入的流程变量值通知Jboss jBPM以推动websale流程. JBoss jBPM审核流程的下一个状态, 决定由谁执行流程下一节点的任务. 页面转到home, 如图6所示.

6. 保存任务之后转到的Home

    注意此页中的提示信息”A new task has been assigned to ‘ernie’”, 有一个新的任务指派给了’ernie’”. 在任务指派给’ernie’的同时创建了一个计时器. 切换到控制台窗口, 窗口中也有一个给’ernie’的提示信息, 如图7所示. 这个计时器调用一个Java业务类发送email提示信息来执行其他业务功能.

7. JBoss jBPM控制台显示提示”ernie”有任务等待其处理的提示信息.

    让我们回到浏览器页面. 单击页面右上脚的” Login as another user”, 选择”ernie”, 单击”Login”登录.主页中的任务列表中显示有一个任务”evaluate web order”, 即审核web订单, 如图7所示.

7. 审核web订单的任务(两个图7, 呵呵)

    单击“evaluate web order”. 将显示任务页面, 如图8. 现在, “ernie”正在审核刚才输入的数据. 因为”address”地址栏为空, 所以”comment”栏输入”need address”, 再单击”more info needed”按钮.

8. 审核web订单的任务页

    Web应用程序通知JBoss jBPM沿着”more info needed”路径执行. JBoss jBPM将审核流程的下一节点 fix web order data”, 即确定web订单数据节点.下一个web页面是home, 其中信息提示有一个任务等待最初输入订单数据的“cookie monster”处理. 单击” Login as another user”, “cookie monster”身份登录. Home页显示” fix web order data”任务, 如图9所示.

9. 有一个” fix web order data”任务的home.

    选择” fix web order data”. 任务页显示” need address”的说明(comment). 输入一个地址, ” 123 main st”, 选择” save and close task”, 即保存结束任务.

10. ” fix web order data”任务的任务页

    Web应用程序通知JBoss jBPM使流程进入下一状态. 流程进入到” evaluate web order”节点并指派一个任务给“ernie”. 选择“Login as another user”, 选择“ernie”用户名登录. Home页显示” evaluate web order”任务. 选择此任务, 任务页显示更新后的数据, 如图11所示. 现在数据已经完整正确, 所以删除”comment”说明, 单击”ok”按钮.

11. 已输入地址的任务页.

    Web应用程序通知JBoss jBPM使流程沿着”ok”路径进行. 流程的下一节点是”fork”分支节点, 此节点无web交互, 仅仅在控制台窗口显示提示信息, 如图12所示.

12. JBoss jBPM控制台窗口中的信息.

    对支付(payment)分支, 下一节点是等待货款(wait for money), JBoss jBPM把任务指派给”bert”. 选择” login as another user”, ”bert”身份登录, 选择” wait for money”任务. 任务页显示一个新字段”money received”, 如图13所示. 输入” 23.00” , 选择” save and close task”.

13. “wait for money”的任务页

    Web应用程序通知JBoss jBPM使流程向前进入下一状态. JBoss jBPM决定流程进入下一节点” update books”. 此节点和web应用程序没有交互, 它只是在控制台窗口显示信息, 如图14所示.

14. JBoss jBPM控制台显示”updating the accounting books”信息

    流程继续向前进行, 在这个点上“fork”的两个分支都已经完成, 所以下一状态是结束(end)状态. Web应用程序Home页的信息”The process has finished”说明流程已经结束, 如图15所示.

15. Home页显示流程已结束.

管理正在执行的流程

    到目前为止, 我们已经通过web应用程序和JBoss jBPM交互创建了一个流程示例, 填入流程变量和通知流程以使其流动直到流程结束. 现在我们来看看执行中的流程并以管理员(administrator)的身份使其流动. 首先, 我们需要正在执行的一个流程实例. 所以, 我们将重复刚才的部分步骤:

*       “cookie monster”身份创建一个websale订单, item输入”candy”. 下一任务将指派给“ernie”.

*       “ernie” 身份审核web订单, 选择 “more info needed”. 下一任务将等待“cookie monster”处理.

*       “cookie monster”身份添加address, 确定web订单, 下一任务将等待“ernie”处理.

    现在有一个等待“ernie”审核的流程. 我们假设“ernie”不能执行此任务. 那么现在我们如何让流程继续流动呢? 选择页面左边导航栏的监视(Monitoring), 显示Monitoring, 见图16.

16. 监视搜索页

    在此页中我们可以查找所有的流程实例, 通过流程变量查找流程实例, 或者通过id找到特定实例. 单击“Process Definitions List” , 可以看到部署在JBoss jBPM的所有流程.

17. 流程定义列表页

    单击”instances”列的” 2” , 可以看到websale流程实例的列表, 见图18.

18. 流程实例列表页

    列表中是我们刚创建的两个流程. 第一个是已经完成的流程所以有结束日期(end date). 第二个正等待ernie处理所以没有结束日期. 单击id列的” 2” , 就可以看到流程实例的详细信息页, 见图19和图20.

19. 流程实例详细信息页顶部.

20. 流程实例详细信息页底部.

    在此页我们可以看到:

*       作为部分流程实例的已被创建任务

*       与流程实例相关的流程变量

*       流程实例的令牌(tokens) , 这些令牌表明当前流程执行到哪一步

*       流程和当前流程所在节点的图形化表示.

    既然”ernie”不能执行任务, 我们自己让流程继续. 单击任务列表中第三行中的“End Task”. 此节点有很多变迁(transitions), 所以单击“End Task”后出现可用的变迁列表页.

21. 可用的变迁页.

    既然订单数据正确, 单击列表第一行最后一项的”select”, 出现流程实例详细信息页,见图22和图23.

22. 流程实例详细信息页顶部.

23. 流程实例详细信息页底部.

    注意现在有一个等待”bert”处理的新任务, fork节点的每一个分支都有两个新的令牌(token). 现在流程已准备好, 等待”bert”进入结束它. 发现流程实例的另一种方式是通过流程变量查找. 单击页面左边菜单上的”Monitoring”标签, 再单击” Search Process Instances”, 将出现查找流程实例页, 见图24.

24. 查找流程实例页.

    变量名(variable name)输入”item”, 变量值(variable value)输入”cookie”. 流程实例详细信息页将显示满足条件的流程实例信息, 见图25. 如果有多个流程实例满足条件, 将出现流程实例列表页显示所有的流程实例.

25. item变量值为”cookie”的流程实例详细信息页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值