RFC BAPI Call mit Visual Basic

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

RFC BAPI Call mit Visual Basic

Beitrag von LosPablos (ForumUser / 35 / 0 / 0 ) »
Hi,

ich habe mit Visual Basic ein Programm geschrieben, was eine Verbindung zu einem SAP System aufbaut und einen BAPI aufruft.
Übergeben wird ein Equipment und zurück hätte ich gerne das Feld Material von der Tabelle "DATA_SPECIFIC_EXP".
Die Verbindung und der BAPI Aufruf funktionieren einwandfrei, aber bei der Rückgabe stimmt noch was nicht.
Ich bekomme folgenden Fehler beim Ausführen, aber erst nachdem die Verbindung aufgebaut und das Equipment exportiert wurde:

System.NullReferenceException: Objektvariable oder With-Blockvariable wurde nicht festgelegt.

Hab ich vielleicht einen Typ falsch definiert? Hier der Code mit dem BAPI aufruf:


Code: Alles auswählen.

        Dim inputTable As Object
        Dim i As Integer
        Dim material As String


        ' Die Function-Instanz wird erzeugt
        func1 = FunctionCtrl.Add("BAPI_EQUI_GETDETAIL")

        ' Export-Paramter definieren 
        func1.Exports("EQUIPMENT") = "P-1000-N999"

        inputTable = func1.Tables("DATA_SPECIFIC_EXP")

        If Not func1.Call Then
            If func1.exception <> "" Then
                MsgBox("Fehler: " & func1.exception)
            End If
        Else

            For i = 0 To inputTable.RowCount
                material = inputTable(i, "MATERIAL")
                txtFunctionOutput.Text = material
            Next

        End If
Hab ich vielleicht den Typ für inputTable falsch definiert? Bin dankbar für jeden Tip!

Gruss Arne

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Gast ( / / 0 / 3 ) »
Eine kleine Frage: Benutzt Du den DCOM-Connector? Wenn ja, welche Version?

Beitrag von LosPablos (ForumUser / 35 / 0 / 0 ) »
Ich habe heute erst mit dem RFC Visual Basic Kram angefangen.... Was ist der DCom Connector? Macht man die Verbindung normal anders?

sorry, aber für mich alles neu!

Gruss Arne

Beitrag von Gast ( / / 0 / 3 ) »
Hallo Arne

sieht nach DCOM-Connector aus. Hier gibt es ein paar Beispiele. Wenn Du damit nicht weiterkommst, sag einfach nochmal Bescheid.

http://www.abapforum.com/forum/viewtopic.php?t=54

Beitrag von LosPablos (ForumUser / 35 / 0 / 0 ) »
Hi nochmal,

also ich weiss ehrlich gesagt nicht, was der DCOM Connector bringt bzw. genau macht. Bei den Beispielen, die ich bisher gesehen habe, wird der nicht verwendet, glaube ich.
Ich meine, der BAPI wird ja auch aufgerufen, nur kommt nix zurück! Und zwar genau an der Stelle, an der die Schleife mit der InputTable aufgerufen wird.

Was macht hier Patrick76 in seinem Beispiel richtig, was ich falsch mache? http://www.abapforum.com/forum/viewtopi ... rfc+visual

Stehe irgendwie momentan auf dem Schlauch....

Ich habe noch ein anderes Beispiel, in dem die Tables, Functions etc. komplett anders deklariert werden, und zwar irgendwie über OCX:

Code: Alles auswählen.

Dim Func As SAPFunctionsICX.Function
Private R§Connection As SAPLogonCtrl.Connection
Public iDate As SAPFunctionsOCX.Parameter
Public iTable As SAPTableFactoryCtrl.Table
Wenn ich das so definieren will, bekomme ich die Meldung, dass die Typen "SAPFunctionsOCX" usw. nicht bekannt sind....

Was macht der da? ;o)

Gruss Arne

Beitrag von Gast ( / / 0 / 3 ) »
Hallo Arne.

Leider kenne ich nur den Fall mit DCOM-Connector. Das ist quasi eine Schnittstelle für VB, mit der man den Zugriff auf R/3 bewerkstelligen kann.
Wenn Du das installierst, hast Du einige Controls (ocx) mit denen Du den Verbindungsaufbau machen kannst, sowie die Daten in speziellen TableControls o.ä. darstellen kannst.

Das was Du machst scheint von VB über OLE zu laufen. Kannst Du mal posten, wie Du die Objekte für den Verbindungsaufbau definiert hast?

Machst Du das auch so?

Code: Alles auswählen.

Private oBAPICtrl As Object            'BAPI Control

Private oConnection As Objec       'Connection object

Private oPersonalData As Object    'Table object

Dim boolLogon As Boolean           'Logon help variable

Const APPID = "Employee Example Program "

 

Private Sub Form_Load()

'

'Creating BAPI object

   Set oBAPICtrl = CreateObject("SAP.BAPI.1")

'

'Creating Connection object

   Set oConnection = oBAPICtrl.Connection


   cmdList.Enabled = False

   mnuEmployeeList.Enabled = False

   boolLogon = False

End Sub


Beitrag von Gast ( / / 0 / 3 ) »
Hi,

also ich habe es jetzt gestern doch noch hinbekommen! Yeeh! ;o)
Bei mir ist es ein klein bisschen anders. Die verbindung wird bei mir folgender Maßen hergstellt:

Code: Alles auswählen.

    'Deklarationen
    Public FunctionCtrl As Object     
    Public sapConnection As Object     
    Public SilentLogon As Boolean 


    ' FunctionCtrl
    FunctionCtrl = CreateObject("SAP.Functions")
    sapConnection = FunctionCtrl.Connection
    SilentLogon = True

    sapConnection.Logon(0, SilentLogon)
    FunctionCtrl.Connection = sapConnection

Besten Dank nochmal für die Antworten. Das einzige, was mir jetzt noch fehlt, ist das Ausgeben von einzelnen Felder (nicht Tabellen) aus Bausteinen aus SAP heraus. Wenn da jemand noch einen Tip hat, würde ich mich freuen!

Gruss Arne

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5070
Views
Problem mit BAPI in Visual Basic
von reini69 » 20.06.2008 13:16 • Verfasst in ABAP® Core
4
Antw.
3801
Views
RFC und Visual Basic
von cellin » 12.12.2006 08:09 • Verfasst in ABAP® für Anfänger
1
Antw.
2624
Views
Aus SAP ein Visual Basic Programm starten ?!
von abap-strizi » 20.07.2006 08:32 • Verfasst in ABAP® Core
0
Antw.
2816
Views
(Inter)Active Excel gibt Visual Basic Fehlermeldung aus
von Davor » 07.05.2008 16:24 • Verfasst in Basis
1
Antw.
13083
Views
BSP: RFC-Call des BAPI BAPI_TRANSACTION_COMMIT bei stateless
von lordevil » 27.08.2007 22:57 • Verfasst in Development Related

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.