ABAP 關於Data Reference的使用

2021-08-22 09:20:03 字數 1766 閱讀 9210

data references(只能指向abap定義的基本資料或者基本資料組合體)1、定義資料參考變數(data references

data dref type ref to data.(指向任意型別,但在建立時必須指定物件型別)

data dref type ref to data_type.

或者types t_dref type ref to data.

data dref type t_dref.

create data

get reference of dobj into dref.

2、動態建立資料參考的記憶體空間(create data)

create data dref |這種語句建立的物件沒有名稱,只有位址變數指向該記憶體變數;在申明參考變數時,未指定型別則必須加|說明。

有時需要動態建立動態型別資料物件,語法如下

create data dref type (name).

get reference of dobj into dref.

4、訪問資料參考變數指定的資料

訪問資料參考變數指定的資料有兩種情況:

1) 對於使用data dref type ref to data_type來宣告的資料參考變數,程式可以直接通過->*運算子直接訪問資料;

**樣例

types: begin of struc_1,

a type i,

b type ref to sflight,

c type p,

end of struc_1.

data: s1 type struc_1.

types: begin of struc_2,

x(10) type c,

y type ref to struc_1,

z type i,

end of struc_2.

data:s2 type struc_2,

r2 type ref to struc_2.

if s1-a > 10.

create data s1-b.

s1-b->carrid = 'lh'.

s1-b->paymentsum = 1000.

endif.

s2-y->a = 100.

s2-y->*-a = 200. "same as s2-y->a

s2-y->b->fldate = sy-datum.

2) 對於使用data dref type ref to data來宣告的資料參考變數,程式如果要訪問資料參考變數指定的資料,你首先要將資料參考變數賦值給乙個字段符號(field sysbol)(是不能直接通過資料參考變數來訪問的).如果資料參考變數為初始化狀態, sy-subrc就返回4。

assign dref->* to [casting ...].

**樣例

data: numref type ref to data,

number type i value 123.

field-symbols: type any.

get reference of number into numref.

assign numref->* to .

關於ABAP測試

abaper寫程式通常都是自己寫自己測試,測完之後再讓業務顧問測試,業務顧問測完再讓使用者測試。後面的測試步驟是沒有問題的,但是自己寫程式自己測試,我覺得不是乙個好的方法。我覺得如果專案上有兩個或者多個abap的時候,可以每個人分別測試對方的程式,寫測試用例和報告。關於這方面的優點我覺得如下 1.發...

關於ABAP內錶

1.內錶的型別及定義 1 any table 即任意表型別,此種定義方式只能在傳遞引數的時候定義。例如 form using changing type any table 2 any table包括了兩種型別 index table和hashed table 1 index table 包括了st...

ABAP 關於abap語言的乙個錯誤的理解

在這麼多年的sap使用中,我一直以為不包塊在任何事件塊內的abap語句sap會自動新增到start of selection事件塊中,但今天無意被乙個新同事發現不是這樣。仔細查閱sap的abap語言幫助,幫助對於 不包塊在任何事件塊內的abap語句 是這樣定義的 在report或者program語句...