Cấu trúc Executable Program trong SAP
Posted: Tue Mar 08, 2022 2:44 pm
Ở chủ đề Hello ABAP Program mình có hướng dẫn cho các bạn về một chương trình đơn giản trong ABAP và chương trình trong ví dụ là một chương trình loại Executable Program(ExP), tuy nhiên ví dụ chỉ dừng lại ở mức độ tổng quan thế nào về một chương trình trong ABAP. Hôm nay mình sẽ đi chuyên sâu hơn về loại chương trình này để các bạn có thể hiểu hơn về cấu trúc của nó.
Như các bạn có thể nhìn thấy, chương trình được bắt đầu bởi câu lệnh
SELECTION SCREEN
Mọi chương trình loại ExP được đều bắt đầu bởi một màn hình gọi là selection screen, đây là màn hình mà người dùng sẽ nhập dữ liệu đầu vào nhằm mục đích cung cấp dữ liệu cho các tiến trình tiếp theo sau của chương trình. Màn hình này sẽ được tạo tự động và nó sẽ tự thêm các điều khiển cho phép nhập dữ liệu đầu vào từ người dùng thông qua các khai báo trong chương trình với từ khóa: PARAMETERS hoặc SELECT-OPTIONS.
PARAMETERS: định nghĩa điều khiển cho phép nhập giá trị đơn
SELECT-OPTIONS: định nghĩa điều khiển cho phép nhập nhiều giá trị hoặc các lựa chọn có điều kiện.
Trong một chương trình ExP của SAP, code được tổ chức từ trên xuống các đoạn code dành cho việc khai báo dữ liệu và định nghĩa các điều khiển nhập tham số đầu vào sẽ được khai báo liền sau câu lênh bắt đầu một chương trình. Sau các đoạn code này sẽ là các block lệnh cho các event được định nghĩa trước theo tiến trình của chương trình. Các tiến trình trong program loại này sẽ được định nghĩa bởi các từ khóa sau đây:
Dưới đây là đoạn chương trình mẫu mô tả về các khối lệnh và các sự kiện kể trên giúp bạn có thể hình dùng tốt hơn về một chương trình ExP.
Kết xuất màn hình selection screen
Kết xuất màn hình khi bấm F8 hoặc nút lệnh execute
Như các bạn có thể nhìn thấy, chương trình được bắt đầu bởi câu lệnh
Và đây chính là câu lệnh để chỉ định cho trình biên dịch biết được đây là kiểu chương trình ExP và code của chương trình sẽ bắt đầu kể từ dòng lệnh này.REPORT ZHELLO_PROG
SELECTION SCREEN
Mọi chương trình loại ExP được đều bắt đầu bởi một màn hình gọi là selection screen, đây là màn hình mà người dùng sẽ nhập dữ liệu đầu vào nhằm mục đích cung cấp dữ liệu cho các tiến trình tiếp theo sau của chương trình. Màn hình này sẽ được tạo tự động và nó sẽ tự thêm các điều khiển cho phép nhập dữ liệu đầu vào từ người dùng thông qua các khai báo trong chương trình với từ khóa: PARAMETERS hoặc SELECT-OPTIONS.
Code: Select all
PARAMETERS: p_nam(150) TYPE c,
p_brtd TYPE d,
p_yro(2) TYPE p DECIMALS 0.
SELECT-OPTIONS: s_p FOR gv_test.
SELECT-OPTIONS: định nghĩa điều khiển cho phép nhập nhiều giá trị hoặc các lựa chọn có điều kiện.
Trong một chương trình ExP của SAP, code được tổ chức từ trên xuống các đoạn code dành cho việc khai báo dữ liệu và định nghĩa các điều khiển nhập tham số đầu vào sẽ được khai báo liền sau câu lênh bắt đầu một chương trình. Sau các đoạn code này sẽ là các block lệnh cho các event được định nghĩa trước theo tiến trình của chương trình. Các tiến trình trong program loại này sẽ được định nghĩa bởi các từ khóa sau đây:
- INITIALIZATION: block lệnh này sẽ được dùng để thiết lập các giá trị ban đầu cho các điều khiển ở màn hình selection screen
- At selection-screen output: block lệnh này sẽ được gọi trước khi màn hình selection screen được hiển thị, nó sẽ được gọi liên tục mỗi khi màn hình selection screen cần phải được validate. Khác với sự kiện initialization là chỉ được gọi 1 lần duy nhất khi chương trình được load hay khởi chạy.
- AT SELECTION-SCREEN ON FIELD: block lệnh này sẽ được gọi khi người dùng bấm F4 hoặc bấm vào nút search help trong điều khiển nhập liệu trong chương trinh. Search help(f4) là một chức năng khá hữu dụng trong chương trình SAP, nó giúp người dùng có thể tìm kiếm dữ liệu cần thiết một cách nhanh chóng thông qua dữ liệu được cung cấp trong cửa sổ popup.
- AT USER-COMMAND: block lệnh này được gọi khi người dùng bấm vào các button được định nghĩa thêm ngoài các button mặc định trên thanh công cụ ở màn hình secletion screen. Các chức năng mặc định của chương trình sẽ được hệ thống tự xử lý.
- AT PF-STATUS: block lệnh này được gọi khi chương trình khởi chạy hoặc màn hình selection screen validate, block lệnh này được sử dụng trong mục đích thiết lập thanh công cụ được định nghĩa riêng thay vì sử dụng thanh công cụ mặc định được sap cung cấp.
- START-OF-SELECTION: block lệnh thực thi chính của chương trình sau khi các dữ liệu đầu vào đã được nhập và người dùng bấm F8 hoặc click vào nút lệnh execute.
Dưới đây là đoạn chương trình mẫu mô tả về các khối lệnh và các sự kiện kể trên giúp bạn có thể hình dùng tốt hơn về một chương trình ExP.
Code: Select all
DATA: gv_test TYPE c.
PARAMETERS: p_nam(150) TYPE c,
p_brtd TYPE d,
p_yro(2) TYPE p DECIMALS 0,
p_flght TYPE sflight-carrid.
SELECT-OPTIONS: s_p FOR gv_test.
INITIALIZATION.
p_nam = 'ABAPER'.
AT SELECTION-SCREEN OUTPUT.
IF p_nam = 'ABAPER'.
p_brtd = '19910101'.
ENDIF.
START-OF-SELECTION.
WRITE 'Ten:' && | | && p_nam.
DATA: lv_dat(10) TYPE c.
WRITE p_brtd TO lv_dat DD/MM/YYYY.
WRITE: / 'Ngay sinh:' && | | && lv_dat.
WRITE: / 'Tuoi:' && | | && p_yro.