ERP 里最危险的数据错误,往往不是“保存失败”,而是单据顺利通过、后续流程也照常运转,直到发货、对账或月结时才暴露出来。字段校验的进阶玩法,不是把必填项越设越多,而是让错误在合适的环节被发现、被解释、被纠正,同时给合法例外留出受控出口。
我判断一条字段规则是否值得配置,通常先问三个问题:它要阻止哪种具体错误?错误最晚应该在哪个节点被发现?如果规则拦错了,业务人员通过什么方式继续办理?如果这三个问题没有明确答案,规则很可能只是把业务要求翻译成系统提示,却没有真正降低风险。
例如,销售单上的客户编码必填,解决的是“单据缺少客户归属”;客户编码必须来自有效客户主数据,解决的是“填了一个看似合理、实际不存在的客户”;订单金额超过授信额度时提示复核,解决的则是“业务发生前需要有人判断风险”。这三条规则的目的、处理人和拦截力度都不一样,不应该统统做成同一种红色报错。
我更愿意把字段校验看成一条控制链:业务要求,字段规则,校验时机,错误提示,例外审批,责任留痕。只做其中一环,用户体验可能更差,数据风险却没有消失。
字段校验不只有“通过”和“失败”。实际设计时,我建议至少区分提醒、拦截和转审批三类结果。提醒适合可能有风险但不一定错误的情况;拦截适合明确违反业务底线、没有例外空间的情况;转审批适合确有例外可能、但需要授权判断的情况。
| 处理方式 | 适用条件 | 系统应做什么 | 常见风险 |
|---|---|---|---|
| 提醒 | 规则提示风险,但存在合理业务情形 | 说明风险,允许用户确认后继续 | 提醒过多会被习惯性忽略 |
| 拦截 | 不符合规则的数据不能进入下一步 | 阻止保存或提交,并说明修正方法 | 规则过严会卡住合法业务 |
| 转审批 | 允许例外,但需要明确责任人决策 | 记录例外原因、审批人和处理结果 | 审批流过长会促使用户寻找绕行方式 |
这张表不是要求所有 ERP 都支持三种技术模式,而是帮助业务团队先定义“错误出现后怎么办”。不同产品可能只提供部分能力,必要时需要通过工作流、权限、导入检查或人工复核补齐控制。
字段规则增加后,数据质量不一定同步提高。规则如果依据过时制度、错误主数据或不完整场景设计,可能把正确数据拦下来;如果提示不清楚,用户可能反复试填;如果例外处理没有出口,业务可能改用线下表格、备注字段或其他账号绕过控制。
真正有效的校验,不是系统报错次数最多,而是可预防错误在下游发生前被发现,且合法业务仍能以可追踪的方式完成。所以评价规则时,不能只数“有多少条”,还要看误拦截、返工、例外和下游退单。

考虑一个示例场景:销售人员新建一张订单,客户、物料、数量、交期和仓库都填写完整,系统允许保存。看起来没有任何录入问题。但如果客户选错了相似名称的公司,或者订单选择了不适用的价格条件,单据仍可能进入审批,甚至继续生成发货任务。
此时,必填校验已经通过,格式校验也可能通过,问题却仍然存在。原因是字段值本身合法,不代表它与当前业务对象、订单类型、价格政策或后续流程相匹配。只检查“有没有填”和“格式对不对”,往往只能覆盖最表层的录入错误。
更有价值的做法,是把检查点放到错误最便宜、最容易修正的环节。客户主数据选择可以在输入时提示;额度风险可以在提交前检查;需要主管判断的例外,则可以进入审批。校验越接近业务决策点越有意义,但也必须避免把需要判断的事项伪装成简单的字段错误。
现场排查时,我会先把异常分成三类。第一类是录入错误,例如数量漏填、日期格式错误;第二类是规则错误,例如系统把本来允许的订单类型设成了禁止;第三类是主数据错误,例如客户状态未及时更新、物料单位配置不一致。
这三类问题不能都靠增加字段校验解决。录入错误适合字段层约束和及时提示;规则错误需要业务负责人确认逻辑并修正配置;主数据错误则要明确数据维护责任、更新时效和跨模块同步方式。若不先分类,团队容易把主数据治理问题包装成“用户录得不认真”。
| 异常类型 | 例子 | 主要治理动作 | 字段规则能否单独解决 |
|---|---|---|---|
| 录入错误 | 数量为空、日期格式错误 | 必填、类型、格式和边界校验 | 通常可以覆盖一部分 |
| 规则配置错误 | 把有效订单类型设置为禁用 | 核对业务制度、调整规则并回归测试 | 不能,规则本身需要纠正 |
| 主数据错误 | 客户已停用但仍可被选择 | 维护主数据状态及同步机制 | 只能拦截结果,不能替代治理 |
| 业务判断差异 | 特殊交期需要主管确认 | 授权审批并保留原因 | 不适合只用静态字段规则处理 |
如果一个问题在录入时已经可以识别,就不应等到月结才发现;如果它只有结合库存、信用额度或审批信息才能判断,强行放在输入框即时校验也未必合适。设计校验时,应画出单据从录入、保存、提交、审批到下游执行的路径,并标出每个节点能获得哪些数据。
这里有个重要限制:某条规则只有在判断所需的数据已可靠可用时,才适合放在对应节点。比如,跨单据累计金额检查依赖准确的历史单据状态;如果数据同步有延迟,输入时的检查结果可能只是近似值,就需要提示“提交前复核”,而不是给用户绝对化的保证。

必填项看起来简单、执行起来也直接,但“系统要求填写”不等于“业务现在已经知道这个值”。例如,订单创建时尚未确定承运商,如果系统强制要求选择承运商,用户可能随便选一个默认值;这个值进入后续流程后,反而比空值更难识别。
我会把字段分成三类:创建当前业务对象所必需的信息、进入下一流程前必须补齐的信息,以及仅供参考或统计的信息。第一类可以在创建时拦截,第二类适合在提交或发货前检查,第三类应谨慎强制填写。这样做的重点不是少设规则,而是让必填时点与业务事实出现的时点一致。
如果某字段在特定业务类型下才需要,应考虑条件必填的设计思路;若系统不支持条件必填,可以通过分单据类型、流程节点检查或明确的人工复核来处理。不要用一个全局必填规则覆盖差异很大的业务路径。
“日期格式正确”只能证明内容像一个日期,不能证明日期符合业务逻辑。交期可以是有效日期,却早于订单日期;数量可以是正整数,却超过包装单位允许的倍数;客户编码可以符合字符规则,却已经停用。
格式校验解决“能不能解析”,语义校验解决“放在当前业务里是否合理”。因此,设计时要从字段本身往外扩一层:这个字段与其他字段有什么关系?与主数据有什么关系?与当前单据类型有什么关系?如果数据需要依赖外部接口或实时余额才能判断,还要考虑信息时效和系统能力边界。
金额、数量、交期、折扣等字段经常存在业务差异。若团队只用一个平均值或常规范围设置硬拦截,季节性业务、试订单、紧急订单或特殊客户可能全部被卡住。系统最终看似严谨,实际却把判断压力转成了反复找管理员解锁。
对波动型字段,我更倾向于先区分“正常范围”“需提醒范围”和“必须审批范围”。阈值要由企业制度、历史记录或责任人确认,不能因为方便配置就随意定一个数。若暂无可靠数据,应先用提醒或人工复核收集一段时间的真实分布,再决定是否升级为强制拦截。
“校验失败”“数据不合法”这类提示没有告诉用户哪个字段出问题,也没有说明下一步如何处理。用户只好逐项猜测、重复提交,或者把问题转给系统管理员。错误提示本身也是规则的一部分,提示不清楚会把本来可自动处理的问题变成人工支持工单。
较好的提示至少包含三部分:出错字段或业务对象、触发原因、建议动作。例如:“交期早于订单日期,请确认订单日期或调整交期;如属于紧急补录,请提交主管审批。”如果只是提醒而不阻断,也要说清楚风险是什么,避免提示看起来像系统故障。
字段规则可以判断值是否符合条件,却不天然知道谁有权修改这个值,也不负责审批人是否尽职。若用户可以通过更换账号、改走其他单据类型或批量导入绕过限制,单纯增加前端规则无法形成完整控制。
还要注意规则覆盖范围:页面手工录入、批量导入、接口写入、移动端操作,是否经过同一套检查?不同系统实现不一。上线前应实际验证每条数据入口,而不是只在一个录入页面点击测试。需要跨入口一致性时,应把校验放在能够统一控制的服务端、流程节点或数据接收层,并核实系统是否具备相应能力。

我建议从高频单据中选出关键字段,再按风险和业务用途分级。核心字段通常会影响金额、库存、客户归属、税务处理或下游执行;一般字段可能只影响查询和统计;描述性字段则主要提供补充信息。分级不是给字段贴“重要”标签,而是决定校验强度、修改权限和异常处理方式。
| 字段层级 | 典型特征 | 规则优先级 | 建议处理 |
|---|---|---|---|
| 关键控制字段 | 错值会影响资金、库存、客户或合规流程 | 高 | 优先验证来源、状态、上下文和责任人 |
| 流程必需字段 | 缺失会阻止下一节点执行 | 中高 | 在业务信息应已明确的节点检查 |
| 分析辅助字段 | 主要用于分类、报表或后续追踪 | 中 | 优先采用受控选项和质量监测 |
| 补充描述字段 | 用于说明特殊背景,难以完全结构化 | 低至中 | 避免过度强制格式,必要时规范长度和敏感信息 |
如果团队不确定某字段是否值得强制拦截,可以先问:错误值是否会触发不可逆操作?影响范围是否大?事后是否容易发现?是否有责任明确的人工复核?影响高、难发现、难修复的字段,应优先设计控制;影响有限且容易修正的字段,可能只需要提示或抽检。
业务口头表达往往不够精确。例如“交期不能太早”无法直接测试;“交期不得早于订单日期,特殊情形由销售主管批准”则已经包含判断条件和例外路径。把规则写清楚后,配置人员、业务负责人和测试人员才有共同的验收标准。
每条规则至少要明确字段或对象、判断条件、校验时机、失败结果、提示内容、例外权限、测试样例和维护负责人。若系统无法实现某一项,也应明确替代控制方式,而不是默认为系统会自动处理。
| 规则要素 | 应回答的问题 | 订单示例 |
|---|---|---|
| 对象 | 检查哪个字段或字段组合? | 订单交期、订单日期 |
| 条件 | 什么情况下判为异常? | 交期早于订单日期 |
| 时机 | 录入、保存、提交还是审批时检查? | 提交时检查,避免创建草稿时过早阻断 |
| 结果 | 提醒、拦截还是转审批? | 提示风险,紧急订单转主管审批 |
| 责任 | 谁维护规则、谁批准例外? | 销售运营维护规则,销售主管审批例外 |
| 验证 | 用哪些正例、反例和边界值测试? | 正常交期、同日交期、早于订单日期、紧急例外 |
越早拦截,通常修正成本越低;但不是所有规则都适合录入时检查。即时校验适合格式、必填、受控选项等判断条件已经确定的情况;保存时检查适合必须保持数据基本完整、但草稿仍可能继续编辑的情况;提交时检查适合需要核对整张单据的关系;审批时检查则适合需要人作判断的例外。
我会优先把明确、稳定、低歧义的规则前置,把需要综合业务信息的规则放在提交或审批节点。若一条规则依赖数据实时更新,还要验证更新频率、并发写入和缓存策略。比如两个用户几乎同时提交订单,检查额度时都看到旧余额,单靠页面即时校验可能无法阻止累计超限。
| 校验节点 | 适合规则 | 优势 | 主要限制 |
|---|---|---|---|
| 输入时 | 格式、字段类型、选项范围 | 反馈快,修正位置清楚 | 可能频繁打断输入,且未必掌握整单信息 |
| 保存时 | 草稿完整性、基础字段关系 | 数据进入系统前可拦截明显错误 | 会影响暂存和分阶段补录 |
| 提交时 | 整张单据逻辑、相关主数据状态 | 检查条件更完整,适合业务关口 | 错误发现较晚,单据修改成本较高 |
| 审批时 | 信用风险、价格例外、特殊交期 | 可结合授权和上下文判断 | 审批负担可能增加,需避免低价值流转 |
规则配置资源有限时,不要按字段数量平均分配。可以用一套简单的优先级判断:问题发生频率高、影响大、下游修复成本高,优先级就高;发生频率低、影响有限、容易发现和纠正的问题,可以先监测,不必立刻强制阻断。
下面的模型适合做内部排序,不是行业标准。团队可为发生频率、影响程度和修复成本分别打1至5分,三者相乘形成讨论分值。数字只用于确定先后顺序,不应被解读为精确风险概率。对资金、库存或合规相关字段,即使分值不高,也应由责任部门单独复核。
规则优先级建议值 = 发生频率评分 × 影响程度评分 × 下游修复成本评分。例如,物料编码经常错选、会导致库存错误、还需要跨仓库调整,优先级就会高于一个偶尔漏填且可在报表中补充的备注字段。

下面是一组情景模拟,用于展示规则设计方法,不代表真实客户数据、行业平均值或某个 ERP 产品的实际能力。假设一家企业的销售订单需要经过客户确认、信用检查、仓库备货和财务对账,团队发现订单偶尔出现客户选错、交期不合理、数量单位不一致和例外未经记录的问题。
我不会一开始就把所有字段设为必填,而是先确认每个字段在流程中的角色:客户和物料决定业务对象;数量和单位决定执行依据;交期影响计划;折扣和信用状态影响审批;备注用于解释少数特殊情况。之后再为每类字段选规则,而不是套用同一种“不能为空”的处理方式。
| 字段 | 业务要求 | 建议校验 | 失败处理 | 设计提醒 |
|---|---|---|---|---|
| 客户 | 订单必须归属有效客户 | 从客户主数据选择,并检查状态 | 停用客户时拦截;历史补录走专门授权 | 相似名称需要显示编码或区域等区分信息 |
| 物料 | 物料必须可销售且单位有效 | 检查物料状态、销售属性和单位关系 | 无效物料拦截,替代料进入确认流程 | 不能只校验编码格式 |
| 数量 | 数量大于零且符合计量精度 | 检查数值范围、精度及包装倍数 | 明显不合法时拦截,特殊拆零按业务规则处理 | 不同物料可能有不同精度与最小单位 |
| 交期 | 交期不得早于订单日期 | 检查日期关系和业务日历 | 一般冲突提示;紧急需求转审批 | 节假日、跨时区或补录场景需测试 |
| 折扣 | 折扣在授权范围内 | 依据客户等级、产品类别或授权表检查 | 超过授权范围时转审批 | 阈值必须由价格制度负责人确认 |
| 信用额度 | 未超出可用信用范围 | 提交时核验订单与未结金额 | 超限时拦截或转授权审批 | 并发订单、退款和状态变更都可能影响结果 |
同一条规则,可以设计出完全不同的用户体验。比如“物料错误”过于笼统,用户不知道是编码不存在、物料已停用,还是当前单据类型不允许销售。更好的提示要尽可能说清原因,同时避免暴露无关的敏感信息或技术细节。
注意,这些提示只是设计示例。实际文字必须和系统能识别的条件一致。如果系统无法判断“超出授权范围”,就不能用这样的文案误导用户;应先确认价格政策、数据来源及系统能力。
上线后不能只看报错次数。报错多,可能代表规则拦住了大量错误,也可能代表规则本身不合理、提示难懂或用户不会操作。至少要把拦截事件与最终结果关联起来,区分用户修正、主管放行、管理员改规则、重复提交和绕行处理。
情景模拟一组连续四周的100张订单观察数据如下:上线前每100张订单记录到12次人工退回;规则运行后出现18次校验提示,其中10次由录入人直接修正,4次由主管审批放行,3次经复核确认规则条件不适用,另有1次需要管理员修正主数据。这里的数字只用于说明分析口径,不是任何企业的实际成效。
从这组示意数据看,“提示18次”不能简单说成“错误增加了50%”。其中10次是错误在提交前被修正,4次是被控制的业务例外,3次说明规则可能需要调整,1次指向主数据问题。评估系统效果时,应看问题最终去向,而不是把所有提示都算成坏数据。
| 观察指标 | 情景模拟结果 | 如何解释 |
|---|---|---|
| 每100张订单的提交前校验提示 | 18次 | 反映规则触发频率,单独看无法判断规则好坏 |
| 提示后由录入人直接修正 | 10次 | 说明提示提供了可操作的纠错机会 |
| 需要主管审批的例外 | 4次 | 说明有些情况不能只靠硬拦截处理 |
| 确认规则条件不适用 | 3次 | 应检查条件边界、业务类型和例外定义 |
| 需要修正主数据 | 1次 | 提示根因可能在基础数据,不应只调整录入规则 |
| 上线前人工退回记录 | 12次/100张订单 | 作为历史比较基线,需确保统计周期和退回口径一致 |

对高风险规则,建议先在一个单据类型、一个业务团队或一段限定周期内试运行。若系统支持,可以先设置为提醒而非强制阻断,收集触发样本;若不支持软提醒,则可通过测试环境、影子检查或人工抽查评估边界。试运行的核心不是追求尽快上线,而是验证规则判断与业务事实是否一致。
测试样本至少包括正常场景、最小值、最大值、空值、特殊业务类型、已停用主数据、重复提交、批量导入和接口写入。每种场景都要记录预期结果与实际结果。特别要测试“看起来不正常但业务允许”的案例,因为这类样本最容易在正式运行时造成集中投诉。
不要一开始就全面覆盖所有 ERP 模块。先从销售订单、采购订单、入库单、出库单或费用单中选一个高频、问题记录清晰、责任人明确的单据。优先级应来自企业自己的异常台账:哪些字段经常被退回?哪些错误会造成跨部门返工?哪些问题最晚才发现?
如果没有完整台账,可以先抽取一段时间的退单、改单、客服工单、库存调整和财务对账记录,统一原因分类。不要先选“配置起来最简单”的字段,而应选“错误发生后确实有治理收益”的字段。否则试点看起来上线顺利,却很难证明规则值得推广。
规则上线后,最常见的长期风险之一是没人知道它为什么存在。原业务负责人离职、产品版本升级或流程调整后,旧规则可能继续拦截业务,甚至无人敢改。每条规则都应有登记信息,包括业务依据、适用范围、系统位置、维护人、审批人、测试日期和最近复核时间。
| 登记字段 | 记录内容 | 解决的问题 |
|---|---|---|
| 规则编号与名称 | 便于沟通和定位 | 避免口头描述不一致 |
| 业务依据 | 对应制度、流程要求或责任人确认 | 避免规则失去来源 |
| 适用范围 | 单据类型、组织、角色和生效条件 | 避免一条规则误伤其他业务 |
| 校验节点与结果 | 输入、保存、提交、审批;提醒、拦截或转审批 | 明确系统行为 |
| 例外路径 | 可申请的情形、审批人和留痕要求 | 避免线下绕行 |
| 测试用例 | 正常、边界、异常和反例 | 变更时可做回归验证 |
| 维护责任 | 业务负责人、系统管理员和复核周期 | 确保规则随业务变化更新 |
每次规则触发后,至少需要能回答:发生在什么单据?哪个字段?哪条规则?谁处理?最终是修正、放行、退回还是改规则?若系统不能自动记录完整信息,可以在试点阶段用统一台账补齐。否则团队只有一堆错误弹窗截图,无法判断下一步该改规则还是改培训。
异常闭环可以按周或按月复核,重点看三类变化:同一规则反复触发且大多被放行,可能说明阈值或业务定义不对;一类错误持续转成主数据维护工单,可能说明主数据责任链不清;某规则上线后报错骤降但下游错误没有下降,则要检查用户是否绕过了校验入口。
字段校验效果至少要结合前置与后置指标。前置指标看规则是否被使用,例如触发次数、直接修正比例和审批放行比例;后置指标看下游问题是否减少,例如退单、改单、库存调整或对账差异。统计时需要统一分母、时间段、单据类型和异常定义,否则上线前后数字不可比。
这些指标没有脱离场景的通用目标值。试点阶段更重要的是建立可信基线,再观察方向变化。对于低频高影响问题,单月没有触发也不能证明规则无价值;对于高频低影响提示,则应结合用户耗时和误拦截成本判断是否值得保留。

业务条件变化后,不要只修改一条配置就直接发布。先确认变更影响哪些单据类型、组织、用户角色、接口和报表,再使用已有测试用例做回归。尤其是主数据、单位换算、价格政策和订单状态类规则,常常会影响多个流程,局部看似正确,不代表整体没有副作用。
对于规则的新增、放宽、收紧和停用,应记录变更原因、生效时间、批准人和回滚办法。若变更涉及历史单据,必须确认是只影响新单据,还是也会影响编辑中的单据、待审批单据和批量导入记录。边界不清,用户可能在同一天遇到不同结果,却不知道系统规则已经变化。
如果错误经常出现,而且会影响库存、金额、客户归属或下游执行,应优先检查字段来源、主数据状态和校验入口。对于明确没有例外空间的规则,可以在最早具备可靠数据的节点拦截,并提供具体修正指引。与此同时,要验证手工录入、导入和接口入口是否一致执行,避免只挡住一个页面。
这类规则的代价是开发、测试和维护投入较高。只有在业务依据明确、判断条件稳定、责任人清晰的情况下,强拦截才值得优先采用。若业务规则频繁变化,先做提醒和监测可能比立刻硬拦截更稳妥。
低频不代表低风险。极少发生但可能造成重大库存、资金或合规影响的错误,应优先确保规则覆盖所有入口,并安排抽样复核和异常告警。由于样本少,单靠短期统计很难判断效果,最好结合流程风险分析、历史事件和相关责任部门的判断。
这类场景通常需要设计明确的例外审批,避免业务因特殊情况无路可走。取舍时应关注误拦截是否会导致业务延误,以及放行权是否被限定到适当角色。不要把“只有一次例外”当成取消规则的理由,也不要因为风险听起来很大就忽略正常业务成本。
如果用户常填错,但问题容易发现且修正成本不高,可以优先改善下拉选项、默认值、字段说明和输入顺序。与其不断弹出红色错误,不如减少自由文本、展示更清晰的选项、把常见字段放到更容易看到的位置。
这种策略的优势是用户阻力较小,实施成本通常也更可控;不足是对复杂场景的拦截力度有限。若后续统计发现同类错误已经造成下游返工,再考虑升级为条件校验或流程节点检查。
有些校验需要读取接口余额、实时库存、外部状态或跨模块累计数据。若数据更新存在延迟、并发写入或接口失败,系统看到的值可能不是业务最终值。此时应明确校验的数据时间点,并区分“暂未发现异常”和“保证绝对可用”。
可选方案包括在提交时重新核验、对接口失败采用受控暂存、将高风险订单转人工复核,或在下游执行前再做一次确认。具体方案要看系统能力和风险承受度。更严格的检查可能增加等待时间,实时性与稳定性之间需要结合业务后果权衡。
| 业务情况 | 优先做法 | 适合的控制力度 | 需要接受的代价 |
|---|---|---|---|
| 高频且高影响 | 前置校验、核对所有数据入口、明确责任 | 强拦截或受控审批 | 配置与回归测试投入增加 |
| 低频但高影响 | 确保覆盖、安排复核、设计授权例外 | 关键节点拦截或审批 | 需要保留审计和异常跟踪 |
| 高频但低影响 | 优化选项、默认值和提示 | 提醒或轻量约束 | 短期内可能仍需人工抽查 |
| 依赖不稳定外部数据 | 明确数据时效并设置复核节点 | 提交重验或人工确认 | 可能增加等待和流程成本 |
| 业务定义尚未统一 | 先统一制度、术语和例外条件 | 暂不做强拦截 | 需要接受一段时间的观察与治理 |

如果企业尚未统计退单、改单和例外放行,不要直接套用别人的“准确率提升目标”。可以先选一个单据类型,记录四至六周的提交量、校验触发、人工退回、修正耗时、审批例外和主数据问题。这个时间不是统一标准,而是让团队获得初始观察周期;业务波动明显时,还需要覆盖高峰和低峰。
在基线阶段,重点是统一定义。例如,“一次退回”是按单据计数还是按字段计数?同一单据被退回两次如何处理?审批放行算异常还是合法例外?未提交草稿是否计入分母?没有这些定义,前后对比只是表面上的数字变化。
这份清单适合在上线评审时逐项确认,也可以改成规则登记表中的验收字段。若某条规则在业务定义、数据来源或例外处理上仍有空白,优先补齐这些前置条件,不要因为配置页面已经准备好就匆忙上线。

ERP 数据录入进阶,不是给每个输入框都加上一道门,而是找出那些最容易影响后续业务、又能被系统可靠识别的问题。必填、格式和范围只是起点;真正拉开差距的,是字段之间的关系、规则发生的时机、提示是否可执行,以及例外是否有责任、有记录。
我建议下一步先选一类高频单据,挑出三到五个高风险字段,记录业务要求、触发节点、失败处理、例外路径和验证样例。随后用一段时间收集提示去向与下游返工,不急着追求规则数量,也不使用未经测量的准确率承诺。
一条成熟的校验规则,应当能回答“为什么拦、拦谁、何时拦、怎么修、谁能放行、变更后怎么验证”。当团队能稳定回答这些问题,字段校验才不只是系统里的配置项,而是可以持续维护的业务控制能力。
我之前以为字段校验就是把必填项设好,后来发现单据能保存,不代表数据就能用于后续业务。像日期、数量、客户和价格之间的关系,应该分别怎么检查?哪些规则值得优先配置?
字段校验不只是“必填或不填”,更重要的是让数据符合后续业务使用条件。常见规则可以按由简单到复杂的顺序梳理:必填与条件必填、格式与数据类型、范围与边界、枚举或主数据引用、重复性,以及跨字段或跨单据逻辑。例如销售单可以要求客户、日期和商品必填;数量必须大于零;客户应从有效客户档案中选择;
若选择了某类业务类型,再要求填写对应的原因字段。具体规则要以企业制度和系统能力为准,不能把示例阈值直接当成通用标准。优先级上,先处理高频、后果明确、容易自动判断的错误,例如漏填关键字段、日期格式错误、引用了无效主数据。涉及业务判断的情况,不要急着用硬性规则拦截,可考虑提示或审批。
规则清单至少记录“字段、业务依据、校验条件、提示内容、例外处理人”,避免只配置规则、不知道规则从何而来。
我遇到过填写到一半才发现系统不允许保存,也遇到过单据提交后才提示字段有问题。前一种打断录入,后一种又容易返工;我该怎么判断校验时机,才能既不影响操作又尽早发现错误?
校验时机应根据错误能否即时判断、修正成本和业务风险决定,而不是所有规则都放在同一个节点。输入时适合检查格式、必填提示和明显越界;保存或提交时适合执行必须满足的完整性规则;审批环节则适合处理需要业务人员判断的例外。以采购单为例,数量必须是有效数字,可在录入时提示;
供应商是否仍在可用状态,可在保存或提交前核对;临时供应商是否允许采购,可能需要审批确认。若把所有情况都设置为输入时强拦截,用户可能无法完成草稿;若所有检查都拖到审批后,修正成本又会增加。批量导入和接口写入也要纳入设计,不能只测试页面手工录入。
上线前分别检查新建、编辑、导入和提交等路径,并确认报错能指出具体行、字段和处理方法。不同 ERP 对触发时机的支持不一致,配置前应核对实际版本和模块能力。
我担心规则设得太宽,错误数据会流到后续环节;但规则太严,业务人员又可能被合法例外卡住,最后通过备注或其他字段绕过去。有什么办法判断一条规则应该强制拦截、仅提醒,还是交给审批处理?
规则越多、越严格,不等于数据质量越高。关键是规则是否有明确业务依据,以及拦截是否发生在合适的节点。没有依据的限制会制造误拦截,用户为了继续办理,可能改填无关字段或绕开系统,反而让数据更难理解。可以按后果分级:违反明确制度且会造成后续单据无法处理的,设置强制拦截;
存在风险但有合理例外的,先提示并要求填写原因或走审批;主要用于规范习惯、但暂时不影响业务的,先做提醒并观察。比如数量为零通常可直接拦截;某类客户缺少常规信息是否允许临时保存,则应结合业务流程判断。试运行时记录每条规则的触发次数、误拦截反馈和例外原因,不必预设虚构的改善比例。
若某条规则频繁被人工放行,先检查业务定义、适用范围和主数据是否准确,再决定修改规则,而不是简单要求用户“按系统提示操作”。
我准备整理一批录入规则,但担心只拿正常单据测试,正式上线后才发现边界情况过不去。比如历史单据、批量导入和特殊业务类型可能都有差异,我应该准备哪些测试场景,规则又该由谁维护?
测试不应只验证“正确数据能不能保存”,还要确认错误数据能否被准确识别、合法例外能否继续办理。对每条规则,至少准备正常值、缺失值、边界值、明显错误值和业务例外五类场景,并记录预期结果与实际结果。例如日期字段可检查正常日期、空值、格式不符和业务允许的特殊日期;数量字段可检查正数、零、负数及边界值;
跨字段规则则要同时测试条件成立与不成立。再分别验证手工录入、编辑已有单据、批量导入和提交审批,避免规则只在某一种操作路径生效。规则之间也要做冲突检查:一条规则要求字段必填,另一条又允许特定业务类型留空时,应明确优先级和适用条件。上线后指定业务负责人确认规则含义、系统管理员负责配置与变更记录;
业务标准变化时先评估影响,再测试和发布。涉及历史数据时,需先确认规则是否会阻止旧单据查看、修改或补录。


读者评论
把提醒、拦截和转审批分开设计很实用,尤其是有合理例外的业务,硬性报错确实容易造成绕行。
文章强调在错误最容易修正的节点发现问题,同时提醒跨单据校验要考虑数据时效,这点对实际配置很重要。
字段校验不能替代主数据治理,也要覆盖导入和接口入口;只在页面测试通过,未必能保证全流程数据一致。