知识卡片

状态查询的两种方案:自定义简化流程模型与里程碑可视化

普通读书笔记卡

内容

面对”我的订单在哪里”这类状态查询,不能直接把可执行的BPMN流程模型原样展示给用户,因为它往往暴露太多内部细节、也容易让用户困惑。解决方式有两种基本路径。一是设计专门面向用户(或客服人员)的自定义简化流程模型——这个模型只用于展示状态,从不在任何引擎上真正执行,所以它甚至不需要在技术上完全正确,只要能达到展示目的即可:可以只保留真实流程中的部分任务和阶段作为展示节点、把其余任务隐藏掉,本质上是”同一份数据的另一个展示页面”,数据仍直接从工作流引擎获取,实现成本较低。二是利用[[用业务里程碑与阶段度量KPI中间事件与嵌入式子流程的区别]]提到的里程碑或业务阶段,创建定制化的可视化内容(比如很受欢迎的进度清单形式),这种做法在向用户或客服人员展示时往往比自定义流程模型更容易实现。无论选哪种方案,都要解决一个共同的巨大挑战:如何找到正确的流程实例——打电话来的用户通常不知道自己的流程实例ID,甚至可能连订单号或用户ID都记不清,因此必须提供合适的搜索功能,如果只依赖工作流引擎自身的数据,就要确保所有需要用来检索的信息都提前附加在了流程实例上。此外,状态查询很快就会超出单个流程实例的范畴——你真正想看的往往是端到端流程,而它可能在工作流引擎介入之前就已经开始了,这正是下一节要展开讨论的更大话题。

参考来源

- 位置:《流程自动化实战:系统架构和软件开发视角》第11章《流程可见性》"11.3 状态查询"(源文件:_epub-src/EPUB/xhtml/Section0001_0015.xhtml) - 结论依据:原文说明自定义简化流程模型"不在引擎上执行、不必完全正确"的特性和里程碑/阶段可视化两种方案,并指出找到正确流程实例(用户不知道实例ID)是共同的核心挑战,需要提前将检索所需数据附加到流程实例,直接支撑本卡片结论。 - 原始内容:这个流程模型只用于展示状态,不在任何引擎上执行。也就是说该模型不一定要是正确的,只要它能达到目的即可……来电咨询的用户不太可能知道自己的流程示例ID……你需要提供一些搜索功能。