SAP ABAP 變量

2018-12-29 16:01 更新

變量是用于在程序的分配的存儲區(qū)域中存儲值的命名數(shù)據(jù)對象。 顧名思義,用戶可以在ABAP語句的幫助下更改變量的內(nèi)容。 ABAP中的每個變量都有一個特定的類型,它決定了變量內(nèi)存的大小和布局; 可以存儲在該存儲器內(nèi)的值的范圍; 以及可以應(yīng)用于該變量的一組操作。

您必須先聲明所有變量,然后才能使用它們。 變量聲明的基本形式是

DATA <f> TYPE <type> VALUE <val>. 

這里< f> 指定變量的名稱。 變量的名稱最多可包含30個字符。 < type> 指定變量的類型。 具有完全指定的技術(shù)屬性的任何數(shù)據(jù)類型被稱為< type&gt ;. < val> 指定< f>的初始值。 變量。 在定義基本固定長度變量的情況下,DATA語句會自動使用類型特定的初始值填充變量的值。 < val>的其他可能值 可以是文字,常量或顯式子句,例如Is INITIAL。

以下是變量聲明的有效示例。

DATA d1(2) TYPE C.  
DATA d2 LIKE d1.  
DATA minimum_value TYPE I VALUE 10. 

在上面的代碼片段中,d1是C類型的變量,d2是d1類型的變量,minimum_value是ABAP整數(shù)類型的變量。

本章將解釋ABAP中可用的各種變量類型。 ABAP中有三種變量 -

  • Static Variables
  • Reference Variables
  • System Variables

靜態(tài)變量

  • 靜態(tài)變量在子程序,函數(shù)模塊和靜態(tài)方法中聲明。

  • 生命周期與聲明的上下文相關(guān)聯(lián)。

  • 使用“CLASS-DATA"語句,可以在類中聲明變量。

  • “PARAMETERS"語句可用于聲明鏈接到選擇屏幕上的輸入字段的基本數(shù)據(jù)對象。

  • 您還可以使用“SELECT-OPTIONS"語句聲明在選擇屏幕上鏈接到輸入字段的內(nèi)部表。

以下是命名變量時使用的約定 -

  • 您不能使用特殊字符(例如“t"和“,")來命名變量。

  • 無法更改預(yù)定義數(shù)據(jù)對象的名稱。

  • 變量的名稱不能與任何ABAP關(guān)鍵字或子句相同。

  • 變量的名稱必須傳達變量的含義,而不需要進一步的評論。

  • 連字符被保留以表示結(jié)構(gòu)的組件。 因此,你應(yīng)該避免在變量名中使用連字符。

  • 下劃線字符可用于分隔復(fù)合詞。

這個程序顯示如何使用PARAMETERS語句聲明一個變量 -

REPORT ZTest123_01. 
PARAMETERS: NAME(10) TYPE C, 
CLASS TYPE I, 
SCORE TYPE P DECIMALS 2, 
CONNECT TYPE MARA-MATNR. 

這里,NAME表示10個字符的參數(shù),CLASS表示整數(shù)類型的參數(shù),默認(rèn)大小(以字節(jié)為單位),SCORE表示具有最多兩個小數(shù)位的值的打包類型參數(shù),CONNECT是指ABAP字典的MARA-MATNF類型

上面的代碼產(chǎn)生以下輸出:

ABAP Dictionary

參考變量

聲明引用變量的語法是:

DATA <ref> TYPE REF TO <type> VALUE IS INITIAL. 
  • REF TO附加聲明一個引用變量ref。

  • REF TO之后的規(guī)范指定了引用變量的靜態(tài)類型。

  • 靜態(tài)類型限制< ref>的對象集合。 可以參考。

  • 引用變量的動態(tài)類型是它當(dāng)前引用的數(shù)據(jù)類型或類。

  • 靜態(tài)類型總是更加通用或與動態(tài)類型相同。

  • TYPE添加用于創(chuàng)建綁定引用類型和起始值,并且只能在VALUE添加后指定IS INITIAL。

例子

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.
  • 在上面的代碼片段中,聲明了對象引用Oref和兩個數(shù)據(jù)引用變量Dref1和Dref2。

  • 這兩個數(shù)據(jù)引用變量都是完全類型化的,可以使用取消引用運算符→*在操作數(shù)位置取消引用。

系統(tǒng)變量

  • ABAP系統(tǒng)變量可從所有ABAP程序訪問。

  • 這些字段實際上由運行時環(huán)境填充。

  • 這些字段中的值指示系統(tǒng)在任何給定時間點的狀態(tài)。

  • 您可以在SAP中的SYST表中找到系統(tǒng)變量的完整列表。

  • 可以使用“SYST-"或“SY-"訪問SYST結(jié)構(gòu)的各個字段。

例子

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.

上面的代碼產(chǎn)生以下輸出 

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
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號