3. 场景二:仿真分析
流程优化是建模的主要目的之一,仿真分析是优化的前提,同时对于理解业务流程非常重要。仿真功能是Modeler一个很重要和有特色的功能。现实的情况是用户因为业务流程的复杂性,往往对自己建好的模型不够了解。比如流程分支一共有多少种可能性,每一个分支成本的差异等。仿真分析的功能让用户能从成本、时间、分支等多个角度验证流程,评估流程的性能,对流程的模拟执行生成统计分析,从而帮助用户找到流程中的瓶颈并加以优化。
运用仿真比较典型的场景是用户首先创建一个现实中流程的现状模型(AS-IS Model),然后通过Modeler进行分析优化,针对已有流程的缺陷提出流程改进方案,得出一个期望部署实现的模型(To-Be Model)。Modeler提供了两个模型间的的对比分析功能。
在用户使用仿真过程中,最大的困难是仿真之前工具提供的看起来纷繁复杂的设置项。以下就把主要设置项列表如下,对于其他设置,若没有特殊需求,可以保留默认值。
表3.1 仿真主要设置表
常用的仿真设置项 | 作用描述 |
任务的成本,持续时间,盈利(Task cost,Duration,Revenue) | 设置任务的时间,成本等属性。这些值是仿真计算的主要依据。 |
输出路径选择方式(Method of selecting an output Path) | 流程遇到分支所基于的原则,包括概率和表达式的选项。基于概率的模拟能更快地设置和运行模拟。基本表达式可以更精确的表达业务规则。基于表达式的模拟中,流程根据业务项的属性和表达式设置选择分支。 |
输入的设置(Token creation) | 设置流程输入的数据属性。包括输入的数量,分组,也可以设置基于一个特定的时间表或某一特定的概率分布来输入。 |
将资源的时间需求用作任务处理时间(Use resource time required as a task processing time) | 使用资源需求时间来决定每个任务的持续时间,覆盖针对该任务本身设置的持续时间值。 |
任务的输入输出业务项设置(Task Ouput Business item) | 对于全局或局部任务,用户可以指定其仿真时地输出规则。例如,按照一定的概率分布输出特定的业务数据项。 |
随机数种子值(Random Number Seed) | 允许复制特定模拟结果的任意数字。每次运行模拟时,该数字都会发生变化。 |
使用Form表单(Enable Form. Simulation) | 在基于表达式的仿真过程中,人工任务可以启用Lotus Viewer来让用户填入输出。 |
在进行仿真设定时,Modeler支持多种数据分布的设置作为数据输入,包括指数分布、Gamma分布、统一分布、加权和随机数列等。例如,本案例中可以采用概率论中的泊松分布来模拟信用卡中心每天收到的客户申请之间的延迟时间。
Modeler的分析功能分析可以分为静态分析和动态分析。静态分析是对模型使用的原始数据进行归纳总结,例如比较建好模型中分析出资源的相关信息属性。而动态分析是从多次仿真运行的实例结果中进行分析,例如分析流程在多个数据项启动的多个实例中运行的平均成本的时间,流程的运行中的关键路径、最短路径等。基于仿真模拟运行结果的动态分析对各种业务流程提供了强大的分析计算功能。
流程中使用数据驱动对用户使用仿真功能来说是比较困难的地方。所谓数据驱动,是用户在仿真过程中根据流程中数据项的属性使用表达式的驱动流程运行。仿真设置两个比较实用的技巧是对于Map任务节点的使用和Human Task节点。Map节点能够对两个不同数据类型的数据进行连接,用户可以定制连接的属性,这个节点在仿真是支持的,在实际的流程中会频繁用到。另一个是人工任务节点,在使用Form的情况下,它可以将数据项的输入展示出来,用户可以利用这个结点作为一个调试的功能来检查仿真时一些节点的输出是不是期待的结果
在本案例的信用卡审批流程中,对于一个用户资料是否完整的决策节点,我们即可以根据概率设置80%选择资料完整的分支,也可以设置表达式完全取决于决策节点输入数据的属性来决定分支。仿真的过程根据用户的选择对这两个设置进行取舍。
仿真运行的结果以表格的形式显示出来,用户也可以将结果导成文本或Excel等格式。本例中的银行的信用卡审批流程,用户可以模拟用户在1000个卡申请请求发出后,所有可能的路径以及各种情况所消耗的平均处理时间和平均成本如下图3.2所示。
在对已有流程进行分析后,用户会去试图对流程进行调整优化,比如调整节点的批卡率、应用新的自动业务规则以减少人工开支等。在相同输入的情况下,用Modeler重新仿真运行,并且和刚才的运行结果进行对比分析出平均成本和时间的变化,如下图3.3所示。