RFC学习笔记
1, RFM: Remote Function Model
2,?? RFC的通信模式:同步通信和異步通信
3, RFC的模式:sRFC,synchronous RFC
???????????????? aRFC,asynchronous RFC
???????????????? tRFC,transaction RFC
???????????????? qRFC,queued RFC
???????????????? pRFC,parrodel FRC
4,?FRM:?a 參數(shù)申明:必須在參數(shù)定義是申明<passed valued>
b 格式轉(zhuǎn)化:實參長度不能大于被調(diào)用形參的長度
C 異常處理:raise exception
5, 調(diào)用RFM:?Call Function rfm_name
?Destination dest
?parameter list
其中Destination dest在 SM59 中定義
?????? FM:SXPG_COMMAND_EXECUTE用于執(zhí)行服務(wù)器的系統(tǒng)命令
Call Function –Destination sRFC
Call Function –Starting new Task aRFC
Call Function –In Background Task tRFC
6 , RFC上下文
?????? A 本地正常調(diào)用:在跳用程序的work process中
?????? B 遠程調(diào)用:獨立的工作進程
?????? C 所有的遠程調(diào)用都在目標系統(tǒng)中存在一個獨立的 RFC上下文即RFC Context
?????? D 通常情況下,功能模塊調(diào)用和主程序位于相同的LUW中,不會觸發(fā)Commit/Rollback,需顯示執(zhí)行。但 SRFC和aRFC調(diào)用中的每一個FM都擁有自己的 LUW,即每次調(diào)用是都將隱式觸發(fā)提交
7, sRFC和aRFC中可以存在dialog過程,如call screen, call transcation等。盡管RFC可以在后臺處理,但如果在后臺處理,RFC的對話將引起system_failture.
8,?RFC的調(diào)式:對于aRFC,將打開新的會話進行遠程調(diào)式
9,?sRFC的調(diào)用:調(diào)用程序?qū)⒌却祷亍?/span>
10, aRFC:被調(diào)用的功能模塊立即執(zhí)行,調(diào)用程序不等待結(jié)果<Strating New Task>
????? A: 不能指定Importing 參數(shù)
????? B:對話處理和調(diào)式:打開新的會話并可以來回切換,打開新的會話:調(diào)式窗口
????? C:aRFC調(diào)用時的結(jié)果接收
?????????? Performing return_Form?on end of Task
?????????? Form?return_form using taskname
… receive results from funcation rfc_name
?????????? EndForm.
?????????? 一般情況下會在rerun_form中設(shè)置set user_command ‘OKCD’,然后在主程序中使用AT user_Command.
?????? D: 異步調(diào)用的等待
?????????? Wait until 必須與Performing同時使用
?????????? Wait until log_exp[up to sec seconds]可以在return_form中對log_exp中的條件賦值,從而達到等待RFC返回結(jié)果的目的。
11, tRFC:將多個邏輯上相關(guān)的遠程調(diào)用綁定至同一個LUW上,并按照調(diào)用順序執(zhí)行,在到達 commit work 時執(zhí)行所有計劃的更新。
?????????????????? <In background task ….Commit work>
??????? A: tRFC部要求被調(diào)用時立即執(zhí)行,如果遠程系統(tǒng)不可用將保存在本地隊列中,如果在設(shè)定時間內(nèi),遠程系統(tǒng)仍不可用,將自動設(shè)置為后臺作業(yè)
??????? B: 不能返回結(jié)果,不允許交互性對話、調(diào)試
??????? C: FM中不能存在Export的參數(shù),Call Funcation 時 不能指定improting
??????? D: ?事務(wù)ID : 表aRFCState: LUW執(zhí)行狀態(tài)
???????????????????????? aRFCSdate:輸入的數(shù)據(jù)
????????????????????? SM58查看并重啟出錯的RFM
???????? E: 多RFC處理:多個 RFC針對不同的目標
???????? F:出錯:系統(tǒng)報表RSAFCSE重新執(zhí)行。
總結(jié)
- 上一篇: BAPI学习笔记
- 下一篇: Send mail in ECC