非同步rfc:在非同步rfc中,執行不依賴與rfc伺服器是否可用。被呼叫的遠端功能啟動後,呼叫程式繼續執行,遠端功能和呼叫程式處理相互分離。遠端功能的結果可以延時接收。
rfc非同步呼叫只能使用tables、exporting和exceptions引數。呼叫程式不等待function返回結果,不能直接從被呼叫的函式中返回結果,可以在後續的回撥子程式中獲取結果。
parameters: plnum like plaf-plnum.
data: l_return like bapireturn1,
l_header like bapiplaf_e1,
l_ca like bapi_kbko,
l_ca1 like bapi_kbko,
l_ca2 like bapi_kbko,
l_com like table of bapi_pldordcomp_e1 with header line,
l_capa like table of bapi_pldordcapa_e1 with header line,
l_capa1 like table of bapi_pldordcapa_e1 with header line,
l_capa2 like table of bapi_pldordcapa_e1 with header line.
call function 'bapi_plannedorder_get_detail'
destination '目標系統'
starting new task
'b1'
//指明非同步呼叫模式
performing return on end of task//呼叫子程式接收返回結果
exporting
plannedorder = plnum.
if sy-subrc =
0. write:
/'success call'
.endif.
at user-command.
if sy-ucomm =
'ok'
. write:
/'header info'
. uline.
write:
/ l_header-plannedorder_num,
l_header-material,
l_header-plan_plant,
l_header-prod_plant ,
l_header-order_type,
l_header-total_plord_qty,
l_header-order_start_date,
l_header-order_fin_date.
uline.
write:
/'companentsdata info'
. uline.
loop at l_com.
write:
/ l_com-material.
endloop.
endif.
form return using taskname.
receive results from function 'bapi_plannedorder_get_detail'
keeping task//使已載入的遠端上下文保持至呼叫程式結束,直到遠端連線終止。
importing
return
= l_return
headerdata = l_header
capacityheaderdata1 = l_ca
capacityheaderdata2 = l_ca1
capacityheaderdata3 = l_ca2
tables
componentsdata = l_com
capacitydata1 = l_capa
capacitydata2 = l_capa1
capacitydata3 = l_capa2.
set user-command 'ok'
.endform.
通常情況下,回撥子程式不會自動執行,只有出現對話步驟或呼叫程式進入記憶體暫時掛起狀態時,才會觸發該子程式。 C 非同步呼叫例項小結
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using syste程式設計客棧m.text using system....
C 同步和非同步呼叫方法例項
複製 如下 namespace consoletest wmlguijd console.writeline 完畢!consol程式設計客棧e.readline wmlguijd 同步方法 程式設計客棧param name a static int add int a,int b nbswww.cp...
用VB呼叫RFC,將資料寫入SAP!
sap這個玩意兒就是門檻太高,其實也不太難。在網上找個資料都很難,下面我把我做的這個例項公開給大家,希望大家能夠有所啟發。誰說vb過時了,我覺得還可以!這個就是vb的例項!例項 呼叫上面定義的zrfc 01 以表為引數傳入rfc private sub cmdadd click 新增記錄 dim l...