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