Notifications
Clear all

Cách gọi Store Procedure trực tiếp từ Query trong hệ thống SAP Business One version SAP HANA


admin
Bài viết: 85
Admin
Topic starter
(@admin)
Thành Viên
Tham gia: 7 tháng trước

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,?)

[img] [/img]

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;

[img] [/img]

5. Kiểm tra kết quả chạy câu query

Nhập tham số để chạy báo cáo

[img] [/img]

Kết quả

[img] [/img]

6. Lưu lại để sử dụng

Trả lời
Thẻ chủ đề
Chia sẻ:
x Logo: Shield Security
This Site Is Protected By
Shield Security