用VB調用RFC,將數據寫入SAP!

 

SAP這個玩意兒就是門檻太高,其實也不太難。在網上找個資料都很難,下面我把我做的這個實例公開給大家,希望大家能夠有所啓發。

誰說VB過時了,我覺得還可以!這個就是VB的實例!

+++++++++++++++++++++++ 實例:調用上面定義的ZRFC_01 以表爲參數傳入RFC +++++++++++++++

Private Sub CmdAdd_Click()
'添加記錄
Dim logname As String, password As String
Dim xi
Dim func As Object
Dim TT As Object

    Set Functions = CreateObject("Sap.Functions.unicode")   ' 創建RFC的本地對象
    Set Connect = Functions.Connection                 ' 設置連接
   
    Connect.ApplicationServer = "128.1.1.95"
    Connect.Client = "800"
    Connect.SystemNumber = "00"
    Connect.Language = "EN"
    Connect.User = "ZCONN"
    Connect.password = "****"


    If Not Connect.logon(0, True) Then              ' 軟件登錄SAP並判斷

      MsgBox "登錄SAP R/3失敗,請重新登錄!", vbOKOnly + vbExclamation, "系統提示"
      Command1.SetFocus
    Else ' 登錄SAP成功


       
        Set func = Functions.Add("ZRFC_01")
        Set TT = func.tables("ZTEMPTABLE")
        func.Exports("ACTION") = "CREATE"

        With TT
            'Next we set fields to obtain
            'Refresh table
            TT.FreeTable
            'Then set values,類似與ADDNEW
           
            'xi是獲取當前表的行數,以便定位記錄行
            '此處在賦值時,用字段名稱來表示列,也可以用數字來表示,比如TT(xi, 1) = "iii"
            '注意:行和列都是從1開始,不是從0開始計數
            TT.Rows.Add
            xi = TT.rowcount    
            TT(xi, "ZUSERID") = "iii"  
            TT(xi, "ZPASSWD") = "你好北京"
           
            TT.Rows.Add
            xi = TT.rowcount
            TT(xi, "ZUSERID") = "ooo"
            TT(xi, "ZPASSWD") = "我好!"
           
            TT.Refresh
           
        End With

        If func.call = True Then
         
          x = func.imports("RETURN")
          y = func.imports("ERRNUM")
         
          Debug.Print "x:" & x
          Debug.Print "y:" & y

        Else
            MsgBox "call failed!"
        End If

    End If
    Connect.LogOff
End Sub

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