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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

问题描述:

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


处理方法:备份数据后,执行下面脚本:

DECLARE @BillCode TABLE 
( BillCode VARCHAR (300) )

UPDATE bi SET bi.draft = 0 , bi.ifcheck = 't' 
OUTPUT INSERTED.BillCode INTO @BillCode
FROM BillIndex bi 
WHERE 
(
( 
EXISTS (SELECT 1 FROM Listtable l WHERE l.BillNumberId = bi.BillNumberId ) 
AND EXISTS (SELECT 1 FROM InOutstocktable io1 WHERE bi.BillNumberId = io1.BillNumberId ) 

)
OR 
( ( 
EXISTS (SELECT 1 FROM Listtable l WHERE l.BillNumberId = bi.BillNumberId ) 
OR EXISTS (SELECT 1 FROM InOutstocktable io1 WHERE bi.BillNumberId = io1.BillNumberId )
) 
) 
)
AND ( bi.ifcheck = 'f' OR bi.draft = 1 ) 
AND bi.IsIni = 0 AND bi.ifYearBill = 0 

SELECT * FROM @BillCode

注意:执行完以上脚本后,该单据在经营历程了,请客户核对一下库存和往来即可。


  • No labels