Moin,
ich verzweifle an der fehlenden/schlechten API bzgl. der SAPFunctions-Klasse...
Folgendes: Ich habe eine funktionierende Verbindung von Access 2003 aus zum SAP. Login funktioniert, auch der Aufruf des SAP-Funktionsbausteins SAP-seitig.
ABER: mein SAPFunctions-Objekt bekommt beim call-Aufruf ein false zurück. Was übersehe ich, was vergesse ich, irgendwo auf meiner VBA-Seite muss es ja klemmen, sonst würde der Funktionsbaustein nicht korrekt aufgerufen (mit meinen Übergabewerten). Als Ansatz hier mein Codeschnippsel:
Der Aufruf von
bRFCCall = fncTabLesen.Call
liefert mir nur ein FALSE zurück. theException ist leer.
Inhaltlich:
ID und POSNR sind die Informationen, die ich an den SAP-Funktionsbaustein namens DOCU_COM übergeben muss und dies auch tue, wie mir der zuständige SAP-Spezialist glaubwürdig versichert. Zurück liefert der Baustein eine Tabelle namens MERKMALE, die aber scheinbar nie bei meinem Programm ankommt. Hat jemand eine Idee, woran das liegen kann? Muss ich vor dem Call-Aufruf der SAPFunction (ich benutze nicht SAPFunctionsOCX) schon mitteilen, wie die Tabelle heißt, die zurück kommt? Evtl. auch noch die Felder in der Tabelle? Wenn ja, wie? Ich bedanke mich für jeglichen Lösungshinweis!
Wenn nicht: Gibt es irgend eine Möglichkeit für mich, auf VBA-Access-Seite an Informationen zu kommen, was da schief läuft oder wieso ich da ein false zurückbekomme?
ich verzweifle an der fehlenden/schlechten API bzgl. der SAPFunctions-Klasse...
Folgendes: Ich habe eine funktionierende Verbindung von Access 2003 aus zum SAP. Login funktioniert, auch der Aufruf des SAP-Funktionsbausteins SAP-seitig.
ABER: mein SAPFunctions-Objekt bekommt beim call-Aufruf ein false zurück. Was übersehe ich, was vergesse ich, irgendwo auf meiner VBA-Seite muss es ja klemmen, sonst würde der Funktionsbaustein nicht korrekt aufgerufen (mit meinen Übergabewerten). Als Ansatz hier mein Codeschnippsel:
Code:
Public Function getSAPDatenRFC()
Const TabName = "MERKMALE"
Dim fncTabLesen As Object
Dim bRFCCall As Boolean
Dim theException As Variant
'SAP-LogIn + festlegen der RemoteFunction
If theRFCCall.login = True Then
Set fncTabLesen = theRFCCall.addSapFunc("DOCU_COM")
'Parameter füllen
fncTabLesen.Exports("ID") = "012345"
fncTabLesen.Exports("POSNR") = "00002"
'RemoteFunction aufrufen + Tabelle abrufen
bRFCCall = fncTabLesen.Call
theException = fncTabLesen.Exception
If bRFCCall = True Then
Set theTable = fncTabLesen.Tables(TabName)
Else
MsgBox "Lesen der Tabelle " & TabName & " gescheitert!", vbOKOnly
End If
'Hier wird die Routine um die Access-Tabelle zu füllen aufgerufen
If theTable.RowCount > 0 Then
AccessTab_fuellen (TabName)
End If
Else
MsgBox "RFC LogIn gescheitert!", vbOKOnly
End If
'Logout
Set theRFCCall = Nothing
End Function
bRFCCall = fncTabLesen.Call
liefert mir nur ein FALSE zurück. theException ist leer.
Inhaltlich:
ID und POSNR sind die Informationen, die ich an den SAP-Funktionsbaustein namens DOCU_COM übergeben muss und dies auch tue, wie mir der zuständige SAP-Spezialist glaubwürdig versichert. Zurück liefert der Baustein eine Tabelle namens MERKMALE, die aber scheinbar nie bei meinem Programm ankommt. Hat jemand eine Idee, woran das liegen kann? Muss ich vor dem Call-Aufruf der SAPFunction (ich benutze nicht SAPFunctionsOCX) schon mitteilen, wie die Tabelle heißt, die zurück kommt? Evtl. auch noch die Felder in der Tabelle? Wenn ja, wie? Ich bedanke mich für jeglichen Lösungshinweis!
Wenn nicht: Gibt es irgend eine Möglichkeit für mich, auf VBA-Access-Seite an Informationen zu kommen, was da schief läuft oder wieso ich da ein false zurückbekomme?