前页 | 后页 |
升级事件
在BPMN中,升级是Error的不间断对象,具有类似的catch-catch行为。但是,与Error不同,Activity的正常流和异常流是并行路径,而不是替代路径。
创建BPMN模型
创建主要流程
- 创建一个开始事件S1
- 向目标Activity subProcess1添加序列流;放大活动并单击鼠标右键,选择“已展开”选项,然后打开“属性”对话框,并将“类型”设置为“子进程”
- 将序列流添加到目标abstractTask活动元素Task2(20) (打开“属性”对话框,并将“类型”字段设置为“ abstractTask”)
- 将序列流添加到目标并行网关元素合并并行 (打开“属性”对话框,并将“类型”字段设置为“并行”)
- 将序列流添加到目标结束事件E1
- 在subProcess1上 ,添加一个边界不间断的升级事件捕获问题 (将“ Intermediate Event”图标拖到subProcess1上 ,然后从即时菜单中选择“ Edge Mounted”和“ Escalation”;双击该元素以显示“属性”对话框并添加名称,然后在“类型”字段中选择“边界无中断>升级”)
- 将序列流添加到目标abstractTask活动元素Task3(30) (打开“属性”对话框,并将“类型”字段设置为“ abstractTask”)
- 将序列流添加到目标元素合并并行
创建子流程
- 在subProcess1中 (或之下),创建一个Start Event S2
- 将序列流添加到目标abstractTask活动元素Task1 (打开“属性”对话框,并将“类型”字段设置为“ abstractTask”)
- 将序列流添加到目标Throwing Escalation中级事件Throw Issue (打开“属性”对话框,然后在“ Type”字段中选择“ Throwing> Escalation”)
- 将序列流添加到目标结束事件E2
创建BPMN2.0 :: Escalation元素
从图工具箱中,展开“ BPMN 2.0类型”页面,将“ Escalation”图标拖到图上,并将元素命名为Escalation1 ;事件会将其用作升级代码。
设置升级代码事件:
- 双击“ 投掷问题”,然后在escalationRef标记的“值”字段中,单击图标,然后找到并选择Escalation1
- 双击捕获问题 ,然后再次在escalationRef标签的“值”字段中,单击图标,然后找到并选择Escalation1
配置BPSim
任务 |
行动 |
---|---|
工件和包装 |
|
触发开始事件的计数 |
|
处理时间 |
|
dummyVariable适用于Trace |
为了显示给定令牌的确切轨迹,必须在S1上设置一个虚拟变量。
|
运行模拟
- 在“配置BPSim”对话框工具栏上,单击“运行”图标以打开“ BPSim Simulation Controller”对话框
- 单击“运行”图标下拉箭头,然后选择“标准模拟”
- 模拟后,单击工具栏上的按钮以显示“ BPSim PropertyParameter Values”对话框
- 单击查询按钮,然后单击“按属性分组”选项卡,然后展开“ dummyVariable”(或您分配给变量的名称)
分析:
与Error不同, subProcess1的正常流和异常流不是替代路径,而是并行路径。可以从跟踪中轻松发现此功能:
- 在启动Task3(30)之后仍遍历E2和Task2(20)
- 合并遍历两次后到达E1