Bevor Sie ein benutzerdefiniertes Datenaktions-Plug-in schreiben, legen Sie fest, welche der vorhandenen Datenaktionsklassen Sie erweitern möchten. Wählen Sie die Datenaktionsklasse aus, deren Funktionen am meisten der gewünschten Datenaktion entsprechen.
Wie im Klassendiagramm dargestellt erbt jede Datenaktion Daten von der AbstractDataAction
-Klasse. Das Klassendiagramm zeigt die beiden abstrakten Datenaktionsklassen (AbstractDataAction
und AbstractHTTPDataAction
) sowie die vier konkreten Datenaktionsklassen (CanvasDataAction
, URLNavigationDataAction
, HTTPAPIDataAction
und EventDataAction
), die Sie erweitern können. Jede bereitgestellte Datenaktion muss eine dieser Klassen erweitern. Welche Klasse Sie erweitern, hängt vom gewünschten Verhalten ab, das beim Aufrufen der Datenaktion implementiert werden soll. Die meisten Datenaktionen von Drittanbietern erweitern wahrscheinlich URLNavigationDataAction
, HTTPAPIDataAction
oder EventDataAction
.
Unabhängig davon, welche Klasse Sie erweitern, erhalten Sie beim Aufruf der Datenaktion Metadaten, die den vollständigen Kontext des Datenpunktes beschreiben, von dem aus die Datenaktion aufgerufen wird. Siehe Datenaktionskontext.
AbstractDataAction
ist die abstrakte Basisklasse, von der alle Typen von Datenaktionen Daten erben. Sie stellt die allgemeine Funktionalität und das für die Unterklassen verfügbare Standardverhalten bereit.
AbstractDataAction
Alle Datenaktionstypen sind Unterklassen der AbstractDataAction
-Basisklasse. Sie stellt die grundlegenden gemeinsamen Funktionen für alle Datenaktionen bereit. Erweitern Sie diese Klasse nur dann direkt, wenn Sie eine komplexe Datenaktion erstellen, die beim Aufruf mehrere Aktionstypen ausführt, oder wenn Sie eine Aktion ausführen müssen, die nicht von den konkreten Klassen unterstützt wird. Wenn Sie eine komplexe Datenaktion erstellen müssen, können Sie die konkrete Klasse erweitern, die am ehesten der gewünschten Funktion entspricht.
AbstractDataAction-Syntax
+ AbstractDataAction(oKOModel)
+ getKOViewModel():DataActionKOModel
+ createFromJS(fDataActionConstructor, sClassName, oDataActionKOModelUS) : AbstractDataAction
+ invoke(oActionContext, oDataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[] + validate() : DataActionError
+ getSettings() : Object + requiresActionContextToInvoke() : Boolean + isAllowedHere() : Boolean
# createNameGadgetInfo(oReport) : AbstractGadgetInfo # createAnchorToGadgetInfo(oReport) : AbstractGadgetInfo # createPassValuesGadgetInfo(oReport) : AbstractGadgetInfo
Jede Unterklasse von AbstractDataAction
erstellt wahrscheinlich eine eigene Unterklasse von DataActionKOModel
. Die DataActionKOModel
-Basisklasse stellt die folgenden Eigenschaften bereit:
DataActionKOModel, ValuePassingMode
sID:String
Die eindeutige ID für die Datenaktionsinstanz.
sClass:String
Der Klassenname dieses speziellen Datenaktionstyps.
sName:String
Der Anzeigename für die Datenaktionsinstanz.
sVersion
sScopeID
eValuePassingMode:ValuePassingMode
Der verwendete Modus beim Übergeben von Kontextwerten. Der Modus kann einer der ValuePassingMode
-Werte sein (ALL, ANCHOR_DATA, NONE, CUSTOM
).
aAnchorToColumns: ColumnKOViewModel[]
Die Spalten, mit denen diese Datenaktion verankert ist. Diese Eigenschaft ist optional. Wenn sie nicht angegeben wird, ist die Datenaktion für alle Spalten verfügbar.
aContextColumns : ColumnKOViewModel[]
Die Spalten, die diese Datenaktion in den Kontext aufnimmt, der beim Aufruf der Datenaktion an das Datenaktionsziel übergeben wird. Wenn keine Spalten angegeben sind, werden alle markierten Spalten in den Kontext einbezogen.
CanvasDataAction
ist eine Unterklasse der AbstractDataAction
-Basisklasse. Sie können diese konkrete Klasse erweitern, um die gewünschten Funktionen bereitzustellen.
CanvasDataAction
Mit der CanvasDataAction
-Klasse können Sie von einem Datenpunkt in einer Visualisierung zu einer anderen Leinwand navigieren. Die Zielleinwand kann sich dabei in derselben Arbeitsmappe oder in einer anderen befinden. Alle aktiven Filter für die Quellvisualisierung werden zusammen mit neuen Filtern, die die qualifizierte Datenreferenz des Datenpunktes selbst beschreiben, an die Zielleinwand übergeben. Wenn die Datenaktion zu einer anderen Leinwand navigieren soll, muss die Datenaktion diese Klasse erweitern.
+ CanvasDataAction(oKOModel)
+ create(s)ID_sName) : CanvasDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[] + validate() : DataActionError
# createProjectGadgetInfo(oReport) : AbstractGadgetInfo # createCanvasGadgetInfo(oReport) : AbstractGadgetInfo
EventDataAction
ist eine Unterklasse der AbstractDataAction
-Basisklasse. Sie können diese konkrete Klasse erweitern, um die gewünschten Funktionen bereitzustellen.
EventDataAction
Mit der EventDataAction
-Klasse können Sie ein clientseitiges Ereignis veröffentlichen. Dann können Sie Abonnenten registrieren, die auf dieses Ereignis horchen und eigene Aktionen ausführen. Verwenden Sie diesen Datenaktionstyp in komplexeren Anwendungsfällen mit umfangreichem Code, bei dem es sich anbietet, den Datenaktionscode lose mit dem Code zu koppeln, der die erforderlichen Aktionen beim Aufruf der Datenaktion ausführt.
+ EventDataAction(oKOModel)
+ create(sID_sName) : EventDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[] + validate() : DataActionError
# createEventGadgetInfo(oReport) : AbstractGadgetInfo
AbstractHTTPDataAction
ist die abstrakte Basisklasse, von der die Unterklassen URLNavigationDataAction
und HTTPAPIDataAction
allgemeine Funktionen und das Standardverhalten erben.
AbstractHTTPDataAction
Die abstrakte Basisklasse AbstractHTTPDataAction
wird sowohl von der Klasse URLNavigationDataAction
als auch von der Klasse HTTPAPIDataAction
verwendet. Wenn Ihre Datenaktion eine Webseite in einer neuen Browserregisterkarte öffnen soll, müssen Sie URLNavigationDataAction
erweitern. Wenn die Datenaktion eine HTTP-API aufrufen soll, müssen Sie HTTPAPIDataAction
erweitern. In manchen Fällen kann sich die direkte Erweiterung von AbstractHTTPDataAction
anbieten.
+ HTTPDataAction(oKOModel)
+ validate() : DataActionError
# createURLGadgetInfo(oReport) : AbstractGadgetInfo
URLNavigationDataAction
ist eine Unterklasse der AbstractHTTPDataAction
-Basisklasse.
URLNavigationDataAction
Mit der URLNavigationDataAction
-Klasse können Sie eine bestimmte URL in einer neuen Browserregisterkarte öffnen. Sie erstellen die URL mit Token, die durch von Datenpunkten abgeleitete Werte ersetzt werden. Diese Datenpunkte wählt der Benutzer beim Aufrufen der Datenaktion aus. Die Datenpunktwerte werden als Teil des Datenaktionskontextes an die externe Webseite übergeben. Beispiel: Sie erstellen eine Datenaktion, die über eine CustomerID
-Spalte aufgerufen wird und die Webseite eines Kunden in Ihrer Customer-Relations-Management-Anwendung (z.B. Oracle Sales Cloud) öffnet.
+ URLNavigationDataAction(oKOModel)
+ create(sID_sName) : URLNavigationDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[]
HTTPAPIDataAction
ist eine Unterklasse der AbstractHTTPDataAction
-Basisklasse. Sie können diese konkrete Klasse erweitern, um die gewünschten Funktionen bereitzustellen.
HTTPAPIDataAction
Mit der HTTPAPIDataAction
-Klasse können Sie HTTP-APIs aufrufen. Dazu erstellen Sie eine asynchrone XMLHTTPRequest
-(XHR-)Anforderung und leiten diese an die angegebene URL weiter. Über den HTTP-Antwortcode kann eine Meldung für kurze Zeit auf der Leinwand angezeigt werden. Beispiel: Sie können die Anforderung anpassen, um JSON- oder XML-Payloads an einen REST- oder SOAP-Server zu senden. Außerdem können Sie den Antwort-Handler anpassen und eine benutzerdefinierte Benutzeroberfläche anzeigen.
Damit die HTTPAPIDataAction
-Datenaktion funktioniert, müssen Sie die URL der gewünschten HTTP-API auf die Liste der sicheren Domains setzen und ihr Zugriff zum Verbinden erteilen. Siehe Sichere Domains registrieren.
+ HTTPAPIDataAction(oKOModel)
+ create(sID_sName) : HTTPAPIDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[]
# createHTTPMethodGadgetInfo(oReport) : AbstractGadgetInfo # createPostParamGadgetInfo(oReport) : AbstractGadgetInfo