简介
在本系列的最后一部分文章中,您将学习 SCPM 提供的两种先进的分析功能:扩展流程模拟和 Performance Analyzer。扩展流程模拟扩展 WebSphere Business Modeler 流程模拟功能,允许用户编写模拟建模脚本,这使该工具能够灵活地支持更加复杂的业务逻辑和分析需求。Performance Analyzer 支持使用 System Dynamics 对不同性能指标之间的因果关系进行量化分析,System Dynamics 是一种研究和管理复杂反馈系统的理论。
阅读本文之后,您有望能够完成以下任务:
- 理解 SCPM 的先进流程模拟概念。
- 识别 SCPM 流程模拟方法。
- 理解 Performance Analyzer 概念和功能。
SCPM 流程模拟
本节介绍 SCPM 的先进模拟功能,以及 SCPM 流程模拟方法。
概述
作为业界最佳的业务流程建模和模拟产品,WebSphere Business Modeler 提供了强大的流程模拟功能,使用户能够执行情景假设分析,并考虑成本、收入、持续时间和资源利用率等多个因素。它它还提供了动画来方便可视调试和简化通信。但是,WebSphere Business Modeler 其设计目的是作为一个一般性、通用且易用的工具,所以在处理复杂业务逻辑和复杂数据结构方面会带来一些限制。
图 1. WebSphere Business Modeler 中的流程模拟
SCPM 增强了 WebSphere Business Modeler 模拟,允许用户编写每个 WebSphere Business Modeler 流程元素的 Java™ 脚本。您可以利用这些脚本来建模高度复杂的逻辑,读取和写入外部文件,以及调用外部 Java 库。图 2 给出了突出显示 3 个区域的 SCPM 模拟窗口。突出显示的Expression 和 Monitor 选项卡分别用于编辑脚本和控制 SCPM 模拟。底部突出显示的区域包含模拟脚本。
图 2. SCPM 模拟
使用 Java 脚本,SCPM 支持进行以下高度灵活的流程模拟:
- 轻松选择决策分支
- 轻松定义条件
- 定义复杂的数据结构
- 物料清单 (BOM)
- 客户订单队列
- 车辆
- 实现复杂的操作
- 复杂的数学函数
- 复杂的逻辑
- 监控模拟状态
- 库存级别
- 队列长度
- 利用第三方 Java 库
运行 SCPM 模拟
本节介绍如何逐步运行 SCPM 模拟。
第 1 步:编辑流程元素的脚本
第一步是编写模拟脚本。您在 WebSphere Business Modeler 流程编辑器中构建基本的流程流,选择目标流程元素,然后切换到 Expression 选项卡。显示的脚本编辑器可用于编写 Java 脚本。有关编写 SCPM 模拟脚本的语法和准则的详细信息,可以通过 scpm@cn.ibm.com 向 SCPM 支持人员获取 “SCPM 流程模拟参考指南”。
用户可编写流程元素的模拟脚本,比如流程步骤和决策分支。以下是 SCPM 支持的 6 种基本的脚本类型:
- Pre-process 脚本在流程/任务激活后立即执行。
- Post-process 脚本在流程或任务结束时(经过一定延迟时间后)执行。
- Delay 脚本定义流程或任务的延迟时间。
- Cost 脚本定义流程或任务的成本。
- Revenue 脚本定义流程或任务的收入。
- Duration 脚本定义流程或任务的持续时间。
第 2 步:创建模拟快照
创建了流程流和模拟脚本之后,下一步是在 WebSphere Business Modeler 中创建一个模拟快照。这个模拟快照的创建方式与 WebSphere Business Modeler 模拟快照相同。当看到 Check Paths for Terminate Nodes 提示时,如图 3 所示,单击 No 绕过检查并直接生成模拟快照。
图 3. Check Paths for Terminate Nodes 对话框
第 3 步:选择模拟方法
第 3 步对确保 SCPM 模拟正确运行必不可少。成功创建模拟快照之后,您需要打开模拟快照的 Attributes 选项卡的 General 选项卡,向下滚动并将 Method of selecting an output path 更改为 Based on an expression。此配置支持在模拟运行期间对模拟脚本进行分析。
图 4. 配置模拟方法
第 4 步:选择是否以动画形式运行(可选)
这一步是可选的。与 WebSphere Business Modeler 模拟一样,您可以选择采用或不采用动画形式运行模拟。可以在模拟设置中指定此配置。请注意,使用动画会显著减缓模拟进度。
要激活或取消激活动画,执行以下操作:
- 转到 Simulation Control Panel。
- 单击 Menu。
- 单击 Settings to launch the Simulation Settings。
- 为模拟动画单击 Yes 或 No。
第 5 步:开始模拟
模拟配置完成后,切换到 Monitor 选项卡并单击绿色的 Run Simulation 按钮,如图 5 所示,以开始 SCPM 模拟。
图 5. 运行模拟
您现在应该能够在 Monitor 选项卡中看到模拟的进度和信息,如图 6 所示。请注意,SCPM 模拟运行由 SCPM Monitor 选项卡控制,而不是由 WebSphere Business Modeler Simulation Control Panel 控制。
图 6. Monitor 选项卡
(查看图 6 的大图。)
第 6 步:保存模拟图表和输出
您也可以使用模拟脚本弹出图表,监视在模拟运行期间某些变量的实时趋势,如图 7 所示。图表和控制台输出都可导出到文件中供进一步分析。
图 7. 弹出图表
样例 ABC Project
在这个样例 ABC Project 中,我们将使用一个名为 EP.4 Manage ISC Inventory 或 Inventory Control 的流程来演示 SCPM 流程模拟。在这个 inventory control 模型中:
- 客户每隔几天生成一些随机需求。这些需求放在另一个订单队列中等待满足。
- 一个分发中心 (DC) 每隔 3 天检查订单队列中的所有需求,如果它的库存可以满足需求,则立即满足该需求。
- DC 检查每隔 5 天检查它的库存。如果库存级别在安全库存级别之下,DC 基于库存控制策略来补充库存。在这种模型中评估了两种策略:(s, S) 和 (r, q)。它们是两个典型的库存控制策略。有关库存控制的更多信息,请参阅 参考资料 一节。
- 立即补充库存。
使用 WebSphere Business Modeler 流程编辑器,我们创建流程流,如图 8 所示。
图 8. ABC Project 中的模拟示例
我们开发 4 个流程分支来建模此业务。需求在第一个分支中生成和聚合。在第二个分支中,DC 检查它的库存能否满足需求。第三个分支决定何时终止模拟。最后一个分支用于进行 DC 库存控制。
我们定义 5 个时间表并将它们与流程模型中的计时器相关联。每个时间表以指定的时间间隔触发一个特定的事件。例如,每隔五天,一个时间表就会触发对 DC 的库存检查,并在需要时补充库存。
图 9. 设置计时器
我们预先设置关于活动和决策的输出分支的 Java 脚本。如果右键单击编辑器中的空白区域,可以在 Expression 选项卡的 Initial 选项卡中查看全局变量的定义和声明,如图 10 所示。
图 10. 定义全局变量并进行全局声明
此模拟的一个目标是,通过切换变量 inventoryControlPolicy
来对比库存级别并评估两种库存控制策略 (s, S) 和 (r, Q)。
请注意,我们使用了一个完全随机的数字生成器来生成此应用程序中的需求。但是,我们需要依据某种概率分布生成随机的变体。概率分布不仅允许您观察系统的平均行为,还允许您观察各个端点的情况。要插入一种分布,可以右键单击 Expression 选项卡的编辑区域,选择 Insert => Distribution Function,如图 11 所示。
图 11. 插入概率分布
类型 | 分布 |
---|---|
离散 | Binomial、Hypergeometric、Possion |
连续 | Beta、Cauchy、Chi square、Exponential、F、Gamma、Normal、t、Uniform |
SCPM 模拟项目方法
IBM 开发了一种附带模拟工具的方法,用于指导您执行完整的模拟建模和分析,从关键性能指标 (KPI) 的创建到输出分析。图 12 显示了 SCPM 模拟项目方法的路线图。
图 12. SCPM 模拟项目方法路线图
业务顾问与技术团队之间的高效协作对成功创建 SCPM 模型不可或缺。顾问团队专注于项目范围,定义模拟场景和 KPI,开发 AS-IS 和 TO-BE 模型及逻辑,收集数据,以及分析模拟结果。技术团队专注于开发模拟脚本,运行模拟,以及向顾问团队提供反馈。理想情况下,技术团队应该从项目一开始就参与进来,以加强理解和控制。图 13 提供了有关 9 个项目步骤以及各种角色和责任的详细信息。
图 13. SCPM 模拟项目方法的详细信息
使用 Performance Analyzer
本节介绍 SCPM 的 Performance Analyzer 特性。
概述
Performance Analyzer 旨在阐明流程和指标的内部和相互关系。您可以在 Performance Analyzer 中设计 4 种模型,它们用于以不同细节程度分析性能模型。
- Linkage
- Qualitative
- Semi-Quantitative
- Quantitative
这些模型中的每一种都提供了供应链管理中的一种不同的问题视角。ABC Project 包含每种模型作为示例。Performance Analyzer 模型位于 SCPM Navigator 中的 Supporting Tools 之下,如图 14 所示。
图 14. SCPM Navigator 中的 Performance Analyzer 模型
现在让我们逐个简短介绍一下 4 种不同的模型。
Linkage 模型提供了不同元素(比如 KPI、CSF 和目标)之间的链接的最简单视图。它用于将 Value Driver Tree 和 Metrics Tree 元素链接在一起。图 15 中的 Linkage 模型示例显示了如何将改进的客户服务与供应链的灵活性、响应能力和可靠性相链接。
图 15. Linkage 模型
Qualitative 模型增强了 Linkage 模型,它为每个链接分配一种定性的影响,这可能是积极、消极或未知的影响。此模型以链接为基础分析 KPI 更改的定性影响。它还用于执行简单的分析,识别子节点与父节点之间的趋势变化。图 16 中的示例模型显示了源、创建和交付周期的增长如何引起订单履行周期的增长,这最终导致客户响应能力下降。
图 16. Qualitative 模型
Semi-quantitative 模型也称为 Analytical Hierarchy Process (AHP) 模型。它有助于分析不同 KPI 的优先级。图 17 中的示例显示了灵活性(对改进客户服务影响最大的因素)将如何用于支持关注此区域的服务工作。
图 17. AHP 模型 (Semi-Quantitative)
Quantitative 模型也称为 Systems Dynamics (SD) 模型,有助于分析关键模型元素之间的定量关系的影响。此模型利用 System Dynamics 引擎来帮助促进模拟和优化。SCPM 提供了一个编辑器,用于输入数学等式来构建这些定量关系。图 18 中的示例显示(在 SCM 成本和所售商品成本增加的情况下)利润是如何下降的,除非销量显著增加。
图 18. SD 模型 (Quantitative>
System Dynamics 是一种研究和管理复杂反馈系统的理论。要进一步了解 System Dynamics,请参阅 参考资料 部分。
使用 Systems Dynamics 分析复杂问题
本节中的练习演示如何使用 SD 分析复杂问题。在此练习中,我们将使用一个很容易理解的示例 Rabbits in Australia。最初有 24 只兔子。因为兔子在不断出生和死亡,所以数量也在不断改变。我们的目标是根据给定不同出生率和不同平均寿命建模在兔子的数量变化。
- 第一步是构建兔子数量模型,如下所示:
- 创建一个新 Quantitative Performance Analyzer 模型,名为 Rabbit Population。
- 向模型添加 5 个 Other 节点,分别名为
birth rate
、births
、average life time
、deaths
和Rabbit Population
。 - 将这些节点链接在一起,如图 19 所示。
图 19. 兔子数量
- 第二步是设置变量的值并量化节点的关系。
Births
与birth rate
成正比,deaths
的变化方向与average life time
相反。- 使用 Quantitative Relations 编辑器指定以下等式:
- birth rate = 0.125
- average life time = 8
- births = birth rate * Rabbit Population
- deaths = Rabbit Population / average life time
- 编辑 Rabbit Population 节点,如图 20 所示:
- 将 Variable Type 设置为 Level。
- 将 Expression 设置为 = Integral 并指定
"births"-"deaths"
。 - 设置 Init Value =
24
。
图 20. 编辑 Rabbit Population 节点
- 使用 Quantitative Relations 编辑器指定以下等式:
- 第三步是运行模型。
- 将模拟的时间范围设置为从 1859 年到 2000 年,如图 21 所示。
图 21. 设置模拟配置
- 单击视图工具栏中的 Run Simulation 图标,运行模拟。模拟结束时,您可以保存模拟结果,并切换到 Simulation Result 选项卡以查看它们,如图 22 所示。
图 22. 模拟结果
请注意,此模型旨在显示兔子数量的平衡关系,因为我们将出生率和平均寿命(死亡率)的值设置为一个常量 (12.5%)。
- 将模拟的时间范围设置为从 1859 年到 2000 年,如图 21 所示。
- 第四步是处理参数并执行情景假设分析。让我们更改出生率以生成不受限制的增长率。这会得到一种可能最简单的动态行为,称为指数增长。
- 右键单击
birth rate
节点并选择 Scrollbar Setting。 - 将 Maximum 设置为
1
,将 Step Increment 设置为0.01
。 - 使用滚动栏将出生率更改为
0.2M
。
- 右键单击
- 再次运行模拟,您将看到指数增长结果,如图 23 所示。
图 23. 分析模型
- 运行模型并再次调整这些滑块,直到您获得了尽可能匹配的值。另外,尝试您认为可能具有影响的其他变量。您也可以对比不同时间范围内的模型。构建模型之后,您可以选择在另一个时间范围内运行该模型。
结束语
在本系列的最后一部分中,您学习了先进的 SCPM 流程模拟概念、SCPM 流程模拟方法和 Performance Analyzer。
在本系列文章中,您拥有了对 Supply Chain Process Modeler 工具的整体理解。您学习了定位、方法、关键函数和操作,以及 SCPM 的先进分析特性。您现在应该能够开始使用 SCPM 执行供应链流程建模和分析了。