ABAP 呼叫快取池中的資料

2021-10-04 20:52:32 字數 893 閱讀 1119

寫程式的時候,有些邏輯可能需要呼叫其他程式的子例程,資料,那其實方法很多,這篇文章主要說一下在不改動被呼叫程式的情況下,怎麼呼叫其他程式邏輯。

首先,如果是只需要呼叫某個程式的子例程,(if found 是確保沒找到此例程不會報錯):

perform 子例程名 in program 被呼叫程式名 if found.

如果要呼叫某個值(要是全域性變數才行),首先要在被呼叫程式中取到這個值,所以要執行被呼叫程式相關子例程,保證被呼叫程式的執行結果能夠儲存在緩衝池中,然後去緩衝池中取值(實際上使用submit直接呼叫整個程式是不行的):

假設 y001程式

data: **_data type char3.

data: begin of gt_tab occurs 0,

werks like marc-werks,

matnr like mara-matnr,

end of gt_tab.

form frm_test20.

**_data = '233'.

然後y002程式

data: **_data1 type char3.

field-symbols: type any.

perform frm_test20 in program y001 if found.  "這句很關鍵,執行frm_test20把**_data數值放到緩衝池

assign ('(y001)**_data') to .

**_data1 = .

如果是直接需要使用程式的輸出內錶:

field-symbols: type any table.

perform frm_test20 in program y001 if found.

assign: ('(y001)gt_tab') to .

ABAP 呼叫外部ORCALE資料庫

總結 1.先在sap底層oracle資料庫編輯tns檔案,一般由basis配置完成.配置完成後我們可以用事務碼 al11檢視配置是否正確。2.配置正確後使用tcode dbco進行建立連線 1 連線sqlserver 字串為 mssql server ipaddress mssql dbname d...

ABAP 內部會話中的資料庫快取

在做採購訂單建立及修改時通過輸出資訊 nace 傳送資料到其他系統的時候,發現通過rfc非同步呼叫函式的時候取不到資料 同步呼叫就可以取到資料。在同乙個會話中,如果你更新資料庫但沒有提交,這時候你通過select依然可以取到最新的資料。但會話外的程式是取不到最新的資料的。現在有兩個程式ysean t...

ABAP的資料表

ranges語句 要用與選擇表相同的結構建立內錶 可使用 ranges語句,如下所示 語法 ranges for 該語句建立選擇表 該錶參考資料庫表的列 或內部字段 選擇表必須在程式中填充。不必在程式中再用tables語句宣告資料庫表。ranges 語句是下列語句的短格式 data begin of...