SAP ABAP - Các biến
Các biến là các đối tượng dữ liệu được đặt tên được sử dụng để lưu trữ các giá trị trong vùng bộ nhớ được phân bổ của một chương trình. Như tên cho thấy, người dùng có thể thay đổi nội dung của các biến với sự trợ giúp của các câu lệnh ABAP. Mỗi biến trong ABAP có một kiểu cụ thể, xác định kích thước và cách bố trí bộ nhớ của biến; phạm vi giá trị có thể được lưu trữ trong bộ nhớ đó; và tập hợp các thao tác có thể áp dụng cho biến.
Bạn phải khai báo tất cả các biến trước khi chúng có thể được sử dụng. Dạng cơ bản của khai báo biến là:
DATA <f> TYPE <type> VALUE <val>.
Ở đây <f> chỉ định tên của một biến. Tên của biến có thể dài tối đa 30 ký tự. <type> chỉ định kiểu của biến. Bất kỳ kiểu dữ liệu nào có các thuộc tính kỹ thuật được chỉ định đầy đủ được gọi là <type>. <val> chỉ định giá trị ban đầu của biến <f>. Trong trường hợp bạn xác định một biến có độ dài cố định cơ bản, câu lệnh DATA sẽ tự động điền giá trị của biến với giá trị ban đầu dành riêng cho kiểu. Các giá trị có thể có khác cho <val> có thể là một chữ, hằng số hoặc một mệnh đề rõ ràng, chẳng hạn như Is INITIAL.
Sau đây là các ví dụ hợp lệ về khai báo biến.
DATA d1(2) TYPE C.
DATA d2 LIKE d1.
DATA minimum_value TYPE I VALUE 10.
Trong đoạn mã trên, d1 là một biến kiểu C, d2 là một biến kiểu d1 và giá trị tối thiểu là một biến kiểu số nguyên ABAP I.
Chương này sẽ giải thích các loại biến khác nhau có sẵn trong ABAP. Có ba loại biến trong ABAP -
- Biến tĩnh
- Các biến tham chiếu
- Biến hệ thống
Biến tĩnh
Biến static được khai báo trong chương trình con, mô-đun hàm và phương thức tĩnh.
Thời gian tồn tại được liên kết với ngữ cảnh của khai báo.
Với câu lệnh 'CLASS-DATA', bạn có thể khai báo các biến trong các lớp.
Câu lệnh 'PARAMETERS' có thể được sử dụng để khai báo các đối tượng dữ liệu cơ bản được liên kết với các trường đầu vào trên màn hình lựa chọn.
Bạn cũng có thể khai báo các bảng nội bộ được liên kết với các trường đầu vào trên màn hình lựa chọn bằng cách sử dụng câu lệnh 'CHỌN-OPTIONS'.
Sau đây là các quy ước được sử dụng khi đặt tên biến:
Bạn không thể sử dụng các ký tự đặc biệt như "t" và "," để đặt tên cho các biến.
Không thể thay đổi tên của các đối tượng dữ liệu được xác định trước.
Tên của biến không được giống với bất kỳ từ khóa hoặc mệnh đề ABAP nào.
Tên của các biến phải truyền tải được ý nghĩa của biến mà không cần chú thích thêm.
Dấu gạch nối được dành để thể hiện các thành phần của cấu trúc. Do đó, bạn phải tránh dấu gạch ngang trong tên biến.
Có thể dùng ký tự gạch dưới để phân cách các từ ghép.
Chương trình này chỉ ra cách khai báo một biến bằng câu lệnh PARAMETERS -
REPORT ZTest123_01.
PARAMETERS: NAME(10) TYPE C,
CLASS TYPE I,
SCORE TYPE P DECIMALS 2,
CONNECT TYPE MARA-MATNR.
Ở đây, NAME đại diện cho một tham số gồm 10 ký tự, CLASS chỉ định một tham số kiểu số nguyên với kích thước mặc định tính bằng byte, SCORE đại diện cho một tham số kiểu đóng gói có giá trị lên đến hai chữ số thập phân và CONNECT tham chiếu đến kiểu MARA-MATNF của Từ điển ABAP .
Đoạn mã trên tạo ra kết quả sau:
Các biến tham chiếu
Cú pháp để khai báo các biến tham chiếu là:
DATA <ref> TYPE REF TO <type> VALUE IS INITIAL.
Bổ sung REF TO khai báo một biến tham chiếu ref.
Đặc tả sau REF TO chỉ định kiểu tĩnh của biến tham chiếu.
Kiểu tĩnh hạn chế tập hợp các đối tượng mà <ref> có thể tham chiếu đến.
Kiểu động của biến tham chiếu là kiểu dữ liệu hoặc lớp mà nó hiện đang tham chiếu đến.
Kiểu tĩnh luôn chung chung hơn hoặc giống kiểu động.
Phần bổ sung TYPE được sử dụng để tạo một loại tham chiếu bị ràng buộc và làm giá trị bắt đầu và chỉ LÀ BAN ĐẦU mới có thể được chỉ định sau khi bổ sung VALUE.
Thí dụ
CLASS C1 DEFINITION.
PUBLIC SECTION.
DATA Bl TYPE I VALUE 1.
ENDCLASS. DATA: Oref TYPE REF TO C1 ,
Dref1 LIKE REF TO Oref,
Dref2 TYPE REF TO I .
CREATE OBJECT Oref.
GET REFERENCE OF Oref INTO Dref1.
CREATE DATA Dref2.
Dref2→* = Dref1→*→Bl.
Trong đoạn mã trên, một tham chiếu đối tượng Oref và hai biến tham chiếu dữ liệu Dref1 và Dref2 được khai báo.
Cả hai biến tham chiếu dữ liệu đều được nhập đầy đủ và có thể được tham chiếu bằng toán tử tham chiếu → * tại các vị trí toán hạng.
Biến hệ thống
Các biến hệ thống ABAP có thể truy cập được từ tất cả các chương trình ABAP.
Các trường này thực sự được lấp đầy bởi môi trường thời gian chạy.
Các giá trị trong các trường này cho biết trạng thái của hệ thống tại bất kỳ thời điểm nhất định nào.
Bạn có thể tìm thấy danh sách đầy đủ các biến hệ thống trong bảng SYST trong SAP.
Các trường riêng lẻ của cấu trúc SYST có thể được truy cập bằng cách sử dụng “SYST-” hoặc “SY-”.
Thí dụ
REPORT Z_Test123_01.
WRITE:/'SY-ABCDE', SY-ABCDE,
/'SY-DATUM', SY-DATUM,
/'SY-DBSYS', SY-DBSYS,
/'SY-HOST ', SY-HOST,
/'SY-LANGU', SY-LANGU,
/'SY-MANDT', SY-MANDT,
/'SY-OPSYS', SY-OPSYS,
/'SY-SAPRL', SY-SAPRL,
/'SY-SYSID', SY-SYSID,
/'SY-TCODE', SY-TCODE,
/'SY-UNAME', SY-UNAME,
/'SY-UZEIT', SY-UZEIT.
Đoạn mã trên tạo ra kết quả sau:
SY-ABCDE ABCDEFGHIJKLMNOPQRSTUVWXYZ
SY-DATUM 12.09.2015
SY-DBSYS ORACLE
SY-HOST sapserver
SY-LANGU EN
SY-MANDT 800
SY-OPSYS Windows NT
SY-SAPRL 700
SY-SYSID DMO
SY-TCODE SE38
SY-UNAME SAPUSER
SY-UZEIT 14:25:48