系统运维.数据异常.单据丢失
【应用场景】
单据不允许被删除,但是单据无故消失不见,找不到任何的删除日志记录。
【排查方法】
下面以销售退货单为例进行案例演示。
<1>销售退货单主表新增触发器,捕获到单据删除行为时,抛数据库异常,阻断数据库的删除操作。
IF EXISTS(SELECT * FROM sys.objects WHERE name='tg_SAL_RETURNSTOCK_Delete' AND type='TR')
DROP TRIGGER tg_SAL_RETURNSTOCK_Delete
GO
CREATE TRIGGER tg_SAL_RETURNSTOCK_Delete
ON T_SAL_RETURNSTOCK
FOR DELETE
AS
BEGIN
--定义变量
DECLARE @FID INT,@FBILLNO NVARCHAR(50),@ERRORMSG NVARCHAR(500)
--在Deleted表中查询已经插入记录信息
SELECT @FID=FID,@FBILLNO=ISNULL(FBILLNO,'') FROM Deleted
IF @FID IS NOT NULL
BEGIN
SET @ERRORMSG=N'触发器异常=>禁止删除单据!异常单据单号:'+@FBILLNO+'('+CAST(@FID AS nvarchar(20))+')'
RAISERROR(@ERRORMSG,11,1)
END
END
GO
<2>当数据库删除销售退货单异常时,前端或者后台日志系统会捕获该数据异常,此时,即可通过异常堆栈,进一步去分析问题原因。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
系统运维.数据异常.单据丢失
本文2024-09-23 04:18:23发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164462.html