Chuyển đến nội dung chính

Sử dụng OpenSQL và subroutine trong SAP ABAP

Cách dùng OpenSQL trong ABAP khá đơn giản như native sql thông thường các bạn vẫn dùng.

Ví dụ, để lấy thông tin mua hàng, bạn chỉ cần thực hiện truy vấn như sau:

"Select * from EKKO"

Dưới đây là code chương trình giới thiệu opensql và subroutine để lấy dữ liệu thông tin mua hàng

--

*&---------------------------------------------------------------------*
*& Report ZZ04_OPENSQL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZZ04_OPENSQL.

* Khai bao param dua vao
Data: CompanyCode type I VALUE 3000, " 1710 khong co data
      CreatedOn type I value 2017,
      Currency(3) type C VALUE 'USD'.

PERFORM Get_Data using CompanyCode CreatedOn Currency.

Form Get_Data using p1 p2 p3.
  WRITE: / 'This is demo open sql and subroutine',

         / 'Company Code = ', p1,

        / 'Created On = ', p2,

        / 'Currency = ', p3,

        / '--------------'.

select  EBELN, " -  Purchase order document number
        AEDAT, " -  Created on (date)
        ERNAM, " -  Created by
        LIFNR, " -  Vendor
        ZTERM " - Payment term
  into TABLE @Data(EKKO_info) from EKKO
  WHERE BUKRS = @p1.
*    and AEDAT = @p2
*    and WAERS = @p3.

  DATA w_EKKO_info like LINE OF EKKO_info.

WRITE: / 'Purchase order document number',
      'Created on',
      'Created by',
      'Vendor',
      'Payment term'.

  LOOP at EKKO_info into  w_EKKO_info.
    WRITE: / w_EKKO_info-EBELN,
            w_EKKO_info-AEDAT,
            w_EKKO_info-ERNAM,
            w_EKKO_info-LIFNR,
            w_EKKO_info-ZTERM.
    ENDLOOP.

ENDFORM.

--

thay đổi giá trị param để có kết quả khác nhau :)


Nhận xét

Bài đăng phổ biến từ blog này

Khai báo biến trong SAP ABAP

Có 3 loại biến trong ABAP 1) Biến tĩnh Ví dụ đoạn code sau: REPORT ZTest123_01. PARAMETERS: NAME(10) TYPE C, CLASS TYPE I, SCORE TYPE P DECIMALS 2, CONNECT TYPE MARA-MATNR. == Form input tương ứng: Name: text box Class: text box Score: text box Connect: text box 2) Biến tham chiếu Cú pháp như sau: DATA <ref> TYPE REF TO <type> VALUE IS INITIAL. - REF TO định nghĩa biến tham chiếu tham chiếu tới - kiểu tĩnh giới hạn kiểu mà ref có thể tham chiếu tới - kiểu động của biến tham chiếu là kiểu dữ liệu hay lớp nó đang tham chiếu tới - kiểu tĩnh luôn luôn thông dụng hơn hoặc bằng với kiểu động 3) Biến hệ thống -Biến hệ thống trong ABAP dùng chung cho toàn bộ chương trình ABAP - Biến hệ thống được định nghĩa trong bảng SYST - Có thể search với từ khóa "SYST-" hay "SY-"

Sử dụng search help trong SAP GUI 750

Các bạn có thể sử dụng [Search Help] để tìm kiếm trong SAP Ví dụ dưới đây, để tìm tất cả khách hàng có tên bắt đầu bằng chữ "K", bạn làm theo các bước sau: 1) Nhập TCode: FD03 2) Nhập: K* 3) Nhấn phím: F4 4) Màn hình init search help hiện ra với hàng loạt lựa chọn cho bạn tìm kiếm với điều kiện sát với yêu cầu nhất. Tham khảo video sau đây để thấy rõ hơn kết quả.

Cú pháp SAP ABAP cơ bản

ABAP không phân biệt hoa thường Khai báo 1 report Ví dụ: REPORT Z_report_test_01. In 1 chuỗi ra màn hình REPORT Z_report_test_01. Write 'Xin chao ABAP'. Xử dụng dấu (:) và dấu (,) để cộng 1 chuỗi Ví dụ: Write 'Xin'. Write 'chao'. Tương đương: Write: 'Xin',  'chao'. Tương đương: Write: 'Xin', 'chao'. === Comments: Dùng dấu sao (*) để comment 1 dòng hoặc dấu nháy kép để comment 1 đoạn phía sau Ví dụ: * đây là 1 dòng comment Write: 'Xin chào'. "Đây là 1 đoạn comment NO-ZERO DATA: W_NUR(10) TYPE N.       MOVE 50 TO W_NUR.       WRITE W_NUR NO-ZERO. Đoạn code trên sẽ output ra 50. Nếu không có NO-ZERO sẽ output ra: 0000000050 SKIP lệnh SKIP sẽ thêm 1 dòng trắng vào trang Ví dụ: Write 'Dòng 1'. SKIP. Write 'Dòng 2' Output: Dòng 1 Dòng 2 Có thể SKIP nhiều dòng bằng lệnh: SKIP num_of_lines. Hay skip tới dòng SKIP TO LINE line_number. ULINE Thêm ...