Motivation
Kommentare sind in Planungsanwendungen sehr häufig erforderlich. SAP bietet zwei Möglichkeiten, Kommentare zu speichern:
- Über eine Dokumentenablage
- Attribute als Kennzahl
Eine kurze Einführung in die verschiedenen Möglichkeiten finden Sie z.B. in den folgenden Blogs:
https://www.nextlytics.com/de/blog/integrierte-kommentarfunktionen-in-sap-analytics-cloud-und-bw/4hana
https://evosight.com/comments-in-bw-ip-using-characteristic-as-key-figure
Wir verwenden die Methode, ein Attribut als Kennzahl zu verwenden, häufig aus den folgenden Gründen:
- Kommentare sind direkt in der Abfrage sichtbar
- Berichte können auf Kommentaren aufgebaut werden
- Bei der Verwendung eines Dokumentenspeichers sind die Kommentare nur als Excel-ähnliche Kommentare sichtbar und Sie müssen auf jede Zelle klicken, um den Kommentar zu lesen.
- Ältere und stabilere Lösung
- Die Beschränkung auf 250 Zeichen ist in den meisten Fällen nicht kritisch
Nun bestand die Anforderung, die Historie der Kommentare in einem Bericht anzuzeigen. Da es sich hierbei nicht um eine Standardlösung handelt, möchten wir unseren Ansatz mit Ihnen teilen.
Durch die Aktivierung des Audit-Trails in einem Composite-Provider ist es möglich, die Historie der Änderungen für Kennzahlen ohne Programmierung anzuzeigen.
Leider funktioniert dies nicht für Kommentare. Der Audit-Trail zeigt keine Request – Nummer für Kommentare und der Historie der Kommentare wird nicht angezeigt.
Die Historie der Kommentare wird jedoch in der Tabelle „Changelog“ gespeichert. Dies ist der Ausgangspunkt für unsere Lösung. Wir zeigen Ihnen zwei Möglichkeiten, um diese Informationen aus dem Changelog innerhalb einer Abfrage bereitzustellen:
- über eine HANA-Berechnungsansicht
- über ABAP CDS-View
Beide Möglichkeiten führen zu einem identischen Ergebnis. Welche Sie verwenden, hängt von Ihren Kenntnissen und / oder Einschränkungen bei der Verwendung von HANA-Artefakten ab.
Natürlich wird das Lesen von Daten aus der Changelog-Tabelle in einem Bericht nicht offiziell von SAP unterstützt, da SAP den Namen oder die Struktur dieser Tabellen ändern kann, aber es funktioniert recht stabil.
Die Protokollierung von Änderungen über BADI BADI_RSPLS_LOGGING_ON_SAVE wäre eine weitere Möglichkeit. Da diese Option jedoch mehr Entwicklungsaufwand erfordert, wird diese Lösung hier nicht untersucht. Für weitere Details siehe:
Warum funktionieren Audit-Trails bei Kommentaren nicht?
Zunächst wollen wir sicherstellen, dass wir keine Option übersehen haben und herausfinden, warum Audit-Trails für Kommentare nicht verfügbar sind.
Wenn Sie den Audit-Trail in einem Composite-Provider aktivieren, stellt das System nur die Informationen aus den Lade-Requests im Bericht zur Verfügung. Sobald Sie die Plandaten aktivieren, gehen die Request – Informationen verloren und der Audit Trail zeigt keine Informationen mehr an. Technisch gesehen werden die Daten von Tabelle 1 in Tabelle 2 des aDSO verschoben (z.B. für aDSO ### sind dasTabellen /BIC/A###1 und /BIC/A###2).
Weitere Details zu den Arten eines aDSO und die dazugehörigen Tabellen siehe z.B.: https://learning.sap.com/learning-journeys/upgrading-your-sap-bw-skills-to-sap-bw-4hana/working-with-the-datastore-object-advanced-_b1fbbc9a-e6ad-44bf-bfce-d5b2defa3ccb
Aber nur für ein aDSO vom Typ Data Mart basiert das Reporting auf einem Join der Eingangstabelle 1 und der Tabelle 2. Bei allen anderen Arten von aDSOs basiert das Reporting immer nur auf der Tabelle 2 mit den aktivierten Daten ohne Request und damit Audit-Trail Informationen!
Da das Data Mart alle Attribute als Schlüsselfelder benötigt, sind Attribute als Kennzahlen bei dieser Art von aDSO nicht möglich. Aus diesem Grund sind auch keine Audit Trails für Kommentare verfügbar.
Wenn Sie jedoch das Änderungsprotokoll für das Standard-Datenspeicherobjekt aktivieren, ist die Historie in Tabelle *3 des aDSO einschließlich der Historie der Kommentare verfügbar!
Weitere Details sind verfügbar unter: https://community.sap.com/t5/financial-management-blogs-by-sap/bpc-embedded-model-auditing-feature-in-adso-and-infocube/ba-p/13357497
Demo Szenario
In unserem Beispiel haben wir Kennzahlen und Kommentare zu Demozwecken in der einem aDSO. Normalerweise würden wir empfehlen, Kennzahlen in einem aDSO vom Typ Data Mart und Audit-Informationen und Kommentare in einem separaten aDSO zu speichern.
Unser aDSO ist ein „Standard Data Store Object“ mit aktiviertem Änderungsprotokoll und Planung.
Dieses aDSO hat folgenden Feldern und ein Attribut als Kennzahl
In der Tabelle „Änderungsprotokoll“ sehen Sie die historischen Kommentare. Benutzer, Datum und Uhrzeit der Änderung sind in der Request – nummer (REQTSN) verborgen.
Lösung über die HANA Calculation View
In dieser Lösung verwenden wir eine HANA-Calcualation view, die von einem Compoiste Porvider konsumiert werden kann.
Zunächst erstellen wir eine Calculation View, um die Informationen aus der Änderungsprotokolltabelle verfügbar zu machen und verknüpfen auch die Tabelle RSPMREQUEST, um Benutzer und Zeitpunkt der Anfrage auf praktische Weise zu ermitteln.
Außerdem filtern wir nach dem Speicherort CL (Änderungsprotokoll) in der Request – Tabelle (RSPMREQUEST), um nur eine Zeile je Request – Nummer zu bekommen:
Details des left outer join:
Nun erstellen wir einen Composite Provider mit dem ursprünglichen aDSO und unserem Calculation View mit dem Changelog.
Wir ordnen die Felder des Changelogs den gleichen Feldern zu wie die ursprüngliche aDSO mit den zusätzlichen Changelog – Informationen. Achtung, nun erhalten Sie Kennzahlen und Kommentare mehrfach im Bericht, da wir eine aktuelle Berichtsansicht mit der historischen Ansicht verbinden. Aber das hilft, das Changelog mit aktuellen Werten zu überprüfen.
Eine Abfrage über diesem Composite Provider zeigt die Historie der Änderungen an. Die Summe aller Änderungen für die Kennzahlen ist identisch mit dem aktuellen Wert im Infoprovider (letzte Zeile).
Diese Abfrage kann nun an Ihre Änderungen angepasst werden, z.B. Recordmode X ausschließen, wenn Sie nur den neuen Kommentar sehen und zu viele Zeilen vermeiden wollen.
Nutzen von ABAP CDS Views
Falls Sie nicht die Möglichkeit haben, HANA-Calculation-Views im System zu verwenden, können Sie das gleiche Ergebnis auch mit ABAP CDS-Views erreichen!
Allgemeine Informationen zur Verwendung von CDS-Views im BW finden Sie in den folgenden SAP-Hinweisen und im Blog:
https://me.sap.com/notes/2198480
https://me.sap.com/notes/2673267
Wir werden dieselben Tabellen verwenden (Änderungsprotokolltabelle /bic/azum_ad023 mit Anforderungsinformationen RSPMREQUEST) und sie in der ABAP CDS-Ansicht zusammenführen. Es wird derselbe Filter angewendet.
Stellen Sie sicher, dass Sie die folgenden Annotationen hinzufügen, damit der Open-ODS-View die Daten verwenden kann:
@Analytics.dataCategory: #CUBE
@Analytics.dataExtraction.enabled : true
Um eine CDS-View zu verwenden, müssen wir zunächst eine Datenquelle auf der Grundlage der CDS-Ansicht und eine Open ODS-Ansicht auf der Grundlage dieser DS erstellen, die in einem Composite Provider verwendet werden kann:
Datenquelle:
Mit dem open ODS View
Nun verwenden wir den ODS-View zusammen mit unserer ursprünglichen aDSO in einem Composite Provider und mappen wieder alle Felder.
Der Datenfluss hat nun einige weitere Schichten mehr als die Lösung mit dem Calculation View, aber wir brauchen keinen HANA User!
Am Ende können wir eine Abfrage mit dem identischen Ergebnis wie in der Lösung mit dem HANA Composite Provider erstellen!
Fazit
Wir haben Ihnen zwei Möglichkeiten gezeigt, wie Sie den Verlauf von Kommentaren in einer Abfrage verfügbar machen können. Beide sind recht einfach und liefern die gewünschten Informationen. Welchen Weg Sie nutzen möchten, bleibt Ihnen überlassen.