2012-03-27 24 views
0

Ich habe eine Abfrage für mich, die gelöscht werden muss. Ich benutze Excel 2003. Das Blatt enthält 12 Spalten. Ich muss Exportdaten von Excel nach SAP exportieren. Vor dem Export muss ich prüfen, ob der Datensatz existiert oder nicht, falls vorhanden, dann lösche und füge ein.Füllung BAPI Import Tabelle Parameter in EXCEL mit VBA

Ich habe zwei BAPIs für dieses ist Import-Tabelle, die die Parameter gefüllt werden müssen, nach dem Füllen dieser Tabelle sucht das BAPI nach den relevanten Datensätzen.

Die Liste wird in einer Tabelle angezeigt. Ich muss diese Tabelle mit Werten von Excel suchen und dann einen Feldwert in Excel importieren.

Ich schreibe diesen Code, aber es funktioniert nicht das BAPI geben Error 0.

Public Function Import_Order() As Boolean 

    Dim oBAPIGetOrder As Object 
    Dim oBAPIVariant1 As Object 
    Dim oBAPIVariant2 As Object 
    Dim oBAPIVariant3 As Object 
    Dim oBAPIImpOrder As Variant 
    Dim oBAPIRet As Boolean 
    Dim oDoNothing As Variant 
    gBAPIPlanOrder = 0 

    Set oBAPIGetPlOrder = sBAPIControl.Add("PLANED_GET_DET_LIST") 'BAPI 
    Set oBAPIVariant1 = oBAPIGetPlOrder.exports.Item("SELECTIONCRITERIA")  'Internal table 
    Set oBAPIVariant2 = oBAPIGetPlOrder.Tables.Item("DETAILEDLIST")   'Table 

    oBAPIVariant1.Value("MATERIAL") = eMaterial 
    oBAPIVariant1.Value("PLANT") = ePlnPlant 

    lBAPIRet = oBAPIGetPlOrder.call 
    If lBAPIRet Then 
     'oBAPIImpOrder = oBAPIGetPlOrder.imports.Item("PLANNEDORDER_NUM") 
     a = oBAPIVariant2.Rows.Count 
     oBAPIImpOrder = oBAPIVariant2.Value("PLANNEDORDER_NUM") 
     Import_PlannedOrder = True 
    Else 
     oBAPIImpOrder = 0 
     Import_PlannedOrder = False 
    End If 

End Function 

Vielen Dank im Voraus für jede Hilfe ...

+0

Ich haben nie arbeitete mit der API (hatte noch nie zuvor davon gehört), aber was ich aus der Forschung im Internet gelernt habe, ist BAPI-Fehler #: 0 kann aus vielen Gründen auftreten. Versuchen Sie, Google nach 'bapi error 0 'zu durchsuchen. Haben Sie auch versucht, den Code zu debuggen und zu sehen, welche Zeile fehlschlägt? –

+0

Ich versuche, das BAPI "PLANED_GET_DET_LIST" von VBA (Excel) aufzurufen. Unterhalb eines Teils der Codierung. Das Problem ist in der Zeile Set oBAPIVariant1 = oBAPIGetPlOrder.exports.Item ("SELECTIONCRITERIA"). Der Importparameter "SELECTIONCRITERIA" des BAPIs ist eine Struktur. Wenn das Makro über die obige Codierzeile läuft, sehe ich einen Fehler = 0 (Der Cursor liegt über der Variablen "oBAPIVariant1"). Wenn der Importparameter keine Struktur, sondern ein Datenelement ist, wird er ausgeführt. Bitte sagen Sie mir, wenn ich einen Fehler in der Codierung mache – user1049518

Antwort

-1

Sie bitte die Anruffunktion Anweisung lBAPIRet = oBAPIGetPlOrder.call nach der Ausfuhr Anweisung direkt vergeben und bevor die Tabellen und importstatements

+0

... und was soll das tun? – vwegert