用VB调用RFC,将数据写入SAP
+++++++++++++++++++++++ 实例:调用上面定义的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
页:
[1]