前页 | 后页 |
错误事件
当中间错误事件连接到活动的边界时,它就成为异常流的一部分。当令牌导致在正常流程中引发故障名称时触发该事件,并进入错误结束事件。
创建 BPMN模型
创建主进程
- 创建一个开始事件s1
- 添加一个序列到一个目标活动元素subProcess1;放大活动并右键单击,选择“是展开的”选项,然后打开“属性”对话框并将“类型”设置为“子进程”
- 将序列流添加到目标结束事件元素e1 ('类型'设置为'无')
- 创建三个中间事件,将元素从工具箱边界;从即时菜单中选择“边缘安装”和“错误”:
- error_ie_fault1 ;将序列流添加到目标 EndEvent元素e2 (“类型”设置为“无”)
- error_ie_fault2 ;将序列流添加到目标 EndEvent 元素e3 ('类型'设置为'无')
- error_ie_default ;将序列流添加到目标 EndEvent elemenr e4 ('类型'设置为'无')
创建子流程
在subProcess1活动中:
- 创建一个开始事件s2 , 'Standalone' 并将 '类型' 设置为 'None'
- 为目标网关元素创建一个序列,设置为“独占”,名称为“ 40,10,20,30 Probabilities”
- 对类型为'abstractTask'的四个目标Activiy元素创建序列流,称为:
- Task1 ,并将序列流添加到名为normal_end的目标 EndEvent ,“类型”设置为“无”
- Task2 ,并将序列流添加到名为error_end_fault1 的目标 EndEvent 中,“类型”设置为“错误”
- Task3 ,并将序列流添加到名为error_end_fault2 的目标 EndEvent 中, “类型”设置为“错误”
- Task4 ,并将序列流添加到名为error_end_default 的目标 EndEvent 中, “类型”设置为
'错误'
创建 BPMN2.0::Error 元素
创建错误元素Fault1和Fault2 ,它们将被事件用作错误代码。
- 双击error_end_fault1元素,在“属性”对话框的“BPMN2.0”选项卡中,找到“errorRef”标签
- 在“值”字段中,单击按钮并浏览到包含此模型的包
- 单击“加新”按钮,在“名称”字段中输入名称Fault1 ,然后单击“保存”按钮
- 再次单击加新按钮,在“名称”字段中输入名称Fault2 ,然后单击保存按钮
- 单击确定按钮,然后再次单击下一个确定按钮
为错误代码设置事件
- 双击error_end_fault1元素,在“属性”对话框的“BPMN2.0”选项卡中,找到“errorRef”标签
- 在“值”字段中,单击按钮并浏览到包含此模型的包
- 单击Fault1 ,然后单击确定按钮,然后再次单击确定按钮。
- error_end_fault2 ,点击Fault2
- error_ie_fault1 ,点击Fault1
- error_ie_fault2 ,点击Fault2
配置 BPSim
物件 |
行动 |
---|---|
工件&包 |
|
s1 |
|
概率 |
从配置 BPSim窗口左侧的树中,展开“网关 | 40,10,20,30 概率'。 提示:您也可以浮动配置 BPSim窗口,然后点击BPMN图上的元素或连接器;配置 BPSim窗口中的元素将被自动选中。 对于每个任务元素,在“控件”选项卡中单击“新建参数”下拉箭头并选择“概率”,然后在“值”字段中键入相应的值:
|
运行仿真
- 在“配置 BPSim ”对话框工具栏上,单击“运行”图标打开“运行控制器”对话框
- 点击运行按钮,选择“标准仿真”
- 模拟结果如下:
分析:
从概率流出的序列上的序列集的概率分别为1和0.3。
- 100 次传球中有 36 次在normal_end完成,流向e1
- 100 次通过中有 11 次在error_end_fault1完成,由 ErrorRef Fault1 触发error_ie_fault1 ,异常流向e2
- 100 次中的 23 次在error_end_fault2完成,由 ErrorRef Fault2触发error_ie_fault2 ,异常流向e3
- 100 次传递中有 30 次在error_end_default完成,这触发了error_ie_default因为它们没有设置 ErrorRef 并且异常流向e4