前页 | 后页 |
汽车维修进程
此示例模拟汽车维修店的流程。 BPSim 配置:
- 使用由分布初始化的属性参数为每个客户生成随机数量的问题
- 应用概率来模拟:
- 是否接受初步估计
- 修复过程中是否会发现新问题
- 在每个任务中增加或减少属性参数的值
- 将属性参数的值用于从网关传出的序列的条件
- 模拟给定开始和持续时间的客户到达
创建 BPMN模型
创建主进程
- 创建一个开始事件顾客到达。
- 将序列流添加到目标抽象任务活动进行估计。
- 将序列添加到目标 Exclusive Gateway Accepted?。
- 将序列流添加到:
A未接受目标结束事件初始估计
- A目标子流程修理车 - 从Repair Car中,将序列流添加到目标抽象任务活动接受付款。
- 将序列流添加到目标结束事件顾客离开商店。
创建子流程修理汽车
- 创建一个开始事件开始。
- 将序列流添加到目标 Exclusive Gateway会聚 Gateway1。
- 将一个序列添加到一个抽象任务活动中检查问题。
- 将序列流添加到独占网关会聚网关 2。
- 将序列添加到独占网关New问题?。
- 将序列流添加到:
- A目标抽象任务活动处理新发现的问题,然后添加一个
流回汇聚序列
- A目标抽象任务修复问题,然后添加一个序列一个
target Exclusive Gateway还有其他问题吗? - 从网关还有问题吗?将序列流添加到:
- 目标结束事件修复完成
-汇聚网关1
配置 BPSim
任务 |
描述 |
---|---|
工件和包 |
|
开始和持续时间 |
我们将模拟一家汽车维修店的流程,该店的营业时间为上午 9:00 至下午 5:00,即 8 小时。我们还假设下午 4:50 之后走进的顾客当天不会得到服务。因此模拟开始时间为上午 9:00,持续时间为 7 小时 50 分钟。 在“业务流程仿真”图上,单击“汽车维修名称”,在“配置 BPSim窗口中,单击“主1 ”和“汽车维修名称”,更新这些工件:
|
顾客来了 |
我们将模拟每 24 分钟到达的客户。 第一个客户在上午 9:00 到达,最后一个在下午 4:36 到达(下午 5:00 到达的客户今天将不会得到服务,因为这受“持续时间”设置的限制)。 用笔和纸,我们可以计算出服务了 20 位客户(上午 9:00 到下午 4:36 = 456 分钟;客户数量为 456/24 + 1 = 19 + 1 = 20)。稍后我们将通过仿真结果验证这一点。 在“Car Repair”图表上,单击开始事件元素顾客,然后在配置 BPSim开始中:
|
属性Parameters |
我们假设每个客户的汽车最初可能有不同数量的问题。这可以使用随机数生成器来反映。 BPSim 提供了许多发行版以满足您的需求。 在此示例中,我们使用截断正态分布来初始化属性。任务修复问题和处理新发现问题将分别递减和递增noOfIssues的值。
提示:如何自定义属性的类型 创建属性并设置值后,单击工具栏上的图标,然后单击图标以显示“属性参数”对话框。在属性的“类型”字段中,单击下拉箭头并选择值“ int ”而不是默认的“double”。
|
概率上的序列流 |
我们估计三分之一的客户不会接受最初的维修估价,剩下的两个会接受。我们还估计,四分之一的维修会发现新问题,其余三个维修不会发现新问题。 在“汽车维修”图上,参考网关元素接受了吗? .点击:
|
条件序列条件 |
我们使用表达式返回一个布尔值作为序列流的条件,这在流的逻辑中起着关键作用。 在“维修汽车”图表上,请参阅还有其他问题?网关元素。点击:
|
运行仿真
- 在配置 BPSim窗口中,单击“执行”选项卡和工具栏中的图标。
- 当模拟完成时,执行选项卡提供类似于以下的结果:
代币分析
- 20 位客户到达,与我们手动计算的数量相匹配(请参阅配置 BPSim顾客表的顾客到达)
- 20 位客户中有 8 位不接受初步估价,而 20 位客户中有 12 位接受并修理了他们的汽车;这些数字大致符合1 /3 和 2/3 的概率
- 64 个令牌通过了网关新问题Found? ,其中19个有新问题,45个没有;这些数字大致符合1 /4 和 3/4 的概率
个人客户分析
单击工具栏上的按钮以打开“BPSim PropertyParameter Values”对话框。由于有 20 个客户(令牌),您可以在“令牌编号”字段中输入一个介于 0 和 19 之间的值,然后单击查询按钮进行一些分析:
- 该客户不接受初始估算,如“按属性分组”选项卡上所示:
- 该客户的汽车只有一个问题,已修复:
- 该客户的汽车有三个已知问题,在维修过程中发现了三个其他问题,因此总共修复了六个问题(可能这是一辆非常旧的汽车);切换到“按元素分组”选项卡: