ERP 数据录入方案最容易出现的失误,不是“少写了一条必填规则”,而是把格式正确误当成业务正确:日期能解析、物料编码有值、数量大于零,单据仍可能引用了错误组织、失效主数据或不适用的业务期间。字段校验设计的关键,不是尽可能多地拦截,而是让规则在正确的入口、正确的时点执行,并给合理例外留下可追踪的处理路径。
我在审查 ERP 数据录入方案时,会先把“字段有值”“格式正确”和“业务允许”拆开讨论。它们看起来都像校验,实际处理的是不同问题:字段是否为空,是输入完整性;编码是否符合格式,是表示规范;该编码能否用于当前组织、单据日期和业务状态,则是业务适用性。
例如,某物料编码可能符合系统规定的长度和字符格式,也能在主数据表中查到,但它已停用,或者只允许某个组织使用。若校验只做到“格式正确”,单据仍可能保存成功,后续才在审批、出库或对账环节暴露问题。
因此,字段校验方案至少要回答四个问题:校验什么、在哪里校验、什么时候校验、失败后怎样处理。缺少其中任何一项,规则都可能停留在文档里,或只在某个入口偶然生效。
把所有异常都直接拦截,听起来稳妥,却未必符合业务现场。部分信息可以在录入时确定,部分信息要等到提交或审批时才完整;还有些业务确实存在临时替代、紧急采购或跨组织协作等例外。
更实用的目标,是让高风险错误尽可能早地被发现,让低风险提示不阻断用户工作,并为确需放行的例外规定责任人、理由和留痕要求。好的校验不是“系统不让错”,而是错误在进入下游之前可被识别、解释和处置。
我通常建议先判断错误的后果,而不是先讨论技术上能不能加规则。错一个字段会造成轻微返工、影响库存或财务结算,还是可能触发合规风险?越接近资金、库存、税务或不可逆业务动作,越需要明确的强校验和责任控制。
| 风险层级 | 典型情况 | 建议处理 | 设计时要追问 |
|---|---|---|---|
| 低 | 描述字段格式不统一,但不影响单据流转 | 提示或提交前检查 | 是否真的需要拦截?能否后续规范? |
| 中 | 引用对象有效,但组织、日期或状态不匹配 | 保存或提交时阻断,提供可修正原因 | 用户是否能在当前环节自行修正? |
| 高 | 金额、数量、权限或关键业务状态可能导致重大后果 | 关键节点强校验,例外须授权并留痕 | 谁承担放行责任?放行后如何审计? |
上表是方案讨论时的分级框架,不是某个行业统一适用的风险标准。具体等级应由业务负责人、数据责任人和系统负责人结合流程后果共同确认。

ERP 数据未必只从一个页面进入。常见入口包括手工录入、批量模板、接口同步、移动端操作以及其他系统回写。某个页面上弹出校验提示,并不能证明其他入口也执行了相同规则。
例如,录入页面限制数量必须大于零,但批量导入模板没有做同等检查;用户在页面上无法保存负数,接口却可能把错误值传进来。此时,“页面校验通过”只说明页面路径受到限制,不代表整条数据链路具备同等保护。
方案评审时,我会把数据入口画成一张简图,逐个确认每个入口经过哪些规则、错误如何返回、异常记录能否定位到具体单据和行号。这个动作看似偏技术,却能避免需求只覆盖用户最熟悉的界面。
格式校验容易被看见,因为它能在输入框旁给出即时反馈。更难发现的是字段之间、字段与主数据之间,以及字段与业务状态之间的关系错误。金额格式合法,不代表币种与组织设置匹配;日期格式合法,不代表允许记入该业务期间。
这也是为什么字段清单不能只写“类型、长度、是否必填”。对每个关键字段,还要问它依赖什么:是否引用主数据、是否受组织范围限制、是否依赖单据状态、是否与其他字段形成组合约束。
某个输入错误若在录入时就能修正,通常只影响当前用户的操作;若在提交后才被发现,可能需要退回单据;若已进入审批、库存或财务处理环节,修复就可能涉及多个角色和关联记录。实际影响取决于系统流程,不宜用一个固定倍数描述,但处理链条变长往往会增加协调成本。
所以,校验时机不是简单的“越早越好”。太早拦截会让用户在信息尚未准备齐全时反复受阻;太晚发现则会扩大返工范围。设计时要看数据何时变得足够可靠,以及用户何时仍有能力修正。

每增加一条规则,都可能增加开发、测试、培训和后续维护工作。规则写得越细,越需要回答边界情况:主数据临时停用后,历史单据能否修改?组织权限变化后,已创建的草稿如何处理?业务日期跨期时,系统按录入日期还是单据日期判断?
因此,规则设计不只是“能不能拦住”。还要计算误拦截、规则冲突和业务变更带来的成本。一个无法由业务解释、也没人负责更新的限制,可能比一条清晰的提示更危险。
必填、长度、数据类型和正则格式是基础,但只覆盖了“值长什么样”。它们无法单独证明这个值在业务上可用。例如,输入值符合编码格式,却引用了不存在的对象;日期可以解析,却落在不允许处理的期间。
我会把规则分成四层:输入完整性、表示规范、引用关系、业务上下文。不是每个字段都需要四层校验,但关键字段至少要逐层判断“是否适用”,而不是默认格式检查已经足够。
前端校验通常体验较好,能够在用户输入时快速提示。但如果批量导入、接口或其他写入路径没有同等规则,前端就只是一个方便入口,不是数据正确性的最终保障。
这并不意味着所有规则都必须复制到每一层。更稳妥的做法,是区分用户体验校验和最终业务校验:页面可以提前提示;关键业务规则应在可信的写入路径上再次确认。实施方式需结合系统架构、接口边界和性能要求,不宜把某一种技术方案当成所有 ERP 的通用答案。
录入时强拦截适合那些条件已经明确、用户能立即修正、且错误后果较高的规则。若规则依赖审批结果、组织状态刷新或后续业务信息,录入阶段可能缺少判断条件,强行拦截会导致反复报错。
还有一种常见情况:用户必须先保存草稿,才能补齐其他信息。此时若把“草稿保存”和“提交审批”设成同一套校验,用户可能无法保存未完成工作。可以考虑按状态分层:草稿允许保存必要字段,提交时执行更完整的校验,过账或确认时再执行关键业务约束。
严规则能降低某些错误,却也可能造成绕行:用户填写占位值、借用其他组织编码、转到线下表格处理,或者长期请求管理员开白名单。系统表面上拒绝了不合规输入,业务实际上可能转向更难审计的路径。
判断一条规则是否有效,不能只看拦截次数。还应看误拦截、人工放行、重复提交、线下绕行和规则维护情况。如果拦截很多,但原因高度集中在同一条不适用条件上,问题可能不在用户,而在规则设计。

“校验失败”“数据异常”对用户几乎没有指导作用。一个可操作的提示,至少应说明哪个字段有问题、问题的判断依据是什么、用户下一步可以做什么。对于批量导入,还要尽量提供行号、列名和失败记录标识。
不过,提示也不能为了详尽而泄露不该展示的信息。涉及权限、敏感数据或内部控制规则时,应说明用户可以采取的动作,而不是暴露全部后台判定细节。
“能查到”不等于“能使用”。主数据可能存在有效期、启用状态、组织范围、业务类别或授权范围等条件。只做存在性查询,会把“存在但不适用”误判为合法。
设计时应区分“对象不存在”和“对象存在但当前场景不可用”。两类问题的处理办法不同:前者可能需要补建或纠正编码,后者可能要调整组织、日期或状态,不能都用一句“无效编码”打发。
新规则上线时,容易只测试新增录入,却忘记已保存的草稿、历史单据、导入模板和接口调用。规则变严后,历史数据可能无法修改;字段含义改变后,下游报表可能出现口径不一致。
每次规则变更,都应明确生效范围:只影响新数据,还是也影响历史数据;只校验提交动作,还是修改旧单据时也校验;接口调用方是否需要同步改造。系统是否具备规则版本记录、审计日志或回滚能力,应按实际产品确认,不能在方案里默认存在。
字段清单是起点,但分类决定了接下来要问什么。基础文本字段主要关注必填、长度和规范;主数据引用字段要看存在性、状态和适用范围;数量、金额、日期字段要看精度、范围、单位和业务期间;权限或状态字段则要确认谁能改、在哪个节点改。
| 字段类别 | 常见校验问题 | 容易漏掉的上下文 | 建议确认人 |
|---|---|---|---|
| 自由文本与说明 | 必填、长度、敏感字符、规范格式 | 是否允许特殊符号,是否影响搜索或打印 | 业务负责人、产品或实施人员 |
| 主数据引用 | 是否存在、是否启用、是否可选择 | 组织范围、有效日期、业务类别 | 主数据责任人、业务负责人 |
| 数量、金额与日期 | 精度、范围、单位、日期合法性 | 币种、计量单位、期间、舍入方式 | 财务、供应链或相关业务负责人 |
| 状态与权限相关字段 | 可否修改、可否提交、可否越级处理 | 角色职责、审批节点、业务状态转换 | 流程负责人、系统管理员 |
分类不是为了增加文档栏目,而是为了避免用同一套“必填、格式、长度”模板覆盖所有字段。主数据引用和金额日期字段通常需要额外确认业务上下文,权限状态字段则需要与流程设计一起审查。
一条可落地的规则,不能只写“数量必须大于零”。它还需要说明适用对象、触发时机、比较口径、失败动作、例外条件和责任人。若不同团队对这些词理解不一,开发完成后很可能出现“规则做了,但验收不是这个意思”。
| 设计项 | 要写清的内容 | 示意写法 |
|---|---|---|
| 字段与场景 | 规则适用于哪个单据、字段和业务对象 | 采购申请明细中的申请数量 |
| 判断条件 | 判断依据、数据范围、精度及关联条件 | 数量须大于零,精度按该物料单位配置 |
| 触发时机 | 录入、保存、提交、审批或过账 | 草稿保存检查必填,提交时检查主数据状态 |
| 失败处理 | 提示、阻断、转人工审核或记录待处理 | 提交阻断,并指出单据行与失败字段 |
| 例外与责任 | 例外条件、授权角色、理由和记录要求 | 仅由指定角色审批放行,需填写业务原因 |
| 验收证据 | 测试数据、预期结果及覆盖入口 | 页面、导入和接口分别验证正向与反向样例 |
表格中的内容是设计示意,不是固定业务规则。比如“数量大于零”是否成立,取决于业务场景;退货、冲销或特殊调整场景可能使用不同方向和符号,不能把示例直接复制成生产规则。
我会用两个问题判断什么时候校验:第一,判断所需的信息在当前环节是否已经可靠;第二,发现错误后,用户是否还能低成本修正。若数据尚不完整但用户需要保存草稿,强制在输入时检查最终条件往往不合适;若错误一旦过账就难以撤回,关键约束就不应拖到过账后才发现。
| 校验时点 | 适合发现的问题 | 主要收益 | 主要限制 |
|---|---|---|---|
| 输入时 | 格式、长度、明显缺项 | 反馈快,用户容易立即修正 | 不适合依赖尚未确定的信息 |
| 保存时 | 草稿所需的最低完整度、基础引用关系 | 减少不可用草稿进入后续环节 | 规则过重可能妨碍分阶段录入 |
| 提交时 | 字段间关系、主数据状态、业务资格 | 信息更完整,适合做业务级检查 | 发现后可能需要返回修改或补资料 |
| 审批或过账前 | 权限、业务状态和高后果条件 | 关键动作前再做最终确认 | 发现问题较晚,需控制返工和重复处理 |

给每条关键规则建立“入口覆盖矩阵”,比在需求文档里笼统写“系统需校验”更容易验收。矩阵至少列出页面、批量导入、接口和移动端等实际入口,并标记每个入口是完整校验、部分校验还是未覆盖。
页面上的即时检查可以改善使用体验;可信写入路径上的业务校验负责守住数据边界。对于批量导入,重点要确认错误是否逐行返回;对于接口,重点要确认失败码、失败原因、重试策略和幂等处理;对于离线模板,还要确认模板版本与规则版本是否一致。
如果某个入口确实无法执行完整校验,也应把边界写出来,并设置后续补偿机制。例如,先接收待处理数据,再由人工复核或异步校验;不能让“这个入口暂时做不到”变成没有责任人的风险空白。
提示适合提醒用户,但不阻止当前动作;阻断适合高风险且条件明确的问题;转人工审核适合规则无法覆盖、但业务确有合理例外的情况。三者不能混为“弹窗报错”,否则用户不知道哪些问题可继续、哪些问题必须解决。
例外处理至少要明确:谁可以申请、谁可以批准、需要填写什么理由、系统是否记录放行前后状态、例外是否只对当前单据有效。若长期用同一条白名单解决反复发生的情况,应复核业务规则本身,而不是无限扩大例外范围。
只测试一条正常数据,是字段校验验收中最容易低估风险的做法。规则要覆盖正常值、缺失值、边界值、关联对象不可用、字段组合冲突、权限不足、例外申请以及多种录入入口。
下面用一张采购申请单做情景演练。它是用于说明设计方法的模拟案例,不代表某家企业的真实实施记录,也不代表特定 ERP 产品的默认功能。字段名称、审批条件和数据数值都应由实际业务确认后再配置。
假设单据包含申请组织、申请人、物料编码、数量、计量单位、需求日期和成本归属。若只做必填和格式校验,系统可以保证用户填了字段,却不能保证物料适用于申请组织、计量单位与物料主数据匹配,或者需求日期符合当前业务规则。
我会先从“单字段规则”开始,再追问字段间关系。申请数量是否允许小数,不能只看输入框类型,还要看物料对应的计量单位精度;需求日期是否允许过去日期,可能要根据单据类型、申请状态或业务日期判断;成本归属是否能选择,则可能受组织权限和业务范围限制。
| 字段 | 表面检查 | 业务关系检查 | 建议触发时点 | 失败反馈示意 |
|---|---|---|---|---|
| 申请组织 | 不能为空 | 申请人与组织的授权关系是否有效 | 保存或提交 | 说明当前用户无权在所选组织提交申请 |
| 物料编码 | 格式符合编码规范 | 物料是否存在、启用且适用于该组织和单据类型 | 提交前复核 | 区分编码不存在与当前组织不可用 |
| 申请数量 | 必须有值,数值可解析 | 数量范围和精度是否与物料单位匹配 | 输入提示与提交复核 | 指出不符合的数量精度或业务范围 |
| 计量单位 | 不能为空 | 单位是否为该物料允许使用的单位 | 选择时提示、提交时复核 | 指出所选单位与物料定义不匹配 |
| 需求日期 | 日期格式正确 | 是否满足该单据类型的日期规则 | 保存或提交 | 明确日期不符合哪条已确认规则 |
| 成本归属 | 不能为空或符合字段类型 | 对象是否有效,是否在组织和用户授权范围内 | 提交 | 提示可选择的修正方向,避免泄露无权查看的数据 |
这张表故意没有替企业填入具体的最小数量、日期限制或权限条件。没有业务依据的数值写进校验规则,不会让方案更专业,只会把未经确认的假设固化成系统行为。
设想测试人员提交四组模拟数据:第一组所有字段有效;第二组物料存在但对申请组织不可用;第三组数量格式正确但精度与单位定义不一致;第四组页面录入可通过,但接口传入了已停用的物料。这里的目的不是统计错误率,而是检查规则是否能识别“格式合法、场景不合法”的差异。
| 测试样例 | 页面录入预期 | 接口或导入预期 | 验收关注点 |
|---|---|---|---|
| 字段和上下文均有效 | 允许继续 | 允许继续 | 检查正常流程是否被多余限制影响 |
| 物料存在但组织不适用 | 提交时提示并阻断 | 返回可定位的业务错误 | 不能只校验物料是否存在 |
| 数量精度不符合单位要求 | 尽早提示,必要时提交阻断 | 拒绝或进入明确的待处理流程 | 多个入口使用相同精度口径 |
| 物料已停用 | 显示对象状态或修正动作 | 不得因绕开页面而写入有效单据 | 状态判断是否发生在可信写入路径 |
如果页面、导入和接口得出不同结论,验收不能只以“页面操作成功”为准。要进一步定位差异来自规则未覆盖、主数据同步时差、权限上下文不一致,还是入口本身采用了不同业务口径。

假设页面只返回“物料校验失败”,用户仍不知道问题是编码错、状态停用,还是组织不匹配。更有帮助的反馈是区分原因,并告诉用户可采取的动作,例如核对编码、选择适用组织或联系主数据责任人。
对于批量导入,提示还要明确文件行号、字段名和错误类别。若一个文件有多行错误,系统只报“导入失败”会迫使用户反复上传、逐次猜错。错误反馈能否被修复,比错误信息是否听起来专业更重要。
模拟验收可以记录每类错误是否被识别、是否能定位、是否能修复、修复后能否重新提交。上线后若要评估规则效果,可在企业内部定义观察指标,但应明确数据口径和统计周期,不能把单次测试结果包装成普遍改善数据。
这些指标是建议的内部观察口径,不是外部行业基准。若没有稳定的样本、明确的分母和可追溯记录,就不应给出看似精确的改善百分比。对方案决策而言,先把口径建好,通常比先做一张漂亮的成绩图更有价值。
需求阶段最重要的不是列出所有字段,而是确认数据从哪里来、被谁使用、在什么节点产生业务后果。建议先选一个高频或高风险单据作为样板,把字段、主数据依赖、写入入口、责任人和下游处理画出来,再扩展到其他对象。
如果项目已进入实施,不一定要推翻现有方案。可以先查找前端与导入、接口之间的覆盖断点,以及提交、审批、过账前是否存在关键复核。先堵住会导致错误进入下游的高风险缺口,再逐步改善低风险格式体验。
每一项改动都要检查对现有业务的影响。尤其是增加强制校验时,要准备合法边界样例和例外流程,避免上线后用户只能通过线下表格或管理员临时操作完成工作。
导入失败多,不代表规则一定太严。应先把失败原因分成格式错误、主数据缺失、组织权限、期间状态、字段关系和接口异常等类别,再检查错误是否可定位、是否集中在某个模板版本或某个数据来源。
如果大量失败都属于同一类,可能是主数据准备不足、模板说明不清或规则口径变更未同步。直接关闭校验虽然能提高导入成功率,却可能把可见错误变成下游的隐性错误。只有确认某条规则本身不适用,才应调整规则,并同步更新测试和责任说明。
当业务经常提出例外,先确认它是一次性事件、季节性差异、特定组织政策,还是主规则没有覆盖的常规场景。一次性事件可以走有时限、有审批和有记录的例外流程;反复出现的常规情况,通常值得重新评估业务规则是否应正式分支处理。
例外记录至少要关联申请单据、申请人、批准人、原因、适用范围和发生时间。若系统不能自动记录这些内容,就应评估替代控制办法,并明确它的局限。不能把“管理员知道这次放行了”当作可审计记录。
规则变更前,先判断新旧规则分别影响哪些对象、入口、状态和历史数据。变更后至少回归正常数据、边界数据、异常数据、例外流程和跨入口路径。若接口调用方、导入模板维护人或业务培训资料会受到影响,要安排同步更新。
对经常变化的规则,应明确谁有权提出、谁批准、谁维护配置、谁验收结果。规则若没有责任人,时间一长就容易变成“系统为什么这么限制没人说得清”,最终只能靠临时绕行解决。

| 策略 | 适用条件 | 收益 | 代价与风险 |
|---|---|---|---|
| 强拦截 | 判断依据清晰,错误后果高,用户可在当前环节修正 | 减少明显不合规数据进入后续流程 | 误判时会阻塞工作,需要明确申诉或例外路径 |
| 提示后继续 | 问题风险较低,或当前阶段还不能作最终判断 | 保留操作弹性,减少不必要中断 | 用户可能忽略提示,需设计后续复核和记录 |
| 转人工审核 | 规则无法完整表达,但业务确有特殊情况 | 保留业务判断空间并可设置责任人 | 增加人工成本,审批时效和一致性需管理 |
| 进入待处理队列 | 数据可暂存,但必须在下游动作前补齐或核实 | 适合异步数据处理和批量场景 | 需有人认领、设定时限并监控积压 |
如果错误一旦进入下游就难以修复,强拦截更有理由;如果规则依赖人才能判断,机械拒绝可能制造绕行;如果用户只是还没完成录入,允许保存草稿可能更合理。最终选择应由错误后果、规则确定性和修复成本共同决定。
即时校验的优势是反馈快,适合格式、长度和明显缺项;提交校验的优势是上下文更完整,适合业务关系和主数据状态。两者不是二选一:可以在输入时提供轻量反馈,在提交时执行完整检查,并在不可逆操作前复核关键条件。
但要避免同一规则在不同阶段给出互相矛盾的结论。例如,页面提示“可选”,提交时却因为组织限制被拒绝。若条件确实会随状态变化,应在提示中说明当前判断的适用范围,并让最终规则有明确依据。
自动化适合条件清晰、数据来源可靠、重复性高的判断;人工复核适合少见例外、含义需要业务判断或规则尚未稳定的场景。人工不是自动化失败后的临时补丁,而是需要明确职责、工作量、响应时限和留痕要求的流程环节。
当人工审核量持续增加时,先分析原因:是例外真的不可避免,还是数据采集质量差、主数据治理不充分、提示不清晰或规则设计冲突。只有把原因拆开,才能判断应投资于规则优化、源头治理还是审核能力。

统一规则有利于降低理解成本,也便于跨入口测试;业务差异规则能适应组织、单据类型和流程差别,但会增加维护复杂度。判断是否拆分,关键是差异有没有明确业务依据、是否可被测试和维护,而不是为了满足每个部门的临时偏好不断增加分支。
对确有差异的规则,要记录适用范围和版本变更责任。对只在少数情况下出现的差异,可以考虑受控例外,而非把主规则拆成大量难以解释的条件组合。无论采用哪种方式,都要确保用户能理解自己当前处于哪一种业务条件下。
若团队现在还没有统一的校验规范,我建议从一个高频或高风险业务对象开始,不要先企图为整个 ERP 建立一套覆盖所有字段的巨型规则表。挑一个具体单据,追踪它从录入到下游处理的路径,完成字段分类、入口矩阵、时机判断和验收样例。
样板跑通后,再把可复用的字段规则、错误提示原则和测试方法推广到其他对象。这样做能更早暴露组织、主数据和接口层面的真实差异,也能避免把未经验证的模板一次性复制到大量流程中。
字段校验常见误区的共同根源,是把校验看成输入框上的技术功能,而不是贯穿数据入口、业务规则、流程节点和责任分工的一种控制机制。只看必填和格式,会漏掉业务关系;只做页面检查,会留下其他入口的旁路;一味强拦截,则可能把合理业务推向线下。
我更看重一条规则能否被解释、被正确执行、被充分测试,并在例外发生时追溯责任。下一步,可以选一张正在使用的 ERP 单据,按“字段,判断条件,触发时机,失败动作,例外处理,覆盖入口,测试样例”逐列盘点。只要这张表能让业务、实施、开发和测试说的是同一件事,字段校验才真正从文档走到了可验收的方案。

我在梳理 ERP 数据录入规则时,发现很多字段看起来填对了,后续单据却还是无法处理。比如日期格式正确、物料编码也存在,为什么提交时仍可能报错?我应该怎样区分格式校验和业务校验?
字段校验至少要分成三层:字段本身是否合法、字段引用的数据是否可用、字段组合是否符合当前业务。格式正确只说明输入长得像一个日期或编码,不代表它适用于这张单据。例如采购入库单的物料编码可能存在,但物料已停用;供应商也可能有效,却不在当前组织的可选范围内。
示意规则可以写成“物料有效、适用于当前组织,且在单据日期处于可用状态”,而不是只检查编码是否为空。设计时可为每个字段记录校验对象、依据、触发时机和失败处理。具体状态、组织范围及有效期规则要由业务负责人按企业配置确认,不能仅凭字段名称推断。
我担心只在页面上做校验,用户通过批量导入或接口写入时会绕过规则。可如果每个入口都重复写一遍,又怕规则改了之后出现不一致;通常该怎么设计校验位置?
不要把问题简化成“前端还是服务端二选一”。页面校验适合尽早提示用户,例如必填项缺失;服务端或统一业务规则层更适合承担最终校验,因为批量导入、接口和其他客户端也可能写入相同数据。建议先列出所有写入入口,再逐项标注规则在哪一层执行、失败如何定位到具体记录。
若页面检查了必填项,但导入接口没有检查物料状态,就可能出现页面能拦、接口能写的规则裂缝;这需要通过实际调用链验证,而非预设系统架构。示意做法是:前端负责即时反馈,统一规则层负责一致性检查,数据持久化前再确认关键约束。哪些规则可以共用、哪些必须在特定环节执行,应按系统能力和数据风险决定。
我遇到过录入时提示太多、业务人员还没填完就被打断的情况,也担心等到审批才发现问题会造成返工。不同类型的规则,应该怎样选择校验时机?
可按“用户何时有能力修正”和“错误继续流转的代价”来选择时机。缺少必填值这类问题,通常适合在保存或提交时提示;依赖完整单据上下文的规则,可能更适合在提交或审批前检查。例如录入采购单时,系统可以先允许保存草稿;提交前再检查供应商、组织、物料状态及字段之间的关系。
若某项检查必须等审批时才能确定,则应明确说明原因,并避免把可提前发现的问题全部拖到审批环节。为每条规则写明触发点和失败动作:即时提示、阻止保存、阻止提交,或转人工处理。选择时还要测试用户修改数据后能否重新校验,避免规则虽拦住了错误,却让用户不知道下一步该做什么。
我不想让系统放过明显错误,但业务总会有临时情况;如果一遇到例外就加白名单,规则可能越来越难维护。上线前我该准备哪些测试,才能判断校验是否真的合适?
先把规则分成“必须拦截”“提示后可继续”和“需授权例外”三类,不要把所有异常都设成同一种处理方式。例外应写清适用条件、审批责任和记录要求;如果无法说明例外边界,就不宜直接做成长期白名单。
以日期字段为示意,测试不应只有一个正常日期,还应覆盖缺失、格式错误、边界日期、跨业务期间日期,以及通过导入或接口提交的情况。具体日期限制需要业务确认,不能把示例规则当成所有企业通用标准。上线前至少检查正常值、无效值、边界值、字段冲突、引用对象不可用、多入口写入和例外审批。
还要复测错误提示能否指出字段、原因与处理动作,并评估规则变更对导入模板、接口和历史数据的影响。


读者评论
把手工录入、批量导入和接口写入分开核查很重要,页面校验通过并不代表其他入口也受到了保护。
按草稿、提交和过账分层校验比较贴合实际流程,能避免信息未齐时被过早拦截,也减少错误流入下游。
文章没有把强拦截当成唯一答案,提出记录例外原因和责任人,这对紧急业务放行后的追溯很有帮助。
主数据校验不仅要看编码是否存在,还要核对状态、有效期和组织范围;区分具体失败原因,也更便于用户修正。