使用VBA调用SAP RFC和JCO 常用的方法基本一致。
大致分为两步:登录和执行
1、设置登录信息
Set R3 = CreateObject(”SAP.Functions”)
R3.Connection.System = “DEV”
R3.Connection.ApplicationServer = “10.1.82.46″
R3.Connection.Client = “160″
R3.Connection.SystemNumber = “00″ R3.Connection.User = “Daniel_1″
R3.Connection.Password = “Daniel_1″
R3.Connection.Language = “ZH”
‘有中文汉字或中文字符的话,需要设置代码页,否则可能出现乱码
R3.Connection.Codepage = “8400″
If R3.Connection.logon(0, False) <> True Then
Exit Sub
End If
2、调用RFC,处理输入、表、输出等参数
‘添加RFC名称
Set MyFunc = R3.Add(”ZRFC_TEST01″)
‘设置输入参数
Set oParam1 = MyFunc.exports(”EBELN”)
oParam1.Value = “230000459″
‘执行远程调用
Result = MyFunc.CALL
If Result = True Then
‘设置table参数
Set ekpo = MyFunc.Tables(”T_EKPO”)
‘设置返回参数
set oParam2 = MyFunc.exports(”E_RETURN”)
Else
MsgBox MyFunc.EXCEPTION
R3.Connection.LOGOFF
Exit Sub
End If
‘注销登录
R3.Connection.LOGOFF
‘使用循环处理table参数
For i = 1 To ekpo.RowCount
Set Row = ekpo.Rows(i)
Cells(i, 1) = Row.Value(”EBELP”)
Cells(i, 2) = Row.Value(”MATNR”)
Next