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

Dienstag, 22. September 2015

SAP Analysis Datenquellen-Informationen darstellen

Wie schon im BEx Analyzer gibt es wichtige Informationen, die man gerne in der Excel Arbeitsmappe darstellen möchte. Im BEx Analyzer sah es folgendermaßen aus:


Im Analysis für Office, kann man nun diese Informationen bequem über die Ribbon Oberfläche von Microsoft einfügen.

Wem diese Informationen wie Name der Datenquelle oder Letzte Aktualisierung nicht reicht, kann mithilfe der Formel =SAPGetInfoLabel weitere Felder sich individuell in seine Arbeitsmappe bauen. Interessant ist in diesem Zusammenhang auch die Aktualität der Daten bei Multiprovidern. Da hilft die Formel =SAPGetSourceInfo weiter.

Freitag, 18. September 2015

Ein weiteres Excel Dashboard Beispiel

Nachdem der gestrige Eintrag über „Excel Dashboard einfachgestalten“ einen solchen Anklang gefunden hat, wollte ich nun ein weiteres Beispiel zeigen.




Beide Grafiken sind auf eine A4-Seite optimiert. Welches wirkt besser? 

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

Donnerstag, 17. September 2015

Excel Dashboards einfach gestalten

Die Daten, die das Business Warehouse liefert, möchte man benutzen, entweder für einen Monatsbericht oder um aktuelle Geschehnisse des Betriebes zu sehen. Sowohl der BEx Analyzer als auch Analysis für Office liefert diese Daten immer in "Datentabellen". Diese sind weder gut zu lesen, noch ist es möglich auf den ersten Blick zusehen, was man damit aussagen möchte.



Damit es ein wenig ansehnlicher wird, baut man seine eigenen Berichte mit SVERWEIS oder sonstigen Excel-Methoden. Das Ergebnis ist meistens folgendes:



Dies passt nun schon oft in die CI des Unternehmens. Ist aber meistens auch schwer verständlich und enthält viele redundante Informationen. Das folgende Dashboard lehnt sich an die HICHERT Richtlinien an. Ist noch nicht perfekt, aber zeigt was möglich ist.


Noch ein Beispiel für ein Diagramm, welches nicht wirklich viel aussagt.




Dagegen sieht man auf folgendem Bild sofort, wie der Umsatz jeder Produktgruppe sich für den aktuellen Monat entwickelt und in welchem Bereich der Deckungsbeitrag geringer ausfällt (unterer Bereich).



Solche einfachen Dashboards sind relativ schnell in Excel erstellt, leider nimmt sich kaum jemand Zeit dafür. Diese Beispiele wurden in Excel 2010 erstellt. Mit Excel 2013 sind noch weitere Möglichkeiten dazugekommen, Daten zu präsentieren. Einfach mal ein wenig testen.


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

Dienstag, 2. Juni 2015

SAP BW Nicht zugeordnete Arbeitsmappen/Workbooks finden

Über die Transaktion se38 kann man mit dem ABAP Programm RRMX_WORKBOOKS_GARBAGE_COLLECT Arbeitsmappen / Workbooks finden, die aktuell keinem Benutzer oder Benutzergruppe zugeordnet sind. Durch setzen des Hakens "gefundene Workbooks löschen" werden diese aus dem System entfernt.





Dienstag, 26. Mai 2015

Verlagerung von BW-OLAP-Funktionen auf SAP HANA

Es gibt den Hinweis 2063449 welcher den aktuellen Stand der Verlagerung von OLAP Funktionen auf die SAP Hana dokumentiert.

Dienstag, 28. April 2015

Excel VBA Text zu Datum umwandeln

Leider gibt der BEx Analyzer ein Datum als Textfeld aus. Dies führt dazu, dass die Sortierung nach einem Datum nicht richtig funktioniert. Mit folgendem Code ist die Umwandlung von Text zu Datum sehr einfach möglich.

Sub Text_zu_Datum()

Dim dDate As Date
Dim Bereich As Range

Set Bereich = Range(Selection.Address)

For Each Cell In Bereich

    If IsDate(Cell.Value) Then
    
        dDate = Cell.Value
        Cell.Value = dDate
    
    End If
    
Next

End Sub

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

Donnerstag, 23. April 2015

Analysis for Office Maximale Datenzellen erhöhen

Ein limitierender Faktor in SAP BO Analysis ist die Beschränkung auf 500.000 Zellen pro Datenquelle. Entscheidend ist die Tatsache, dass es sich hierbei um Zellen handelt und nicht um Datensätze. Diese Limitierung lässt sich jedoch durch den folgenden Parameterwert in der Registry erhöhen:

HKEY_CURRENT_USER\Software\SAP\AdvancedAnalysis\Settings\DataSourceResultSetSizeLimit = -1

Der Parameter “0” bedeutet, dass der Standardwert von 500.000 Zellen definiert ist. Angaben größer Null besagen, hier ist ein definierter Wert für die zurückgelieferten Sätze eingetragen.
Mit dem Wert „-1“ werden die Einstellungen aus dem SAP Business Warehouse System gezogen. Der entsprechende Parameterwert hierfür ist im SAP Business Warehouse in der Tabelle RSADMIN unter dem Objekt „BICS_DA_RESULT_SET_LIMIT_MAXHKEY“ zu finden.

Donnerstag, 26. März 2015

SAP BW Hierarchie und Attributsänderungslauf für alle InfoObjekte starten


  1. Transaktion se38 aufrufen
  2. Programm RSDDS_AGGREGATES_MAINTAIN ausführen
  3. InfoObjekte oder Hierarchie wählen 
  4. Ausführen

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

Dienstag, 10. März 2015

SAP BW Merkmale/Infoobjekte ab 7.4 pflegen

Leider hat die SAP ab 7.4. die Pflege von Stammdaten ins Web verlagert. Da nicht jeder die Stammdaten über das Web pflegen möchte, gibt es einen kleinen Workaround.

  1. Transaktion se37 aufrufen
  2. Funktionsbaustein RSDMD_MDMT aufrufen
  3. Breakpoint in Zeile 281 setzen
  4. Transaktion rsdmd aufrufen
  5. Merkmal auswählen
  6. Ausführen
  7. Variable l_use_old_ui auswählen mit Doppelklick
  8. Wert ändern
  9. Wert auf X festlegen und mit Enter bestätigen
  10. Debbuging mit Weiter ausführen
  11. Nun ist es möglich das Merkmal im Business Warehouse zu pflegen
Dieser Blog ist nun unter www.reyemsaibot.com erreichbar.

Mittwoch, 4. März 2015

SAP COPA Kennzahlen Zuordnung


  1. Transaktion sbiw aufrufen
  2. Menüpunkt Einstellungen für anwendungsspezifische DataSources (PI) >> Ergebnis- und Marktsegmentrechnung >> Kennzahlen zuordnen
  3. Entweder „Neuer Eintrag“ oder bestehende ändern



Montag, 2. März 2015

SAP COPA Rechenschemata definieren




  1. Transaktion spro aufrufen
  2. SAP Referenz-IMG aufrufen
  3. Menüpunkt Controlling >> Ergebnis- und Marktsegmentrechnung >> Infosystem >> Berichtsbestandteile >> Rechenschemata definieren
  4. Ergebnisbereich wählen z.B. 9000
  5. Punkt „Elemente im Rechenschema“ aufrufen und gewünschte Kennzahl auswählen

Samstag, 31. Januar 2015

Mittwoch, 14. Januar 2015

SAP BW Query aus Userfavoriten entfernen


  1. Transaktion se16 aufrufen
  2. Tabelle SMEN_BUFFC ausrufen
  3. Benutzername und/oder Report eingeben
  4. Ausführen
  5. Tabelleneintrag selektieren
  6. Über Menü Tabelleneintrag >> Löschen (Umschalt + F2) den Eintrag löschen

Montag, 12. Januar 2015

SAP Business Warehouse Fehlerhafte Aufteilung 2LIS_03_BF

Ab und zu gibt es einen Fehler bei der Auflösung von Strukturierten Artikeln und der Übertragung von Warengruppenhierarchien an das BW. Dabei hilft der Hinweis 1410263.

Freitag, 9. Januar 2015

Excel VBA Eigene Funktion erstellen

In Excel kann man schnell komplizierte Formeln erstellen, damit diese einfacher und übersichtlicher werden, kann man auch eigene Funktion in VBA schreiben.

Hier ein Beispiel für die Berechnung der Prozentualen Abweichung von IST zu Vorjahr

Option Explicit

Public Function prozent(source As Double, target As Double)

prozent = Application.WorksheetFunction.IfError(IIf(target < 0, (source - target) / -target, (source - target) / target), 0)

End Function


=prozent(Quellfeld;Zielfeld)

Wie man sehen kann, eine sehr einfache Formel. Dazu das Beispiel als Excelformel

=Wennfehler(Wenn(Zielfeld < 0;(Quellfeld - Zielfeld) / - Zielfeld;(Quellfeld - Zielfeld / Zielfeld), 0)

= (IST) 215 - (VJ) 204 / (VJ) 204  = 0,055 = 5,5 %

Wie man sieht ist die erste Formel leserlicher und kann ggf. einfach mit einer anderen Formel kombiniert werden.

Donnerstag, 8. Januar 2015

Excel VBA Array Inhalt löschen

Es gibt eine einfache Möglichkeit den Inhalt eines Arrays zu löschen. Möglich macht es der Befehl Erase

Option Explicit
   
Sub FeldBeispiel()
    Dim fFeld(5, 5) As Integer
    fFeld(3, 3) = 3
    MsgBox fFeld(3, 3)
    Erase fFeld
    MsgBox fFeld(3, 3)

End Sub

Freitag, 2. Januar 2015

Überblick über Einflussgrößen für die Performance des BExAnalyzer

Im SAP Support Portal findet man dazu den Hinweis 1101143. Dieser liefert einen Überblick über die wichtigsten Einflussgrößen für die Performance des BExAnalyzer.