VBA-API für SAP BO Analysis für Excel

Ich habe nicht gefunden, dass viele Artikel auf dieser noch auf stackoverflow so werde ich etwas näher, indem Sie die nötigen hintergrund-Informationen.

Ich bin mit dem SAP BO Analysis für Excel-add-in, durch die ich abrufen von Daten in Excel aus SAP BW.

Wird das Analysis add-in kommt mit einer grafischen Benutzeroberfläche, über die Sie geben Sie Variablen in der Abfrage (so genannte fordert).

Zudem verfügt es über ein VBA-API, so können Sie die Variablen über VBA.

Mein großes problem ist, dass die Einstellung der Variablen über VBA-scheint nur zu funktionieren, wenn ich mindestens 1 Aufforderung durch die GUI :S

Unten ist mein voller VBA-code. Es ist inspiriert auf http://precisionstudio.net/uploads/3/0/5/0/3050843/sap_instructorhandbook.pdf & http://scn.sap.com/community/businessobjects-analysis-ms-office/blog/2011/06/26/can-you-use-vba-with-businessobjects-analysis-find-out-here

Die Dims lResul, lResult & lResultt return 0, aber wenn ich manuell füllen Sie einen Wert in der GUI-prompt, und führen Sie das VBA-makro, es funktioniert (gibt 1 zurück)... es füllt die anderen Werte. Sehr seltsam.

Hat jemand encoutered gleichen Probleme und weiß den Ausweg?

Vielen Dank im Voraus

  Private Sub EnableAnalysisOffice()

    Dim addin As COMAddIn

    For Each addin In Application.COMAddIns

        If addin.progID = "SBOP.AdvancedAnalysis.Addin.1" Then

            If addin.Connect = False Then addin.Connect = True

        End If

    Next

End Sub


Private Sub Workbook_Open()

    Call EnableAnalysisOffice
    Call MyGetData

End Sub


Public Sub MyGetData()

    Dim Iret As Long

    Dim lResul As Long

    Dim lResult As Long

    Dim lResultt As Long

    Iret = Application.Run("SAPLogon", "DS_1", "200", "myUser", "myPassword")

    MsgBox (Iret)

    Call Application.Run("SAPSetRefreshBehaviour", "Off")
    Call Application.Run("SAPExecuteCommand", "PauseVariableSubmit", "On")

    'Select data based on WBS

    'lResul = Application.Run("SAPSetVariable", "0S_WBSE", Worksheets("Prompt Values").Range("A2").Value, "INPUT_STRING", "DS_1")
    'MsgBox (lResul)

    'Select data based on Employees

    lResult = Application.Run("SAPSetVariable", "YEMPLSEL", Worksheets("Prompt Values").Range("A5").Value, "INPUT_STRING", "DS_1")
    MsgBox (lResult)

    'Document Date
    lResultt = Application.Run("SAPSetVariable", "YDOCUMENT_DATE", ">=01\-01\-2015", "INPUT_STRING", "DS_1")
    MsgBox (lResultt)

    Call Application.Run("SAPExecuteCommand", "PauseVariableSubmit", "Off")

    Call Application.Run("SAPSetRefreshBehaviour", "On")

    'Call Application.Run("SAPExecuteCommand", "Refresh")

End Sub
  • Nicht jede Excel-Add-in erstellt, die von kommerziellen software-Pakete kommen mit einer Dokumentation, wie es zu benutzen und was seine Grenzen sind (speziell, dass Sie SAP)?
  • Nach dem ausführen des GUI manuell einmal, funktioniert das VBA immer funktioniert, bis Sie beenden Sie Excel? Wenn ja, vielleicht ist ein Teil des add-in (Bibliothek,usw.) nicht geladen, durch den Aufruf addin.Connect = True
  • Ich habe eine Lösung gefunden in der Zwischenzeit, nicht wirklich schön ein. Ich Speichere die aktuellen Aufforderungen innerhalb der Arbeitsmappe & erfrischen Sie sich mit diesen Anweisungen. Danach habe ich mir erlaubt, ändern Sie die Eingabeaufforderungen. Gerade teilen, falls jemand auf das gleiche problem...
  • Ich empfehle heben Sie ein ticket/incident über das mit SAP, können Sie es prüfen und entweder reparieren Sie es oder nehmen Sie es in als enhancement request für eine zukünftige Version.
InformationsquelleAutor user1186098 | 2015-05-30
Schreibe einen Kommentar