4. 检验流程建模基础

在食品MES中配置检验流程,第一步不是打开软件画图,而是先判断“这段业务该用哪种模型表达”。同一批原料入库检验,用流程图、状态机和BPMN三种方式描述,得到的模型在可读性、可执行性和系统落地能力上差别很大。本节以“食品原料入库检验”为对象,讲清三种建模语言的适用边界,并给出可直接对照配置的模型示例。

三种建模语言的分工

流程图擅长表达“谁在什么条件下做什么”,强调活动顺序、判断分支和角色分工,适合给检验员、仓库员看的作业规程,也适合作为MES流程配置的初稿。状态机擅长表达“一个检验对象在生命周期内如何迁移”,强调状态集合、迁移事件和守卫条件,最适合映射到MES中的检验单状态字段与状态流转规则。BPMN擅长表达跨部门、跨系统的协作,包含池与泳道、消息流、事件(定时、错误、信号)和网关,适合描述“仓库—检验—质量—ERP”之间的协同与异常处理。

实践中三者不是互斥的:先用流程图梳理业务,再把关键对象抽象为状态机,最后用BPMN补齐跨角色协作与异常事件,是较稳妥的建模路径。

原料入库检验:流程图 / 状态机 / BPMN 三视图 ① 流程图(作业顺序) 到货登记 / 生成检验单 抽样:按批次取 3 份 感官 / 水分 / 微生物检测 全部合格? (判定规则) 合格 → 上架 / 放行 不合格 → 隔离 / 退货 是 否 ② 状态机(检验单生命周期) 始 待抽样 检验中 待判定 已放行 已隔离 已关闭 创建 抽样完成 结果录入 合格 不合格 守卫:结果齐全且审批通过 ③ BPMN(跨角色协作) 仓库 检验室 质量部 ERP 收货登记 执行检验 判定网关 更新库存状态 消息 超时升级 异常:超时未判定 → 触发升级事件 消息流连接仓库与检验室

把流程图落到MES配置

以某乳品厂原料入库为例:每批生鲜乳到货后,仓库在MES创建检验单,系统按抽样规则生成3份样品(感官、理化、微生物各一份)。流程图中的判断节点“全部合格?”在MES里不能只写一句文字,而要配置成判定规则:感官评分≥85分、水分≤12.0%、菌落总数≤10⁵ CFU/g,三项同时满足才走合格分支。任一不满足,流程转入不合格分支并自动锁定该批次库存,禁止领用。

配置时要注意判断节点的“出口条件”必须互斥且完备。常见错误是只配了“合格”和“不合格”两个出口,却漏掉“结果未出齐”的中间情况,导致检验单卡在判定节点无法流转。正确做法是增加一个“待复检”出口,当某项指标处于临界区间(如水分12.0%~12.5%)时进入复检子流程。

状态机是MES状态字段的蓝本

流程图回答“做什么”,状态机回答“检验单现在处于什么状态、什么事件能推动它变化”。上图中的六个状态可直接映射为MES检验单的status字段取值:WAIT_SAMPLE、TESTING、WAIT_JUDGE、RELEASED、ISOLATED、CLOSED。每条迁移边对应一个业务事件和守卫条件,例如“结果录入 → 待判定”要求所有检验项目结果非空且审核人已签字。

状态机的价值在于防止非法跳转。若没有状态机约束,操作员可能把“待抽样”的检验单直接改成“已放行”,造成质量漏洞。在MES中把迁移规则写成配置表,系统即可在每次状态变更前校验当前状态是否允许该事件,不允许则拒绝并记录日志。

检验单状态迁移配置(示例)
当前状态      事件            目标状态      守卫条件
WAIT_SAMPLE   抽样完成        TESTING       样品数=3 且 抽样人非空
TESTING       结果录入        WAIT_JUDGE    所有项目结果非空
WAIT_JUDGE    判定合格        RELEASED      三项指标全部达标
WAIT_JUDGE    判定不合格      ISOLATED      任一指标超标
WAIT_JUDGE    转复检          TESTING       存在临界值项目
RELEASED      批次关闭        CLOSED        库存已更新
ISOLATED      退货完成        CLOSED        退货单已确认

BPMN补齐跨角色与异常

流程图和状态机都以单个检验单为中心,而真实业务中仓库、检验室、质量部、ERP之间需要协作。BPMN用泳道区分角色,用消息流表示系统间通信,用边界事件表示异常。上图中“超时未判定”就是一个定时边界事件:若检验单进入待判定后超过4小时仍未判定,系统自动向质量主管发送升级消息,并把优先级调高。这类规则在纯流程图里很难表达清楚,在BPMN中却是一个标准事件节点。

需要提醒的是,BPMN建模不必追求符号齐全。食品MES的检验流程通常只用到任务、排他网关、定时事件和消息流四类元素,过度使用并行网关、补偿事件反而增加配置和维护成本。建模的目标是让配置人员和质量人员都能读懂,而不是画出最复杂的图。

建模顺序建议:先用流程图与业务人员对齐“做什么、谁来做、什么条件分支”;再把核心对象抽成状态机,确定状态字段与迁移规则;最后用BPMN补充跨系统消息与超时、异常事件。三张图保持同一套节点名称和判定阈值,避免配置时对不上号。

三视图一致性检查

模型交付前应做一次交叉核对:流程图中的每个判断分支,在状态机中都能找到对应的迁移边;状态机的每个状态,在BPMN泳道中都有负责的角色;BPMN中的消息流两端,在MES中都存在对应的接口或人工确认动作。三者对不上,往往意味着业务规则还没想清楚,此时不宜直接进入系统配置。

以入库检验为例,若流程图写了“不合格→退货”,但状态机里没有“已隔离→已关闭”的迁移,BPMN里也没有退货单确认的消息,那么这条不合格路径在系统中就是断的。配置前发现这类断点,成本远低于上线后靠人工补单。