Page tree
Skip to end of metadata
Go to start of metadata

问题描述:

1、在业务草稿里面打开单据过账提示:本张草稿已经过账,请确认后重试!

2、在业务草稿里面勾选多张单据点击批量过账提示:所选单据不能包含已过账单据,请刷新后重新选择!

排查步骤:

1、确认是否是通过对接第三方软件上传到ERP软件生成的单据。

2、确认客户的业务流程,是否是同时多个人在同一个时间点同时操作同一张单据,比如一个人过账,另外一个人修改单据,过账的人先提交,修改的人后提交,导致单据被写回了草稿状态,并且单据明细也被覆盖了,时间差可能只有0.0几秒的样子,就容易导致该现象,可以打开单据,点击单据助手-单据操作记录,查看操作记录,如果要避免,需要客户优化操作流程,尽量避免多人并发操作的流程。

3、优化服务器和客户端电脑的配置,性能越高出现并发的几率越小,比如提供资源比较充足的内存、CPU,优化网络的上行和下行速度等。

4、可以在SQL数据库里面执行下面语句,查询并发导致单据过账又被写回草稿的单据日志。

select o.id,o.billnumberid,o.OperateType,e.usercode 操作员编号,e.fullname 操作员名称,o.operatetime 操作时间,o.IP,o.billcode,o.billdate,case when ifcheck ='f' then '草稿' when ifcheck='t' then '过账' end 单据状态 ,b.usercode 往来单位编号,b.fullname 往来单位名称,o.ntotalmoney 单据金额,bn.billname from BillOperateLog o left join employee e on e.typeid=o.etypeid left join btype b on b.typeid=o.btypeid left join billname bn on bn.billtype=o.billtype 
where o.billnumberid in(
select billnumberid from billindex b where ( b.ifcheck='f' or b.draft = 1)
and ( exists (select 1 from inoutstocktable i where i.billnumberid=b.billnumberid and i.billtype=b.billtype)
or exists(select 1 from listtable l where l.billnumberid=b.billnumberid and l.billtype=b.billtype)))
order by o.billnumberid,o.id


处理方法:备份数据后,执行下面脚本:
https://share.weiyun.com/f1XUb9mY          --- 本张草稿已过账.sql

注意:执行完以上脚本后,该单据在经营历程了,请客户核对一下库存和往来即可,有问题的话红冲或删除单据,重新做单。费用类 收付款单 调账单据等单据改不了状态


  • No labels