SAP RFC call returns “Error 0” in RETURN parameter from vb
大家好,谢谢。
我正在尝试使用vb中的RFC调用SAP BAPI,但在获取调用结果时遇到了一些问题。
BAPI " BAPI_GL_ACC_EXISTENCECHECK "(来自"总帐帐户"模块)具有两个参数,
COMPANYCODE和GLACCT,以及RETURN参数。
我编写了这段代码来进行调用,而建立SAP连接没有问题(我使用SAP Logon Control OLE / COM对象来完成此工作),并且尝试进行RFC调用。
同样在这种情况下,我进行调用没有问题(似乎不确定),因为RFC调用返回true且没有异常。
但是,查看objReturn对象/参数时,它的值为" Error 0 "。
我期待一个复杂的结构,例如SAP中的BAPIRETURN对象,或者如果该帐户不存在,则类似的结构。
试图在Google和SAP论坛中进行搜索,但我还没有找到解决我问题的真正方法,所以在这里我要问大家是否有解决此问题的想法(也许我只是想我打错电话了!!!我是SAP集成的新手...)。
BTW,最后说明:在SAP方面进行了许多RFC_NO_AUTHORIZATION之后,他们给了我SAP_ALL / S_RFC授权(不是SAP专家),并且错误RFC_NO_AUTHORIZATION消失了,但错误0 return
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | Dim sapConn As Object Dim objRfcFunc As Object Dim SAPMandante As String Dim SAPUtente As String Dim SAPPassword As String Dim SAPLingua As String Dim SAPApplicationServer As String Dim SAPNumeroSistema As Variant Dim SAPIDSistema As String Dim SAPRouter As String Dim FlagInsertLogin As Integer Dim FlagLogin As Variant On Error GoTo ErrorHandler Set sapConn = CreateObject("SAP.Functions") 'Create ActiveX object 'Silent Logon SAPMandante ="xxx" SAPUtente ="yyyy" SAPPassword ="zzzzzz" SAPLingua ="IT" SAPApplicationServer ="www.xxx.com" SAPNumeroSistema = x SAPIDSistema ="zzz" SAPRouter ="" FlagLogin = SilentLogin(sapConn, SAPMandante, SAPUtente, SAPPassword, SAPLingua, SAPApplicationServer, SAPNumeroSistema, SAPIDSistema, SAPRouter) 'IT WORKS, NO PROBLEM HERE If FlagLogin = False Then 'Explicit Logon If sapConn.Connection.logon(0, False) <> True Then MsgBox"Cannot Log on to SAP", 16,"Query Interrupted" sapConn.Connection.logoff Set sapConn = Nothing InsertCash = False Exit Sub End If End If 'BAPI RFC Call Set objRfcFunc = sapConn.Add("BAPI_GL_ACC_EXISTENCECHECK") objRfcFunc.exports("COMPANYCODE") ="C100" objRfcFunc.exports("GLACCT") ="0000000001" 'Inexistent Rem *** BAPI CALL *** If objRfcFunc.Call = False Then ErrorMsg = objRfcFunc.Exception 'Message collection MsgBox ErrorMsg, 16,"Errore" sapConn.Connection.logoff Exit Sub else Dim objReturn As Object Set objReturn = objRfcFunc.imports("RETURN") End If |
问题已解决,请看一下这个线程...
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/sap-rfc-call-returns-error-in-return-parameter-from-vb-before-the-rfc-call -4894968#M4902486
您需要输入
1 2 | Dim objReturn As Object Set objReturn = objRfcFunc.imports("RETURN") |
之前
即您必须先声明要从函数中导入的内容,然后才能调用它。我通常将其放在