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