Die geeignete Datenaktionsklasse zum Erweitern auswählen

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-Klasse

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

DataActionKOModel-Klasse

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-Klasse

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-Klasse

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-Klasse

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-Klasse

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-Klasse

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