触发器:自动修复发货通知单出库上限基本数量和出库下限基本数量原创
金蝶云社区-王富贵
王富贵
29人赞赏了该文章 123次浏览 未经作者许可,禁止转载编辑于2024年09月25日 17:50:34


一、针对问题

因二次开发或异常操作,以及数据异常,导致发货通知单出库上限基本数量或出库下限基本数量为空

进而引发发货通知单关闭状态异常,或者下游单据保存时提示超额

可使用以下触发器防治


二、使用前提与备注

1.适用于SQLServer数据库,私有云类型客户

2.该触发器为防止异常数据产生,并不修复已产生的具体错误数据

3.该触发器的处理逻辑,会将出库上限基本数量 和 出库下限基本数量 固定写死为基本数量,如果实际使用中确有修改上下限的需求和业务,则该触发器不适用


三、触发器(直接复制至数据库中执行创建即可)

/*将出库上限基本数量 和 出库下限基本数量 固定写死为基本数量,防止人为修改和其他异常情况*/
GO
CREATE TRIGGER TR_REPAIR_OUTMINBASE ON T_SAL_DELIVERYNOTICEENTRY
FOR UPDATE,INSERT
AS
IF UPDATE(FBASEUNITQTY) OR UPDATE(FBASEOUTMAXQTY) OR UPDATE(FBASEOUTMINQTY)
BEGIN
    DECLARE @CON INT 
    SELECT @CON = ISNULL(COUNT(1),0) FROM inserted WHERE FBASEUNITQTY <> FBASEOUTMAXQTY OR FBASEUNITQTY <> FBASEOUTMINQTY
    IF @CON > 0 
        BEGIN
        UPDATE T_SAL_DELIVERYNOTICEENTRY SET FBASEOUTMAXQTY = FBASEUNITQTY,FBASEOUTMINQTY = FBASEUNITQTY WHERE FENTRYID IN (SELECT INS.FENTRYID FROM inserted INS)
        END
END




赞 29