SAP ABAP - Cú pháp cơ bản
Các câu lệnh
Chương trình nguồn ABAP bao gồm các chú thích và các câu lệnh ABAP. Mọi câu lệnh trong ABAP đều bắt đầu bằng từ khóa và kết thúc bằng dấu chấm, và ABAP phân biệt chữ hoa chữ thường.
Dòng không phải chú thích đầu tiên trong chương trình bắt đầu bằng từ BÁO CÁO. Báo cáo sẽ luôn là dòng đầu tiên của bất kỳ chương trình thực thi nào được tạo. Theo sau câu lệnh là tên chương trình đã được tạo trước đó. Dòng sau đó được kết thúc với một điểm dừng hoàn toàn.
Cú pháp là -
REPORT [Program_Name].
[Statements…].
Điều này cho phép câu lệnh chiếm bao nhiêu dòng trong trình chỉnh sửa nếu nó cần. Ví dụ: BÁO CÁO có thể trông như thế này -
REPORT Z_Test123_01.
Các câu lệnh bao gồm một lệnh và bất kỳ biến và tùy chọn nào, kết thúc bằng dấu chấm. Miễn là dấu chấm xuất hiện ở cuối báo cáo, sẽ không có vấn đề gì phát sinh. Đó là giai đoạn đánh dấu nơi kết thúc tuyên bố.
Hãy viết mã.
Ở dòng bên dưới câu lệnh BÁO CÁO, chỉ cần nhập câu lệnh này: Viết 'Hướng dẫn ABAP'.
REPORT Z_Test123_01.
Write 'This is ABAP Tutorial'.
Four things to consider while writing statements -
Câu lệnh write ghi bất cứ thứ gì trong dấu ngoặc kép vào cửa sổ xuất.
Trình chỉnh sửa ABAP chuyển đổi tất cả văn bản thành chữ hoa ngoại trừ chuỗi văn bản, được bao quanh bởi dấu ngoặc kép.
Không giống như một số ngôn ngữ lập trình cũ hơn, ABAP không quan tâm vị trí bắt đầu một câu lệnh trên một dòng. Bạn có thể tận dụng điều này và cải thiện khả năng đọc chương trình của mình bằng cách sử dụng thụt đầu dòng để chỉ ra các khối mã.
ABAP không có hạn chế về bố cục của các câu lệnh. Có nghĩa là, nhiều câu lệnh có thể được đặt trên một dòng hoặc một câu lệnh đơn lẻ có thể trải dài trên nhiều dòng.
Ký hiệu dấu hai chấm
Các câu lệnh liên tiếp có thể được xâu chuỗi với nhau nếu phần đầu của mỗi câu lệnh giống hệt nhau. Điều này được thực hiện với toán tử dấu hai chấm (:) và dấu phẩy, được sử dụng để kết thúc các câu lệnh riêng lẻ, giống như dấu chấm kết thúc các câu lệnh bình thường.
Sau đây là một ví dụ về một chương trình có thể lưu một số thao tác vuốt phím -
WRITE 'Hello'.
WRITE 'ABAP'.
WRITE 'World'.
Sử dụng ký hiệu dấu hai chấm, nó có thể được viết lại theo cách này -
WRITE: 'Hello',
'ABAP',
'World'.
Giống như bất kỳ câu lệnh ABAP nào khác, bố cục không quan trọng. Đây là một tuyên bố đúng như nhau -
WRITE: 'Hello', 'ABAP', 'World'.
Bình luận
Nhận xét nội tuyến có thể được khai báo ở bất kỳ đâu trong chương trình bằng một trong hai phương pháp sau:
Nhận xét toàn dòng được biểu thị bằng cách đặt dấu hoa thị (*) ở vị trí đầu tiên của dòng, trong trường hợp này, toàn bộ dòng được hệ thống coi là nhận xét. Nhận xét không cần phải chấm dứt trước một khoảng thời gian vì chúng có thể không kéo dài trên nhiều dòng -
* This is the comment line
Nhận xét một phần dòng được biểu thị bằng cách nhập dấu ngoặc kép (") sau một câu lệnh. Tất cả văn bản theo sau dấu ngoặc kép được hệ thống coi là nhận xét. Bạn không cần chấm dứt nhận xét từng phần trước một dấu chấm vì chúng có thể không kéo dài thêm hơn một dòng -
WRITE 'Hello'. "Here is the partial comment
Note - Mã nhận xét không được viết hoa bởi trình soạn thảo ABAP.
Triệt tiêu khoảng trống
Lệnh NO-ZERO tuân theo câu lệnh DATA. Nó loại bỏ tất cả các số không đứng đầu của một trường số có chứa khoảng trống. Đầu ra thường dễ đọc hơn cho người dùng.
Thí dụ
REPORT Z_Test123_01.
DATA: W_NUR(10) TYPE N.
MOVE 50 TO W_NUR.
WRITE W_NUR NO-ZERO.
Đoạn mã trên tạo ra kết quả sau:
50
Note - Không có lệnh NO-ZERO, đầu ra là: 0000000050
Dòng trống
Lệnh SKIP giúp chèn các dòng trống trên trang.
Thí dụ
Lệnh thông báo như sau:
WRITE 'This is the 1st line'.
SKIP.
WRITE 'This is the 2nd line'.
Lệnh thông báo trên tạo ra kết quả sau:
This is the 1st line
This is the 2nd line
Chúng tôi có thể sử dụng lệnh SKIP để chèn nhiều dòng trống.
SKIP number_of_lines.
Đầu ra sẽ là một số dòng trống được xác định bởi số dòng. Lệnh SKIP cũng có thể định vị con trỏ trên một dòng mong muốn trên trang.
SKIP TO LINE line_number.
Lệnh này được sử dụng để di chuyển động con trỏ lên và xuống trang. Thông thường, một câu lệnh WRITE xảy ra sau lệnh này để đưa đầu ra trên dòng mong muốn đó.
Chèn dòng
Lệnh ULINE tự động chèn một đường ngang trên đầu ra. Cũng có thể kiểm soát vị trí và độ dài của dòng. Cú pháp khá đơn giản -
ULINE.
Thí dụ
Lệnh thông báo như sau:
WRITE 'This is Underlined'.
ULINE.
Đoạn mã trên tạo ra kết quả sau:
This is Underlined (and a horizontal line below this).
Tin nhắn
Lệnh MESSAGE hiển thị thông báo được xác định bởi ID thông báo được chỉ định trong câu lệnh REPORT ở đầu chương trình. ID tin nhắn là một mã gồm 2 ký tự xác định bộ 1.000 tin nhắn mà chương trình sẽ truy cập khi sử dụng lệnh MESSAGE.
Các tin nhắn được đánh số từ 000 đến 999. Đi kèm với mỗi số là một văn bản tin nhắn có tối đa 80 ký tự. Khi số tin nhắn được gọi, văn bản tương ứng sẽ được hiển thị.
Sau đây là các ký tự để sử dụng với lệnh Message:
Thông điệp | Kiểu | Kết quả |
---|---|---|
E | lỗi | Thông báo xuất hiện và ứng dụng tạm dừng tại thời điểm hiện tại. Nếu chương trình đang chạy ở chế độ nền, công việc sẽ bị hủy và thông báo được ghi lại trong nhật ký công việc. |
W | Cảnh báo | Thông báo hiện ra và người dùng phải nhấn Enter để ứng dụng tiếp tục. Ở chế độ nền, thông báo được ghi lại trong nhật ký công việc. |
Tôi | Thông tin | Một cửa sổ bật lên sẽ mở ra với nội dung tin nhắn và người dùng phải nhấn Enter để tiếp tục. Ở chế độ nền, thông báo được ghi lại trong nhật ký công việc. |
A | Abend | Lớp thông báo này hủy giao dịch mà người dùng hiện đang sử dụng. |
S | Sự thành công | Điều này cung cấp một thông báo thông tin ở cuối màn hình. Thông tin được hiển thị có bản chất tích cực và nó chỉ dành cho phản hồi của người dùng. Thông báo không cản trở chương trình theo bất kỳ cách nào. |
X | Huỷ bỏ | Thông báo này hủy bỏ chương trình và tạo một kết xuất ngắn ABAP. |
Thông báo lỗi thường được sử dụng để ngăn người dùng làm những việc mà họ không được phép làm. Thông báo cảnh báo thường được sử dụng để nhắc nhở người dùng về hậu quả của hành động của họ. Thông báo thông tin cung cấp cho người dùng thông tin hữu ích.
Thí dụ
Khi chúng tôi tạo thông báo cho thông báo ID AB, lệnh MESSAGE - MESSAGE E011 cho kết quả sau:
EAB011 This report does not support sub-number summarization.