SAP ABAP RFC函數(shù)(基礎(chǔ))

  • 函數(shù)組與函數(shù)概念與關(guān)系
  • 本地函數(shù)與遠程函數(shù)
  • SE37函數(shù)的定義(import、export祭阀、table等參數(shù))
  • 函數(shù)的調(diào)用
  • 系統(tǒng)標(biāo)準(zhǔn)預(yù)留函數(shù)BAPI

一、RFC是什么

RFC是SAP系統(tǒng)和其他(SAP或非SAP)系統(tǒng)間的一個重要而常用的雙向接口技術(shù)鲜戒,也被視為SAP與外部通信的基本協(xié)議专控。簡單地說,RFC過程就是系統(tǒng)調(diào)用當(dāng)前系統(tǒng)外的程序模塊遏餐,從而實現(xiàn)某個功能伦腐,而且調(diào)用系統(tǒng)和被調(diào)用系統(tǒng)中至少有一個必須是SAPABAP系統(tǒng)。這種遠程功能調(diào)用也可在同一系統(tǒng)內(nèi)部進行(如本地SAP系統(tǒng)內(nèi)的遠程調(diào)用)失都;但通常情況下柏蘑,調(diào)用程序和被調(diào)用程序處于不同系統(tǒng)。

二粹庞、RFC開發(fā)技巧

  • 屬性定義
  • 導(dǎo)入定義
  • 導(dǎo)出定義
  • 正在更改
  • 例外
  • 源代碼

三咳焚、RFC開發(fā)實戰(zhàn)(TCODE: SE37)

業(yè)務(wù)背景

因為業(yè)務(wù)需要多個業(yè)務(wù)場景需要獲取學(xué)員的信息,包含學(xué)員基本信息庞溜、學(xué)員考勤等信息革半;現(xiàn)在需要把此功能封裝供不用業(yè)務(wù)場景共同調(diào)用。

功能分析

1)創(chuàng)建共享共享程序塊RFC流码。
2)RFC中實現(xiàn)又官,學(xué)員信息查詢功能。

1.首先創(chuàng)建函數(shù)組(function group)

se80 輸入將要創(chuàng)建的函數(shù)組名稱“”漫试,點擊回車進行創(chuàng)建

輸入描述信息赏胚,然后保存到自己的包和請求號下

創(chuàng)建成功,并激活

2.創(chuàng)建rfc函數(shù)(function module)

se37 輸入將要創(chuàng)建的RFC函數(shù)“ZFM_HY01_SXQ01”商虐,進行創(chuàng)建

輸入剛才創(chuàng)建的函數(shù)組和描述信息

屬性定義:改為遠程調(diào)用觉阅,并進行激活

導(dǎo)入定義:修改輸入?yún)?shù)

導(dǎo)出定義:修改輸出參數(shù)

表:定義學(xué)員考勤表

例外(異常):定義異常

源代碼:寫入代碼

FUNCTION zfm_hy01_sxq01.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(PI_ZXH) TYPE  ZDEKY_XH OPTIONAL
*"     VALUE(PI_ZBJ) TYPE  ZDEKY_BJ OPTIONAL
*"  EXPORTING
*"     VALUE(PE_ZXYXX) LIKE  ZTKT_XYXX STRUCTURE  ZTKT_XYXX
*"  TABLES
*"      ET_ZXYKQ STRUCTURE  ZTKT_XYKQ OPTIONAL
*"  EXCEPTIONS
*"      Z_NO_XYXX
*"      Z_NO_XYKQ
*"      Z_NO_ALL
*"----------------------------------------------------------------------


* 獲取:學(xué)員基本信息
  SELECT SINGLE *
    INTO CORRESPONDING FIELDS OF pe_zxyxx
    FROM ztkt_xyxx
    WHERE zxh = pi_zxh
      AND zbj = pi_zbj.

*拋出三個異常
 IF SY-SUBRC <> 0.

*3.獲让爻怠:學(xué)員考勤記錄表
    SELECT *
      INTO CORRESPONDING FIELDS OF TABLE ET_ZXYKQ
      FROM ZTKT_XYKQ
     WHERE ZXH = PI_ZXH
       AND ZBJ = PI_ZBJ.
   IF SY-SUBRC = 0."無學(xué)員信息典勇,有考勤記錄
*3.1.拋出異常:無學(xué)員信息
     RAISE Z_NO_XYXX.
     ELSE.
*3.拋出異常:無任何信息
     RAISE Z_NO_ALL.
   ENDIF.

   ELSE.
*2.獲取:學(xué)員考勤記錄表
    SELECT *
      INTO CORRESPONDING FIELDS OF TABLE ET_ZXYKQ
      FROM ZTKT_XYKQ
     WHERE ZXH = PI_ZXH
       AND ZBJ = PI_ZBJ.

    IF SY-SUBRC NE 0.
*2.拋出異常:無考勤記錄
      RAISE E_NO_KQJL.
    ENDIF.
  ENDIF.

ENDFUNCTION.
3.運行結(jié)果查看叮趴,輸入學(xué)號班級

執(zhí)行查看

表中考勤記錄查看

4.異常信息查看割笙,輸入不存在的學(xué)號

執(zhí)行查看拋出的異常

5.調(diào)用rfc

(1)SE38 創(chuàng)建新的可執(zhí)行程序

(2)Pattern快速調(diào)用RFC

顯示

(3)定義變量

DATA: L_ZXH LIKE ZTKT_XYXX-ZXH VALUE 'HY101',
      L_ZBJ LIKE ZTKT_XYXX-ZBJ VALUE 'H1',
      LS_ZXYXX LIKE ZTKT_XYXX,
      LT_ZXYKQ LIKE TABLE OF ZTKT_XYKQ WITH HEADER LINE.

全部代碼


*&---------------------------------------------------------------------*
*& Report ZHYR01_20220721_HY101
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZHYR01_20220721_HY101.

DATA: L_ZXH LIKE ZTKT_XYXX-ZXH VALUE 'HY101',
      L_ZBJ LIKE ZTKT_XYXX-ZBJ VALUE 'H1',
      LS_ZXYXX LIKE ZTKT_XYXX,
      LT_ZXYKQ LIKE TABLE OF ZTKT_XYKQ WITH HEADER LINE.

CALL FUNCTION 'ZFM_HY01_SXQ01'
  EXPORTING
    pi_zxh          = L_ZXH
    pi_zbj          = L_ZBJ
 IMPORTING
   PE_ZXYXX        = LS_ZXYXX
 TABLES
   ET_ZXYKQ        = LT_ZXYKQ
 EXCEPTIONS
   E_NO_ALL        = 1
   OTHERS          = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
  MESSAGE '無此學(xué)員信息' TYPE 'I'.
ELSE.
  WRITE LS_ZXYXX-ZXM.
  MESSAGE '獲取學(xué)員信息成功' TYPE 'S'.
ENDIF.

運行結(jié)果查看

對比 修改輸入的序號為表中不存在的學(xué)號

輸出“無此學(xué)員信息”

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伤溉,更是在濱河造成了極大的恐慌般码,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乱顾,死亡現(xiàn)場離奇詭異板祝,居然都是意外死亡,警方通過查閱死者的電腦和手機走净,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門券时,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人伏伯,你說我怎么就攤上這事橘洞。” “怎么了说搅?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵炸枣,是天一觀的道長。 經(jīng)常有香客問我弄唧,道長抛虏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任套才,我火速辦了婚禮,結(jié)果婚禮上慕淡,老公的妹妹穿的比我還像新娘背伴。我一直安慰自己,他們只是感情好峰髓,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布傻寂。 她就那樣靜靜地躺著,像睡著了一般携兵。 火紅的嫁衣襯著肌膚如雪疾掰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天徐紧,我揣著相機與錄音静檬,去河邊找鬼。 笑死并级,一個胖子當(dāng)著我的面吹牛拂檩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘲碧,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼稻励,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了愈涩?” 一聲冷哼從身側(cè)響起望抽,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤加矛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后煤篙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斟览,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年舰蟆,在試婚紗的時候發(fā)現(xiàn)自己被綠了趣惠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡身害,死狀恐怖味悄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情塌鸯,我是刑警寧澤侍瑟,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站丙猬,受9級特大地震影響涨颜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茧球,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一庭瑰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抢埋,春花似錦弹灭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饥努,卻和暖如春捡鱼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酷愧。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工驾诈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人溶浴。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓翘鸭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親戳葵。 傳聞我的和親對象是個殘疾皇子就乓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容