当前所在位置: 首页 >BPM教程 >正文

返回列表页

屏幕流

时间:2012-08-20分类栏目:BPM工具作者:佚名

1. 关于本章

简介:

本章讲述了如何设计在流程中为最终用户执行交互活动的复杂屏幕活动。

目标:

理解屏幕流的目的和优势。

以建立一个屏幕流并将它关联到流程的一个活动中。

屏幕流中传递和提取变量。

为屏幕流中的具体任务设计最终用户的使用界面。

使用debugger测试屏幕流。

任务:

1) 创建一个新的屏幕流

2) 屏幕流的变量影射

3) 设计具体的屏幕流

4) 对具体的任务指定界面展示方式

5) 调试屏幕流

6) 使用Work Portal 调式屏幕流

使用屏幕流的优势:

screenflow

如上图所示,我们创建了:

 一个流程

 传入到流程中的变量(Input Argument Variables)

 贯穿流程的变量(Instance Variables)

 在Create Order活动中的Input 表达式来产生界面以收集最终用户输入的Order信息。

其中的Input 表达式如下所示:

screenflow

通过以上的语句我们可以简单而快速的为最终用户创建初始化的录入原型。但是通常情况下用户的交互活动需要包含一系列的屏幕画面。这些画面的顺序取决于用户在这些顺序弹出的画面中用户所做出的选择。使用以上的Input语句代码我们可以开发交互活动的屏幕画面,但是这样的做法有如下两个缺点。

第一:这种类型的语句的编写不是可视化的开发方式。没有可视化的编写方式就意味着这些屏幕画面的维护会非常困难同时需要额外的调试工作。所以可视化的方式对于用户设计交互活动的屏幕是非常有用的,将大大提高方便性。

第二:通过 Input语法的方式将占用一个BPM 引擎的线程,当登录到引擎服务器的用户数不是很多的情况下这还不是一个严重的问题。随着成百成千的用户的登录并执行一系列的Input语句这将导致性能严重下降。而屏幕流的设计方式为当用户完成了一个屏幕后就将释放相关的线程。所以在生产环境中屏幕流的设计方式是我们说推荐的。

2.任务一:创建一个屏幕流

screenflow

在Review Order活动中我们需要为用户关联一系列的屏幕画面并且这些画面的顺序取决于用户所做的选择。

1. 右击 Review Order 活动.

2. 在弹出窗口中选择Main Task.

screenflow

3. 修改 Implementation Type 的 "Method" 为 "Screenflow".

screenflow

4.在本项目中我们还没有现成的屏幕流程,所以需要点击New 按钮。

screenflow

5. 如下图所示:给这个新的屏幕流命名为: "Review the Order Screens".

screenflow

6. 点击 Next 按钮

将自动生成输入和输出的变量

7. 如下的模板展示了那些我们需要传递到屏幕流的变量信息及从屏幕流中返回到主流程的变量信息。

screenflow

下拉卷轴并为order的实例变量核对 in 和 out 的复选框 ,在out 列中选中系统内置的 result 变量。从屏幕流中返回预定义的result 变量是最简单的返回值到主流程的一种方法。这个取决于屏幕流中所发生的改变的值可以稍后用于主流程的条件转化节点中去。

8.点击 Next 按钮然后点击 Finish button.

3. 任务二:屏幕流的变量映射

实际上我们并不需要改变任何的变量映射,因为在上一步骤中系统从多选框中自动为我们创建了所有映射,但是我们需要知道这些信息是如何传递到屏幕流中的。

查看"Review Order"活动的参数映射情况,包括了传入到屏幕流的内容和从屏幕流返回的结果。

1.点击 Argument Mapping 按钮查看信息是如何发送到屏幕流及从屏幕流返回信息。

2. 在左上角的,点击"Review the Order Screens In."

screenflow

这里是系统自动为屏幕流生成的映射,下面展示了"Order"对象是如何从主流程传递到屏幕流中的。

screenflow

screenflow

3. 在左上角,点击Review the Order Screens Out.

screenflow

这里是自动产生的从屏幕流返回的变量,下面展示了Order对象及预定义的result变量如何在屏幕流结束后传递回主流程。

screenflow

4. 在Argument Mapping 对话框点击 OK 按钮

5. 在Main Task对话框点击OK 按钮

打开屏幕流

6.在左上角展开的项目中,注意到我们新建的叫Review the Order Screens.的屏幕流。

screenflow

7. 双击Review the Order Screens 打开新建的屏幕流。

screenflow

屏幕流中的Begin 和 End 活动的参数映射

8. 双击屏幕流的 Begin 活动.注意 order 对象已经自动的被传递到屏幕流中了。下图中的Instance 变量是屏幕流中所用到的。

screenflow

screenflow

9.在已存在的屏幕流的Begin 参数银色界面,点击OK按钮,双击屏幕流中的End任务,这是自动生成的从屏幕流返回信息的映射。以下展示了order 对象实例变量和预定义的 result 变量如何在屏幕流结束后传递会主流程。

screenflow

4. 任务三:设计具体的屏幕流

在本任务中我们将设计用户在交互活动中所使用的一系列的屏幕流。我们将指定这些展现的的屏幕的顺序及可以改变这些顺序的条件。

1.在工具条中,点击 Interactive Component Call 屏幕流 。

2.在Begin 和 End 节点间插入此任务。

screenflow

3. 将此任务命名为 "Display the Order Information"。

4. 点击OK 按钮。

在屏幕流中增加一个条件转移。

5.某种情况下,用户会审批通过订单,如果审批通过屏幕流将跳转到End节点。如果用户拒绝此订单,就需要增加一个条件转移来处理此任务。首先增加另外一个Interactive Component Call 任务,在增加的过程中按住Control键,以避免系统自动将此任务加入到高亮显示的线路中。

6. 命名这个新建的任务为"Provide Rejection Reason"。

7. 点击OK 按钮。

screenflow

8增加 一个从Display the Order Information到Provide Rejection Reason条件转移。将此条件转移命名为"Reject"。

screenflow

9.Order是否被拒绝我们通过Order.status来决定。最终用户将"Display the Order Information"活动中设置status变量值为"Rejected"通过点击Properties标签来增加此条件转移的逻辑。

10. 增加如下的逻辑

screenflow

11. 点击 OK.

12. 增加一个从Provide Rejection Reason到End节点的无条件转移。

screenflow

5. 任务四:为屏幕流任务增加Presentation对象

首先我们回顾下在前面几章中我们导入的Order对象。展开项目的目录 Order Information模块。

screenflow

我们可以看到在OrderInformation中已经内置了两个Presentation。

screenflow

在接下去的步骤中,我们学习如何将这两个Presentations与屏幕流中的两个 Interactive Component Call 任务关联在一起。

1. 双击屏幕流中的Display the Order Information 任务。

2. 设置 Implementation type 为BPM Object Interactive Call.

screenflow

3. 在选择 BPM Object variable 下拉框中选择 order 变量。

screenflow

4. 如下图所示:选中Use BPM Object Presentation 单选纽,并选择DetailOrder的Presentation。

screenflow

5. 点OK按钮

6. 重复上面的步骤为Provide Rejection Reason设置RejctionReason的Presentaion

6. 任务五:调试屏幕流

屏幕流的一个优势就在于我们可以在屏幕流的图形层面进行调试。这就意味着介入很多界面的流程可以在同一时间被调试。

1.在运行调试工作前,屏幕流首先必须是要检查通过。在stduio工具条中点击check ,在继续开始前,修正可能碰到的问题。 To be able to run the debugger, the Screenflow must first check ok. From Studio's toolbar, click the check. Correct any problems you might have before continuing.

2. 确定屏幕流处于项目面板的当前位置,点击 进行调试。

3. 接下去我们将看到order 对象的 DetailOrder 的presentation。

screenflow

4.注意:设置下拉框的Status为Rejected并点击Submit按钮。(这样我们将看到RejectionReason的Presentation)

5. 设置Status为 Rejected之外的其他值,查看说看到的Presentation。

7. 任务六:在workportal中测试屏幕流

1. 保存项目, 发布并运行项目(Run ->Publish and deploy)。 启动workportal并登录。

2. 创建一个行的流程实例(Application ->Create Order).

3. 要执行Review Order,点击下面所示的Process Instance

screenflow

4. 接下去将展示屏幕流

screenflow

5. 这个界面的显示因为我们调用了屏幕流中的Display the Order Information.

screenflow

点击Submit按钮将流程实例从 Display the Order Information 到 End 任务。

6. 如下面所示:流程的实例已经从 Review Order 到 Check Inventory 活动。

screenflow

7. 点击 Process Instance 执行 Check Inventory活动。.如果在屏幕流的Order Detail界面中我们选择了除 "Backorder Product(s)" 之外的状态,流程实例将发送到Check Freight 活动。

screenflow

建立一个新的流程实例,并发送到屏幕流中的Review Order步骤,选择status为"Backorder Product(s)"。流程实例将走到Order Product 活动。

screenflow

文章来源:
上一篇:合并/拆分下一篇:浅谈流程成熟模型(BPMM)及应用