SAP中RFC與BAPI

BAPI和RFC不是同一個層次上概念,不能說從字面上看到BAPI函數和RFC函數就認爲他們之間有必然的聯繫和區別。打個比如,問一個問題:人可以分爲哪幾類,答曰:男人和老人,呵~~,大家都知道,男人是基於性別來說的,老人是基於年齡的。BAPI是SAP提供的基於業務對象的函數,關鍵是它們處理的對象是R/3的業務相關business object),比如單據類銷售訂單,組織:公司等,它們是一系列實體。RFC則是一種系統間通訊的方式(Remote Funciton Call),一個男人可能同時也是一個老人,一個BAPI函數往往能是一個RFC函數(我不知道是不是所有BAPI都可以有基於RFC技術來調用,但是至少也可以說大部分吧,VB裏面用BAPI,就是因爲這個BAPI函數具有RFC的特性)

BAPI是個SAP裏一個很好的思想,把業務對象都對象化了。剛學ABAP/4時,並不能理解SAP所說”ABAP/4”中的‘4’,而覺得它更像是一種腳本語言,頂多也就是和C一樣,但是自從我接觸了BAPI之後,我才體會到SAP說ABAP是種4G語言的確不虛。 當在外部調用BAPI的時候,比如VB,就可以把SAP裏的諸如訂單,物料,員工,工廠等作爲一個對象來處理,而且這種處理又是那麼的簡單,可能只要幾句代碼就可以了,最關鍵就是:1.收集BAPI函數所要的數據,也就是BAPI輸入參數,VB也好,SAP本身的 Screen也好,甚至Web頁面也好,只不過是一個數據收集器!(要作一些必要的數據檢查保證它們是正確的,不過即使不正確也沒有關係,BAPI會返回錯誤信息) 收集完成了,就送給BAPI作爲參數,剩下的事都是BAPI給做了,你就不用管了! 2.接收BAPI返回的信息,也就是BAPI輸出參數,並把它們“翻譯”成恰當的形式給表達給用戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章