SAP Business One系统标准功能之外的不允许负库存控制

SqlServer版本写法:

--在存储过程SBO_SP_TransactionNotification里加上这段代码,记得定义一个全局变量用于接收提醒具体是哪个物料
IF @transaction_type IN ('A')
BEGIN
	IF EXISTS (
				SELECT 1 FROM OIVL T0
				INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode AND T0.LocCode = T1.WhsCode
				WHERE T0.TransType = @object_type
				AND T0.CreatedBy = @list_of_cols_val_tab_del
				AND T1.OnHand < 0
				)
	BEGIN
		SELECT @JISHU = STUFF((SELECT DISTINCT '/' + CAST(A1.ItemCode AS nvarchar(10)) FROM
				(
				SELECT T0.ItemCode FROM OIVL T0
				INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode AND T0.LocCode = T1.WhsCode
				WHERE T0.TransType = @object_type
				AND T0.CreatedBy = @list_of_cols_val_tab_del
				AND T1.OnHand < 0
				) A1
				FOR XML PATH('')),1,1,'')
		SET @error = @object_type;
		SET @error_message = N'物料【'+ @JISHU + N'】不允许负库存';
	END;
END;

HANA版本写法:

--在存储过程SBO_SP_TransactionNotification里加上这段代码,记得定义一个全局变量用于接收提醒具体是哪个物料
IF :transaction_type = 'A' THEN
	SELECT COUNT(*) INTO SAP_COUNT FROM OIVL T0
	INNER JOIN OITW T1 ON T0."ItemCode" = T1."ItemCode" AND T0."LocCode" = T1."WhsCode"
	WHERE T0."TransType" = object_type
	AND T0."CreatedBy" = list_of_cols_val_tab_del
	AND T1."OnHand" < 0;
	
	IF SAP_COUNT > 0 THEN
	SELECT STRING_AGG(CAST(T0."ItemCode" AS nvarchar(10)),'/') INTO JISHU  FROM
		(
		SELECT T0."ItemCode" FROM OIVL T0
		INNER JOIN OITW T1 ON T0."ItemCode" = T1."ItemCode" AND T0."LocCode" = T1."WhsCode"
		WHERE T0."TransType" = object_type
		AND T0."CreatedBy" = list_of_cols_val_tab_del
		AND T1."OnHand" < 0
		)T0;
		error := object_type;
		error_message := '物料【'||JISHU||'】变为负库存,单据不许添加';
	END IF;
END IF;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值