Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Current »

Die graphomate comments integrieren sich nahtlos in die SAP Analytics Cloud. So wird auch das Scripting im Application Designer der SAP Analytics Cloud unterstützt.

Die im Propertysheet dargestellten Eigenschaften, lassen sich per Scripting von der Komponente abrufen und setzen. Daneben gibt es noch Methoden, die der Vereinfachung des setztens von Kontexten für Kommentare dienen:

createDataContext(key: string, value: string): DynamicContext;

Über diese Methode kann ein Datenkontext erstellt werden, der dann über die Methode setDynamicContexts, der ein Array aus Kontexten übergeben wird, gesetzt werden kann. Ein Datenkontext beinhaltet in der Regel eine Kombination aus Dimension und Member. Also bspw. ist der key “year” und der value “2021”.

createDataContextWithText(key: string, value: string, keyText: string, valueText, string): DynamicContext;

Unterscheidet Ihre Datenquelle zwischen IDs für Dimensionen und Membern und deren Anzeigetext, so kann diese Methode wie createDataContext verwendet werden, mit der zusätzlichen Möglichkeit auch die Anzeigetexte zu setzen. Bpsw. ist hier der key “CAL_YEAR” und der keyText “Year”.

createEnvironmentContext(key: string, value: string): DynamicContext;

Ein Umgebungskontext kann dazu genutzt werden, um den Kommentarraum auf bspw. eine bestimmte Umgebung oder ein Dashboard einzuschränken. Hierbei könnte dann key etwas wie “Dashboard Name” sein und value dazu “Global Sales 2021”.

addOrReplaceDataContext(key: string, value: string): void;

Diese Methode funktioniert grundsätzliche die die createDataContext, nur dass diese den hier definierten Kontext direkt dem Widget hinzufügt oder abändert und somit der web über setDynamicContexts nicht notwendig ist.

addOrReplaceDataContextWithText(key: string, value: string, keyText: string, valueText: string): void;

Hier definierte Werte verhalten von den Parametern wie die der Methode createDataContextWithText und werden wie in addOrReplaceDataContext direkt hinzugefügt oder abgeändert.

addOrReplaceEnvironmentContext(key: string, value: string): void;

Die Parameter verhalten sich analog zu createEnvironmentContext. Dieser wird jedoch direkt hinzugefügt oder abgeändert.

removeDataContext(key: string): void;

Entfernt den Datenkontext mit dem key aus dem Kontextraum des Kommentarwidgets.

removeEnvironmentContext(key: string): void;

Entfernt den Umgebungkontext mit dem key aus dem Kontextraum des Kommentarwigets.

setSelectedData(selectedData: SelectionContext[]): void; (ab Version 1.20224.1)

Die in einer graphomate Visualisierung per Klick selektierten Daten können so dem comments widget zur Generierung von Datenkontexten übergeben werden.

setDynamicContexts(dynamicContexts: DynamicContext[]): void; (ab Version 1.20231.0)

Kontexte, die über die create*Context Methoden erstellt wurden, können hier verwendet werden, um die gesamten dynamischen Kontexte neu zu setzen. Der alte Zustand wird hierbei überschrieben.

addOrReplaceContexts(contexts: DynamicContext[]): void; (ab Version 1.20231.0)

Mehrere Kontexte gleichzeitig zu setzen führt bei Verwendung von addOrReplace*Context zu Unstimmigkeiten. Diese Methode schafft hier Abhilfe, denn sie ermöglicht mehrere, per create*Context erstellte Kontexte, parallel an das Widget zu übergeben.

removeContexts(contexts: DynamicContext[]): void; (ab Version 1.20231.0)

Um mehrere Kontexte gleichzeitig zu entfernen, sollte statt einzelenen Aufrufen von remove*Context, diese Methode verwendet werden, um mit create*Context erstellte Kontexte dieser Methode zu übergeben. Diese werden dann aus dem Zustand des Widgets entfernt. In der create*Context Methode kann der key oder der value auch als leerer String gesetzt werden. Dann werden alle Kontexte, auf die nur der definierte key oder value zutrifft, entfernt.

Beispiele

Um je nach Auswahl eine Wertes in einem DropDown-Feld einen Datenkontext zu setzen, kann folgender Code angepasst werden:

var countryMember = Country_Dropdown.getSelectedKey();
if (countryMember === "None") {
	Chart_1.getDataSource().setDimensionFilter("Country_Region", []);
	graphomate_comments_1.removeDataContext("Country_Region");
} else {
	Chart_1.getDataSource().setDimensionFilter("Country_Region", countryMember);
	graphomate_comments_1.addOrReplaceDataContext("Country_Region", countryMember);
}

Folgender Code setzt die Informationen über einen in einem graphomate chart selektierten Datenpunkt als Kontexte für das comments widget:

graphomate_comments_1.setSelectedData(graphomate_charts_1.getSelectedData()); // ab Version 1.20224.1

Mehrere Kontexte gleichzeitig können wie folgt abgeändert oder hinzugefügt werden:

var regionContext = graphomate_comments_1.createDataContext("region", "North");
var countryContext = graphomate_comments_1.createDataContext("country", "Germany");
graphomate_comments_1.addOrReplaceContexts([regionContext, countryContext]);

Um die oben hinzugefügten Kontexte gleichzeitig wieder zu entfernen, kann wie folgt vorgegangen werden:

var regionContext = graphomate_comments_1.createDataContext("region", "North");
var countryContext = graphomate_comments_1.createDataContext("country", "Germany");
graphomate_comments_1.removeContexts([regionContext, countryContext]);

Sollen die beiden Kontexte von oben entfernt werden, unabhängig davon auf welchen Wert sie gesetzt sind, so können Leerstrings verwendet werden:

var regionContext = graphomate_comments_1.createDataContext("region", "");
var countryContext = graphomate_comments_1.createDataContext("country", "");
graphomate_comments_1.addOrReplaceContexts([regionContext, countryContext]);

Um alle hinzugefügten dynamischen Kontexte neu zu setzten, als auch die bisher gesetzten zu entfernen, gehen wir wie folgt vor:

// zunächst fügen wir nur zur Verdeutlichung ein Kontext für das Jahr hinzu
graphomate_comments_1.addOrReplaceDataContext("year", "2023");
// danach setzten wir dynamische Kontexte für Region und Land
var regionContext = graphomate_comments_1.createDataContext("region", "North");
var countryContext = graphomate_comments_1.createDataContext("country", "Germany");
// durch die Verwendung von setDynamicContexts, statt addOrReplaceContexts, ist der Kontext für das Jahr dann nicht mehr gesetzt
graphomate_comments_1.setDynamicContexts([regionContext, countryContext]);

  • No labels