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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht zu spät, Sie zu beantworten...
Ich Las einen Artikel mit dem Titel "Best Practices für VBA in SAP-BI-Analyse für MS Excel". (Ich wusste nicht verlinken da ich nicht weiß, ob es erlaubt ist oder nicht).
Grundsätzlich, hieß es, wir sollten regenerieren, bevor Sie mit SAPSetVariable.
Fügte ich folgenden code ein, bevor Sie SAPSetVariable, und es funktionierte für mich.