三. 工作流设计
1. 创建业务过程模板及模板定义
1.1 创建模板
右键单击树状面板中的结点,从弹出菜单中选择[Create Template],输入以下属性
|
属性
|
值
|
| Name |
出库单审核流程 |
| Organizations |
BSharp |
1.2 创建模板定义:
展开结点,右键单击刚才创建的<出库单审核流程>模板,从弹出菜单中选择[Create Template Definition],使用默认值。
2. 激活并打开当前模板定义
2.1 激活模板定义
展开<出库单审核流程>结点,右键单击刚才创建的模板定义,在弹出对话框中设置以下属性
|
属性
|
值
|
| Workflow Label |
"单张审核流程" |
| Active |
|
2.2 打开模板定义
右键单击模板定义结点,从弹出菜单中选择[Open],打开该模板定义的工作流设计区,它包含一个设计工具栏,如图3-1所示
图 3-1
图 3-2
接下来,我们要按照本文的业务需求对它进行一些修改和补充。
3. 设计工作流
3.1 右键单击模板定义下的子结点,从弹出菜单中选择[Create Variable],定义以下变量
|
变量
|
类型
|
说明
|
| outAmount |
Integer |
出库数量 |
| balanceAmount |
Integer |
库存余额 |
| inventoryObj |
Session EJB |
库存组件 |
| itemID |
Integer |
物料序号 |
3.2 右击[Start]和[Task1]之间的连接线,从弹出菜单中选择[Delete Connection],删除连接线,用同样的方法删除[Task1]和[Done]之间的连接线。
3.3 右击Task1结点,从弹出菜单中选择[Properties],此时会弹出任务属性对话框,如图3-3所示
图 3-3
在域中填入 Check Inventory ,单击[OK],保存设置。
3.4 在工作区中,新增三个[Task]结点,一个[Decision]结点,一个[Or Join]结点,如图3-4所示
注:操作方法很简单,左键单击工具栏上的指定结点,然后移动到工作区中的某一位置,再次单击左键就可以完成该结点的新增操作。
图 3-4
3.5 按步骤3.3的方法重命名,,,如下表所示
|
命名前
|
命名后
|
| Task2 |
Start Monitor Client |
| Task3 |
Send Warning to Client |
| Task4 |
Approve Tickets |
3.6 设置报警条件
右键单击C1判断结点,从弹出菜单中选择[Properites],此时会弹出条件属性对话框,在域中填入 <=
3.7 连接各个结点,形成一条完整的出库单审核工作流,如图3-5所示
3.7 现在,我们已经看到了一张完整的工作流图,但是目前它还不能运行,我们必须在各个结点进一步定义需要执行的活动。
3.7.1 设置[Start]结点
打开[Start]结点的属性对话框,在页中初始化我们定义的工作流变量,如下表所示
|
变量名
|
初始值
|
| outAmount |
120 |
| itemID |
1 |
3.7.2 设置[Start Monitor Client]结点
打开[Start Monitor Client]任务结点的属性对话框, 选中 Activated 页,单击[Add],此时会弹出一个添加动作对话框,如图3-6所示
3.7.3 设置[Check Inventory]结点
现在我们来定义库存检查任务的相关动作,操作方式和3.7.2类似,详细配置见下表
|
任务状态页
|
动作
|
动作对象
|
备注
|
| Activated |
Execute Task |
Check Inventory |
|
| Executed |
Peform Business Operation |
Create an instance of InventoryBean |
设为
inventoryObj
|
| Peform Business Operation |
Get the balance of inventory |
设为inventoryObj参数
的值设为 设为balanceAmount |
| Mark Task Done |
Check Inventory |
|
注意:此处的itemID仅用于客户端的提示信息,把它作为方法参数纯粹出于演示和语义完整的目的。
3.7.4 设置[Approve Tickets]结点
在这里,我们只是简单地把该任务标识为已经完成,表明该单据已被审核批准。
|
任务状态页
|
动作
|
动作对象
|
备注
|
| Activated |
Mark Task Done |
Approve Tickets |
|
3.7.5 设置[Send Warning to Client]结点
一旦库存不足,我们便向客户端发出一个警告,该任务的配置如下
|
任务状态页
|
动作
|
动作对象
|
备注
|
| Activated |
Execute Task |
Send Warning to Client |
|
| Executed |
Send XML to Client |
message-box |
库存报警 |
| Mark Task Done |
Send Warning to Client |
|
其中,是该任务的核心动作,它的属性对话框如图3-7所示

图 3-7
单击XML工具栏上的[Import]按钮,导入目录下的文件。工作流引擎将用它来通知worklist客户端。
3.8 右键单击工作区的任一空白区域,从弹出菜单中选择[Save],保存当前的模板定义。
至此,我们已经完成了所有的工作流设计工作。接下来,我们可以用WLI自带的worklist客户端来方便地对该流程作一个测试。
|