单据录错了,用户的第一反应是让我改一下。从使用体验上看,直接改最方便。从管理角度看,直接改会破坏记录,事后无法还原发生了什么。两边的诉求都需要兼顾。
作废、撤销、反审核这三种机制,就是用来平衡这件事的,前提是用对地方。
一、三种机制各自管什么
作废针对的是还没进入流转的单据,或者确定不办了的单据。作废之后单据还在,状态变成已作废,不能再参与后续流程。它保留记录,只是标记这张单据不算数了。
撤销针对的是操作动作,比如提交错了、选错了审批人。撤销是把上一次动作退回来,回到操作前的状态。它改变的是流程位置,不是单据内容。
反审核针对的是已经审核通过的单据。审核是一个有确认含义的动作,反审核意味着要撤回这个确认。这类操作通常要限制权限,并且必须有理由记录。
二、关键是要留痕
不管用哪种机制,原始记录和操作痕迹都要留着。
比较稳妥的做法是,被作废的单据不删除,状态标为作废并记录作废人和作废时间、原因。如果业务要求重新录入,新建一张新单据,两张单据之间建立引用关系,能互相查到。
反审核要记清楚四件事,谁反的、什么时间、什么原因、反完之后是修改还是重新提交。这四项缺一项,事后审计就说不清楚。原因这一项建议做成必填,不能随便填两个字应付。
还有一种做法是保留历史版本。单据每次修改都存一个版本,查看的时候能看到每一版的内容和修改人。这种做法对存储要求高一些,但对涉及金额、考核这类敏感业务的系统,值得做。
三、容易踩的几个坑
第一个坑是状态设计得不全。只设计了草稿、已提交、已通过三个状态,遇到退回、作废、挂起这些情况就没地方放,只能借用其他状态,结果状态含义混乱。
第二个坑是允许无限制反审核。审核通过之后随便反,走个流程就等于没有,审核这个环节就失去了意义。合理做法是限制反审核的次数和时限,比如超过一定时间或者已经进入下一环节就不允许反。
第三个坑是作废之后占用编号。编号被作废单据占着,后面的单据要跳号,业务上不好解释。这个要在设计编号规则的时候就考虑进去,是允许跳号还是允许复用,两种做法各有适用场景。
四、权限怎么分配
普通录入人员可以作废自己还没提交的单据,这是他自己的草稿,改起来本来就不该有负担。
进入流转之后的撤销,通常只能由发起人或者当前处理人来做,而且要限制在短时间内。已经流转到别人手上的单据,自己撤回来要有理由。
反审核的权限要收紧,一般给到部门负责人或者专门的管理岗。涉及金额、考核、对外结论的单据,反审核应该需要更高级别审批,而不是一个人点一下就过。
这几层权限定清楚,系统上线后关于能不能改的争议会少很多。
下一篇软件选型的三个常见误区
