1

みなさん、こんにちは。よろしくお願いします。

vbからRFCを使用してSAPBAPIを呼び出そうとしていますが、呼び出しの結果を取得するのに問題があります。BAPI "BAPI_GL_ACC_EXISTENCECHECK"(総勘定元帳モジュールから)には、COMPANYCODEとGLACCTの2つのパラメーターと、RETURNパラメーターがあります。このコードを記述して呼び出しを行い、SAP接続を確立するのに問題はありませんでした(SAP Logon Control OLE / COMオブジェクトを使用してジョブを実行します)。RFC呼び出しを試みました。
また、この場合、RFC呼び出しがtrueを返し、例外がないため、問題なく呼び出しを行います(それについてはよくわかりません...)。
ただし、objReturnオブジェクト/パラメータを調べると、値「エラー0」が含まれています。

GoogleとSAPのフォーラムで検索しようとしましたが、私の問題の本当の解決策が見つかりませんでした。そこで、この問題を解決するためのアイデアがあるかどうかを皆さんに尋ねます(たぶん私は間違った電話をかけているだけです!! !私はSAP統合の初心者です...)。

ところで、最後の注意:SAP側で多くのRFC_NO_AUTHORIZATIONを実行した後、SAP_ALL / S_RFC認証(SAPエキスパートではなく、一種)が与えられ、エラーRFC_NO_AUTHORIZATIONは消えましたが、エラー0は返されませんでした

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
4

2 に答える 2

0

問題は解決しました。このスレッドをご覧ください...

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

于 2012-08-24T10:39:10.117 に答える
0

あなたが置く必要があります

Dim objReturn As Object
Set objReturn = objRfcFunc.imports("RETURN")

objRfcFunc.Call

つまり、関数を呼び出す前に、関数からインポートするものを指定する必要があります。私は通常それを線の横に置き.exports()ます。

于 2012-08-09T14:15:26.540 に答える