--在存储过程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;