• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    利用Visual Basic開發SAP接口程序初探

    發布: 2007-5-25 09:19 | 作者: 馮強 | 來源: 天極網 | 查看: 68次 | 進入軟件測試論壇討論

    領測軟件測試網  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接口開發技術。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>