cancel
Showing results forĀ 
Search instead forĀ 
Did you mean:Ā 
Read only

SAP B1/SQL Server 2019 Query Error when entering Parameter

Earth_IT_Manager
Explorer
0 Likes
1,059

If i use QUERY by not use '[%0]' No Problem

SELECT
B.Bo_Pl_No AS [WMS No.],
X.TransferNo AS [Transfer No.],
CONVERT(date, B.Bo_CreateDate) AS [Date],
P.Tp_ItemCode AS [Item No.],
I.ItemName AS [Item Name],
CAST(P.Tp_Qty AS decimal(19,6)) AS [Quantity],
B.Bo_No AS [Box No.]
FROM dbo.TB_Box AS B
JOIN dbo.TB_TempPick AS P ON P.Tp_Box = B.Bo_No
LEFT JOIN OITM AS I ON I.ItemCode = P.Tp_ItemCode
LEFT JOIN (
SELECT
COALESCE(CAST(T.U_wmsno AS nvarchar(50)),
CAST(T.U_plateno AS nvarchar(50))) AS WMSNo,
STRING_AGG(CAST(T.DocNum AS nvarchar(20)), ', ')
WITHIN GROUP (ORDER BY T.DocNum) AS TransferNo
FROM OWTR T
JOIN NNM1 S
ON S.Series = T.Series
AND S.ObjectCode = '67'
WHERE T.CANCELED = 'N'
AND S.SeriesName LIKE 'ITS%'
GROUP BY COALESCE(CAST(T.U_wmsno AS nvarchar(50)),
CAST(T.U_plateno AS nvarchar(50)))
) AS X ON CAST(B.Bo_Pl_No AS nvarchar(50)) = X.WMSNo

WHERE
B.Bo_Active = 1
AND P.Tp_Active = 1
AND (ISNULL('','') = '' OR CONVERT(date, B.Bo_CreateDate) >= CONVERT(date, ''))
AND (ISNULL('','') = '' OR CONVERT(date, B.Bo_CreateDate) <= CONVERT(date, ''))
AND (ISNULL('','') = '' OR B.Bo_Pl_No = '')
AND (ISNULL('','') = '' OR B.Bo_No = '')
ORDER BY
B.Bo_CreateDate, B.Bo_Pl_No, B.Bo_No, P.Tp_ItemCode;

Earth_IT_Manager_0-1758252704999.png

But if i entering Parameter such as '[%0]' will be error immediately

Error 'Received Alert' (OAIB)

SELECT
B.Bo_Pl_No AS [WMS No.],
X.TransferNo AS [Transfer No.],
CONVERT(date, B.Bo_CreateDate) AS [Date],
P.Tp_ItemCode AS [Item No.],
I.ItemName AS [Item Name],
CAST(P.Tp_Qty AS decimal(19,6)) AS [Quantity],
B.Bo_No AS [Box No.]
FROM dbo.TB_Box AS B
JOIN dbo.TB_TempPick AS P ON P.Tp_Box = B.Bo_No
LEFT JOIN OITM AS I ON I.ItemCode = P.Tp_ItemCode
LEFT JOIN (
SELECT
COALESCE(CAST(T.U_wmsno AS nvarchar(50)),
CAST(T.U_plateno AS nvarchar(50))) AS WMSNo,
STRING_AGG(CAST(T.DocNum AS nvarchar(20)), ', ')
WITHIN GROUP (ORDER BY T.DocNum) AS TransferNo
FROM OWTR T
JOIN NNM1 S
ON S.Series = T.Series
AND S.ObjectCode = '67'
WHERE T.CANCELED = 'N'
AND S.SeriesName LIKE 'ITS%'
GROUP BY COALESCE(CAST(T.U_wmsno AS nvarchar(50)),
CAST(T.U_plateno AS nvarchar(50)))
) AS X ON CAST(B.Bo_Pl_No AS nvarchar(50)) = X.WMSNo

WHERE
B.Bo_Active = 1
AND P.Tp_Active = 1
AND (ISNULL('[%0]','') = '' OR CONVERT(date, B.Bo_CreateDate) >= CONVERT(date, '[%0]'))
AND (ISNULL('[%1]','') = '' OR CONVERT(date, B.Bo_CreateDate) <= CONVERT(date, '[%1]'))
AND (ISNULL('[%2]','') = '' OR B.Bo_Pl_No = '[%2]')
AND (ISNULL('[%3]','') = '' OR B.Bo_No = '[%3]')
ORDER BY
B.Bo_CreateDate, B.Bo_Pl_No, B.Bo_No, P.Tp_ItemCode;

Earth_IT_Manager_0-1758256987256.png

 

 

 

View Entire Topic
LoHa
Active Contributor
0 Likes

So do you got it?

Then mark question as solved.

regards Lothar

Earth_IT_Manager
Explorer
0 Likes

I haven't tried it yet, I let the User enter it in the Query field instead.

Screenshot 2025-09-25 125753.png