周一早上,表单照例导出,字段清洗完,通知发出去。这套动作被串成一条自动化工作流后,确实省掉了复制粘贴。直到某天上游把“客户名称”改成“客户全称”,流程没有报错,只是把空值一路传了下去。下午有人问“今天的提醒怎么没到”,才发现问题不在节点数量,而在没人看见它悄悄停在了哪里。
跑通一次,和长期跑下去是两件事
搭一条流程的演示成本很低:触发、取数、判断、发送,几步连起来就能跑。可上线后的日常并不总按演示走。字段会改名,权限会调整,接口会限流,临时需求会插进来。自动化工作流擅长处理稳定、重复、规则清楚的段落,却不容易判断“这次算不算例外”。例外一多,流程要么频繁失败,要么被加上一层又一层条件分支,到头来连维护的人也要对着图看半天。
问题往往不是“要不要自动化”,而是把哪一段交给机器、哪一段留给人。审批、对外沟通、涉及模糊判断的环节,可以设一个明确的人工出口;机械搬运、格式转换、定时提醒,可以交给规则。边界划清之后,流程不必追求一次覆盖所有情况,才谈得上长期使用。
先让失败被看见
很多流程出事时并不报错。空值被当成正常输入,旧字段仍能查到历史数据,通知失败只留在某个日志里。等业务侧察觉,往往已经过了几个环节。给流程加上可观测性,不是再加一块复杂面板,而是把几个基本问题回答清楚:这次运行有没有完成,关键字段是否为空,失败会不会通知到具体的人,重跑会不会造成重复发送。
- 关键步骤留一条可读日志,记录输入摘要和输出结果,不必打印全部内容。
- 为空值、超时、权限拒绝设置明确的停止条件,不要默认继续往下走。
- 给人工接管留入口,失败后能补数据、改状态、决定是否重跑。
这些动作看起来不“智能”,却决定了流程能不能被信任。会停下来并告诉人哪里不对的流程,至少不会把脏数据带到下游。
维护账要提前算
这类流程不是搭完就结束的静态产物。上游接口变一次,下游字段改一次,流程就可能需要跟着动。若没有版本记录和变更说明,接手的人只能从节点连线里反推意图。还有一层现实是,维护往往落在当初搭建的人身上;一旦他不在,流程就变成没人敢动的黑箱。
所以在动手前,不妨先问几个不讨巧的问题:这条流程一周跑多少次,失败一次影响谁,例外占比大概多少,改动后由谁验证。答案不清楚时,先做半自动,把确认留在人这一侧;等例外收窄,再把确认环节也纳入规则。自动化工作流的价值不在于节点铺得多满,而在于它能否在变化里保持可理解、可接手、可停止。