Tình huống:
Muốn tìm dữ liệu đơn hàng của khách hàng (parameter) có số tiền lớn hơn 20 triệu đồng (parameter). Báo cáo cần trình diễn như sau:
DocumentNumber |
CardCode |
CardName |
Amount |
123 |
C0001 |
Công ty ABC |
30.000.000 |
135 |
C0001 |
Công ty ABC |
34.567.890 |
Các bước để gọi Store Procedure trong màn hình Query trong SAP Business One version SAP HANA
1. Tạo cấu trúc bảng để lưu kết quả từ câu Store Procedure trong cửa sổ SQL Console
CREATE TYPE ZS_FINDORDR_RESULT as TABLE
(
"DocNum" nvarchar(50),
"CardCode" nvarchar(50),
"CardName" nvarchar(100),
"DocTotal" decimal
);
2. Viết Store Procedure trong SAP HANA để truy vấn dữ liệu
Có 2 tham số đầu vào: partner, amount và 1 tham số đầu ra ZS_FINDORDR_RESULT
CREATE PROCEDURE "FINDORDR" (in partner nvarchar(50), in amount DECIMAL(34),
out result ZS_FINDORDR_RESULT)
LANGUAGE SQLSCRIPT
as
begin
result = SELECT T0."DocNum", T0."CardCode", T0."CardName", T0."DocTotal" FROM "ORDR" T0
WHERE T0."CardCode" = :partner AND T0."DocTotal" >= :amount
ORDER BY T0."DocNum";
end;
3. Kiểm tra kết quả chạy câu Store Procedure
call FINDORDR ('B21001',20000000,?)
4. Viết câu query trong SAP Business One
/* SELECT * FROM ORDR T0 WHERE T0."CardCode"='[%0]'; */
/* SELECT * FROM ORDR T1 WHERE T1."DocTotal"=[%1]; */
CALL FINDORDR ('[%0]', [%1],:result);
select * from :result;
5. Kiểm tra kết quả chạy câu query
Nhập tham số để chạy báo cáo
Kết quả
6. Lưu lại để sử dụng