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)化:實(shí)參長(zhǎng)度不能大于被調(diào)用形參的長(zhǎng)度
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 遠(yuǎn)程調(diào)用:獨(dú)立的工作進(jìn)程
?????? C 所有的遠(yuǎn)程調(diào)用都在目標(biāo)系統(tǒng)中存在一個(gè)獨(dú)立的 RFC上下文即RFC Context
?????? D 通常情況下,功能模塊調(diào)用和主程序位于相同的LUW中,不會(huì)觸發(fā)Commit/Rollback,需顯示執(zhí)行。但 SRFC和aRFC調(diào)用中的每一個(gè)FM都擁有自己的 LUW,即每次調(diào)用是都將隱式觸發(fā)提交
7, sRFC和aRFC中可以存在dialog過程,如call screen, call transcation等。盡管RFC可以在后臺(tái)處理,但如果在后臺(tái)處理,RFC的對(duì)話將引起system_failture.
8,?RFC的調(diào)式:對(duì)于aRFC,將打開新的會(huì)話進(jìn)行遠(yuǎn)程調(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:對(duì)話處理和調(diào)式:打開新的會(huì)話并可以來回切換,打開新的會(huì)話:調(diào)式窗口
????? C:aRFC調(diào)用時(shí)的結(jié)果接收
?????????? Performing return_Form?on end of Task
?????????? Form?return_form using taskname
… receive results from funcation rfc_name
?????????? EndForm.
?????????? 一般情況下會(huì)在rerun_form中設(shè)置set user_command ‘OKCD’,然后在主程序中使用AT user_Command.
?????? D: 異步調(diào)用的等待
?????????? Wait until 必須與Performing同時(shí)使用
?????????? Wait until log_exp[up to sec seconds]可以在return_form中對(duì)log_exp中的條件賦值,從而達(dá)到等待RFC返回結(jié)果的目的。
11, tRFC:將多個(gè)邏輯上相關(guān)的遠(yuǎn)程調(diào)用綁定至同一個(gè)LUW上,并按照調(diào)用順序執(zhí)行,在到達(dá) commit work 時(shí)執(zhí)行所有計(jì)劃的更新。
?????????????????? <In background task ….Commit work>
??????? A: tRFC部要求被調(diào)用時(shí)立即執(zhí)行,如果遠(yuǎn)程系統(tǒng)不可用將保存在本地隊(duì)列中,如果在設(shè)定時(shí)間內(nèi),遠(yuǎn)程系統(tǒng)仍不可用,將自動(dòng)設(shè)置為后臺(tái)作業(yè)
??????? B: 不能返回結(jié)果,不允許交互性對(duì)話、調(diào)試
??????? C: FM中不能存在Export的參數(shù),Call Funcation 時(shí) 不能指定improting
??????? D: ?事務(wù)ID : 表aRFCState: LUW執(zhí)行狀態(tài)
???????????????????????? aRFCSdate:輸入的數(shù)據(jù)
????????????????????? SM58查看并重啟出錯(cuò)的RFM
???????? E: 多RFC處理:多個(gè) RFC針對(duì)不同的目標(biāo)
???????? F:出錯(cuò):系統(tǒng)報(bào)表RSAFCSE重新執(zhí)行。
總結(jié)
- 上一篇: BAPI学习笔记
- 下一篇: Send mail in ECC