Dienstag, 8. Dezember 2015

Analysis Office: How to work with Excel formulas

In Analysis Office 2.2 a new feature was published. You can now use your own Excel formulas in a Crosstab. First you have to add a row or column in your Crosstab. The table design is a feature since Analysis Office 2.0.


You can add your formula.


Then you can drag your formula down to the end of the Crosstab.


When you now add a new characteristic to the rows, you will see the Excel formula will be automatically adjusts.



Donnerstag, 19. November 2015

Analysis Office: Best Practice Verbindung

Nachdem der Artikel "Fehler beim Herstellen einer Verbindung in Analysis for Office per VBA" sehr oft gelesen wird, möchte ich hier nach und nach ein paar Tipps & Tricks zu dem Arbeiten mit Analysis Office veröffentlichen.

Das wichtigste, wenn man mit VBA in Analysis Office arbeitet, ist das aktualisieren der DataSource. Sonst funktioniert nichts. Sobald eine Verbindung zum Business Warehouse besteht, muss jede DataSource einmal aktualisiert werden.

Wenn man nur eine DataSource hat, geht das mit dem Befehl:

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

Wenn man mehr als eine DataSource hat, gibt es den Befehl:

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

Damit man aber anschließend weiß, ob die Aktualisierung erfolgreich war, sollte man den Befehl folgendermaßen nutzen:

Dim lResult As Long
lResult= Application.Run("SAPExecuteCommand", "Refresh")

bzw.

Dim lResult As Long
lResult= Application.Run("SAPExecuteCommand", "Refresh", "DS_1")

Somit kann man lResult auf 1 bzw. 0 prüfen und weitere Aktionen erledigen.

Wenn man jedes Mal die DataSource(s) aktualisiert, wird sehr viel Zeit verschwendet. Um diesem entgegenzuwirken gibt es den Befehl:

Call Application.Run("SAPGetProperty", "IsDataSourceActive", "DS_1")

Mit diesem Befehl wird überprüft, ob die DataSource schon aktiv ist. Anschließend noch einmal ein Beispiel Coding

Sub AnalysisOfficeStart()

Dim lResult As Long

'Besteht eine Verbindung zum Business Warehouse
If Application.Run("SAPGetProperty", "IsConnected", "DS_1") Then

    'Ist die DataSource aktiv?
    If Not Application.Run("SAPGetProperty", "IsDataSourceActive", "DS_1") Then
    
        'Aktualisieren der DataSource
        lResult = Application.Run("SAPExecuteCommand", "Refresh", "DS_1")
    
    Else
    
        'Zeige Variablenmaske
        lResult = Application.Run("SAPExecuteCommand", "ShowPrompts", "DS_1")
        
    End If
    
Else

    lResult = Application.Run("SAPLogon", "DS_1", "Mandant", "Benutzer", "Passwort")
    lResult = Application.Run("SAPExecuteCommand", "Refresh", "DS_1")

End If

End Sub

Anschließend kann das nächste Coding ausgeführt werden.

Donnerstag, 12. November 2015

Analysis Office 2.1 Logoff via VBA

Seit Version 2.1 stellt Analysis Office nun endlich einen VBA Befehl für das Ausloggen aus dem jetzigen System zur Verfügung.

Bisher steht davon noch nichts in der Hilfe, aber es wird im SCN Forum unter "Whats new in Analysis Office 2.1" genannt.

Der Befehl lautet:

Public Sub Logoff()
Call Application.Run("SAPLogoff",Parameter)
End Sub

Parameter:
  • True: Mit diesem Wert wird die Verbindung zum System neugestartet
  • False: Mit diesem Wert wird die Verbindung zum System nicht neugestartet
Ergebnis:
  • 0: Ausführung fehlerhaft
  • 1: Ausführung erfolgreich

Logoff mit Parameter False



Logoff mit Parameter True


Montag, 19. Oktober 2015

Analysis Office Springen ala BEx Query

Im BEx Analyzer konnte man aus einer Query/Arbeitsmappe in eine andere Query springen. Dies war sinnvoll, um eine Query für den Überblick zu haben und eine mit Detailinformationen.



Die Funktion gibt es auch in Analysis Office, dafür muss wie vorher in der Transaktion RSBBS alle nötigen Informationen gepflegt werden. Danach erscheint in der Analysis Arbeitsmappe folgender Eintrag.


Viel Spaß beim testen.


Donnerstag, 15. Oktober 2015

Analysis Addin stürzt ab

Wenn man mit Makros in der Analysis Office Arbeitsmappe arbeitet und die Kreuztabelle einer DataSource entfernt, kann es sein, dass das Analysis Office Addin komplett abstürzt.

Daher sollten nicht mehr benötigte DataSourcen komplett entfernt werden und nicht nur deren Kreuztabelle.




Dieser Blog ist nun unter www.reyemsaibot.com erreichbar.

Mittwoch, 7. Oktober 2015

Enable Analysis Office Addin

Before you can use Analysis Office with Visual Basic for Application, you have to load the Analysis Addin. The code for this is in Analysis Office 1.4:

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

In Analysis Office 2.0, SAP has changed the name of the addin. The command is now:

Private Sub EnableAnalysisOffice()

Dim addin As COMAddIn
  For Each addin In Application.COMAddIns 
   If addin.progID= "SapExcelAddIn" Then 
    If addin.Connect= False Then addin.Connect= True
   End If
  Next 

End Sub

Now you can continue working with the SAP Analysis commands.


You can reach this blog under www.reyemsaibot.com

Samstag, 26. September 2015

SAP Analysis mehrere Elemente filtern

Es gibt entweder die Möglichkeit direkt beim Auffrischen einer Query in Analysis for Office (AO), nach mehreren Elementen zu filtern. Dafür klickt man auf den Pfeil des Plus-Symbols. Es öffnet sich ein Menü und dort wählt man den Eintrag Zeilen über die Elementfilter hinzufügen.



Es erscheint nun folgender Dialog



Dort kann man entweder alles per Hand auswählen oder man klickt auf den kleinen Button links. Dieser fügt aus der Zwischenablage die Einträge ein. Wenn man das ganze mit VBA realisieren möchte, muss man den Befehl =SAPSetVariable verwenden. Dort ist es auch möglich mehrere Werte auszuwählen. Dafür definiert man einen Bereich und setzt diesen ein. 


Dieser Blog ist nun unter www.reyemsaibot.com erreichbar