利用Visual Basic開發SAP介面程式初探-RFC
SAP R/3系統是業界最先進、最穩定的ERP系統,國際和國內大型企業採用該系統的比例遙遙領先於其它ERP系統的總和。SAP R/3內建了二次開發平臺,使用的開發語言叫做ABAP,是一種類似於COBOL的程式語言。ABAP在報表輸出方面功能相對較弱(只能按行列印在螢幕上或者匯出到Excel中處理),所以日常工作中經常需要在外部開發程式。透過程式介面自動讀取SAP R/3的資料表(檢視),在外部進行處理和利用水晶報表等工具生成符合中國人習慣的報表樣式。
SAP R/3的介面方式主要有RFC、IDOC、BAPI三種,本文要介紹的是相對比較簡單的RFC(Romote Function Call,遠端函式呼叫)。SAP系統RFC呼叫的原理其實很簡單,有一些類似於三層構架的C/S系統,第三方的客戶程式透過介面呼叫SAP內部的標準或自定義函式,獲得函式返回的資料進行處理後顯示或列印。下面是RFC呼叫的模型:
本文主要不是討論SAP R/3函式的開發,因為使用SAP的公司一般都有專門的ABAP開發人員。大家如果有機會接觸ABAP平臺,可以透過事務程式碼SE37進入ABAP開發平臺的"函式編制器"進行函式開發測試。
下面主要以VB為例介紹一下SAP介面RFC的開發思路。在SAP客戶端SAP Gui Client安裝的時候,注意選擇安裝附帶的SDK包(最保險是選擇完全安裝)。RFC介面程式開發,主要用的是"SAP.Functions"這個控制元件,透過控制元件在外部程式模擬SAP Gui Client的使用者登入和函式呼叫,然後返回函式的值。請看下面的程式片段和重點註解(尤其是test_Click()):
Private Sub Command1_Click() ' 定義R/3使用者名稱和密碼變數(使用者名稱應由SAP管理員開執行函式的許可權) Dim logname As String * 22, password As String * 22 Call logonr3(logname, password) ' 呼叫SAP登入介面程式 If logflag Then ' 呼叫生產、開發系統開關 StatusBar1.Visible = True StatusBar1.SimpleText = "正在登入SAP R/3系統..." Dim R3AppServer As String, R3Client As String, R3SystemNo As String If Form2.opPRD.Value Then ' 以下伺服器引數請根據客戶配置情況更改 R3AppServer = "10.3.1.4" ' 生產系統伺服器IP R3Client = "800" '生產系統集團程式碼 R3SystemNo = "00" '生產系統號 Else R3AppServer = "10.3.3.1" ' 開發系統伺服器IP R3Client = "101" R3SystemNo = "00" End If Unload Form2 ' 釋放 Form2 , 所有控制元件及值不可用 Set Functions = CreateObject("Sap.Functions") ' 建立RFC的本地物件 Set Connect = Functions.Connection ' 設定連線 Connect.ApplicationServer = R3AppServer ' 賦值伺服器IP Connect.Client = R3Client ' 賦值SAP集團程式碼 Connect.Language = "ZH" ' 置SAP系統介面中文 Connect.User = Trim(logname) ' 賦值SAP登入使用者名稱 Connect.password = Trim(password) ' 賦值SAP登入使用者密碼 Connect.SystemNumber = R3SystemNo ' 賦值SAP系統號 If Not Connect.Logon(0, True) Then ' 軟體登入SAP並判斷 MsgBox "登入SAP R/3失敗,請重新登入!", vbOKOnly + vbExclamation, "系統提示" Command1.SetFocus Else ' 登入SAP成功 Command1.Enabled = False Command2.Enabled = True test.Enabled = True End If StatusBar1.SimpleText = "" StatusBar1.Visible = False End If End Sub Private Sub Command2_Click() ' 登出SAP登入 Connect.LogOff Command2.Enabled = False Command1.Enabled = True test.Enabled = False End Sub Private Sub Command3_Click() ' 退出SAP介面演示程式 If Form1.Command2.Enabled Then MsgBox "退出前請斷開SAP R/3系統!", vbOKOnly + vbInformation, "系統提示" Else End End If End Sub Private Sub Form_Load() Command2.Enabled = False test.Enabled = False logoflag = False End Sub Private Sub test_Click() ' SAP RFC遠端呼叫處理主演示 Dim GetCustomers As Object Dim Customers As Object Dim i As Integer ' 透過RFC介面遠端執行SAP內部函式RFC_CUSTOMER_GET ' 賦要呼叫的SAP內建函式名 Set GetCustomers = Functions.Add("RFC_CUSTOMER_GET") GetCustomers.Exports("KUNNR") = "0000000103" ' 向函式入口賦值(客戶程式碼) ' 向函式入口賦查詢表名稱 Set Customers = GetCustomers.Tables("CUSTOMER_T") If GetCustomers.Call Then ' 呼叫成功遍歷顯示客戶所有資訊條目 For i = 1 To Customers.rowcount MsgBox Customers(i, "KUNNR") Next i Else MsgBox " 搜尋出錯! 出錯資訊: " + GetCustomers.Exception End If End Sub |
SAP的RFC呼叫是其介面技術中最簡單和易用的一種方式,該方式開發比較簡便,特別適合於外部報表開發,但對於大資料量的查詢效率相對較低。大家在熟練掌握後,可以進一步學習高階的IDOC和BAPI介面開發技術。
- 來源:天極網
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90072/viewspace-978374/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Visual Basic for ApplicationAPP
- SAP ABAP RFC介面通用日誌工具:abap fm logger
- 小程式雲開發初探
- SAP HUM事務程式碼 HUMAT 之初探
- 雲開發初探 —— 更簡便的小程式開發模式模式
- SAP Distribution Model初探
- Flutter開發初探Flutter
- Visual Basic 6.0(VB6.0)詳細安裝過程
- 記錄ABAP開發的日常——SAP_PO開發同步介面案例
- SAP QM-IDI 初探
- Java Agent 開發初探Java
- SAP MM MI01介面上的‘Freeze book inventory’標記初探
- 利用Easy Mock簡單模擬開發資料介面Mock
- 雲開發初探 —— 更簡便的小程式開發模式丨掘金開發者大會模式
- PHP介面HTTP安全認證之Basic模式PHPHTTP模式
- 使用Visual Studio 2022開發前端前端
- 小程式初探 —— 使用Taro開發BMI體質計算器
- SAP S4HANA BP初探
- SAP Batch Derivation功能初探之二BAT
- SAP Batch Derivation功能初探之一BAT
- SAP HUM 巢狀HU初探 II巢狀
- SAP HUM 巢狀HU初探 III巢狀
- SAP HUM 巢狀HU初探 IV巢狀
- Flutter Boost 混合開發框架初探Flutter框架
- 利用無程式碼開發平臺開發應用程式有什麼好處
- 「SAP技術」SAP MM MPN物料的採購初探
- 多程式介面開發-Qt試玩兒QT
- 《Visual Studio 2017 Web 開發》截圖Web
- 還在寫SQL做SAP二開?通過RFC呼叫NetWeaver,讓HANA資料庫操作更可靠SQL資料庫
- 如何在 SAP BTP ABAP 程式設計環境裡直接呼叫 ABAP On-Premises 系統的 RFC 函式程式設計REM函式
- SAP SD微觀研究之銷售發票自動生成初探
- SAP MM 採購預付款管理初探
- 驅動開發:配置Visual Studio驅動開發環境開發環境
- 跨平臺開發框架 Lynx 初探框架
- Chrome 擴充套件程開發初探Chrome套件
- 初探小程式
- 微軟開發工具 Visual Studio 官網微軟
- url http異常處理 The valid characters are defined in RFC 7230 and RFC 3986HTTP
- 微信小程式之程式碼構建初探:如何繼續使用html與css開發小程式微信小程式HTMLCSS