Než začnete psát vlastní modul plugin akce s daty, rozhodněte se, kterou ze stávajících tříd akcí s daty chcete rozšířit. Zvolte třídu akcí s daty, jež poskytuje funkce, které se nejvíce shodují s vaší představou o tom, co by akce s daty měla provádět.
Každá akce s daty zdědí vlastnosti od třídy AbstractDataAction
, jak je znázorněno ve schématu tříd. Ve schématu tříd jsou uvedeny dvě abstraktní třídy akcí s daty (AbstractDataAction
a AbstractHTTPDataAction
) a čtyři konkrétní třídy akcí s daty (CanvasDataAction
, URLNavigationDataAction
, HTTPAPIDataAction
a EventDataAction
), které můžete rozšířit. Každá akce s daty, kterou poskytnete, musí rozšiřovat jednu z těchto tříd. Výběr třídy k rozšíření závisí na chování, které chcete implementovat při vyvolání akce s daty. Většina akcí s daty od třetích stran pravděpodobně rozšíří třídu URLNavigationDataAction
, HTTPAPIDataAction
nebo EventDataAction
.
Bez ohledu na to, kterou třídu rozšíříte, získáte při vyvolání akce s daty metadata popisující úplný kontext datového bodu, z něhož je akce s daty vyvolána. Prostudujte si téma Kontext akce s daty.
AbstractDataAction
je abstraktní základní třída, ze které vycházejí všechny typy akcí s daty. Je zodpovědná za poskytování společných funkcí a výchozího chování, které mohou podtřídy používat.
AbstractDataAction
Všechny typy akcí s daty jsou podtřídami základní třídy AbstractDataAction
. Poskytuje základní sadu funkcí společných pro všechny akce s daty. Pokud nevytváříte složitou akci s daty, která při vyvolání provede více typů akcí, nebo pokud nepotřebujete provést něco, co konkrétní třídy nepodporují, neměli byste rozšiřovat přímo tuto třídu. Pokud je potřebné vytvořit složitou akci s daty, pak zvažte rozšíření konkrétní třídy, která co nejblíže poskytuje vámi vyžadované funkce.
Syntaxe třídy AbstractDataAction
+ 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
Každá podtřída třídy AbstractDataAction
pravděpodobně vytvoří svou vlastní podtřídu základní třídy DataActionKOModel
. Základní třída DataActionKOModel
poskytuje následující vlastnosti:
DataActionKOModel, ValuePassingMode
sID:String
Jedinečný identifikátor přiřazený instanci akce s daty.
sClass:String
Název třídy tohoto konkrétního typu akcí s daty.
sName:String
Zobrazovaný název přiřazený instanci akce s daty.
sVersion
sScopeID
eValuePassingMode:ValuePassingMode
Režim používaný při předávání hodnot kontextu. Režim může být jedna z hodnot vlastnosti ValuePassingMode
(ALL, ANCHOR_DATA, NONE, CUSTOM
).
aAnchorToColumns: ColumnKOViewModel[]
Sloupce, ke kterým je tato akce s daty ukotvena. Tato vlastnost je volitelná. Pokud není poskytnuta, pak je akce s daty dostupná ve všech sloupcích.
aContextColumns : ColumnKOViewModel[]
Sloupce, které tato akce s daty zahrnuje v kontextu předaném do cíle akce s daty při vyvolání akce. Pokud není tato vlastnost poskytnuta, budou do kontextu zahrnuty všechny označené sloupce.
CanvasDataAction
je podtřída základní třídy AbstractDataAction
. Tuto konkrétní třídu můžete rozšířit, aby poskytovala vámi požadované funkce.
CanvasDataAction
Třídu CanvasDataAction
použijte k přechodu z datového bodu ve vizualizaci na jiný kanvas. Kanvas, na který přecházíte, se může nacházet ve stejném nebo jiném sešitu. Všechny aktivní filtry pro vizualizaci zdroje budou předány do cílového kanvasu společně s novými filtry, které popisují kvalifikovanou referenci dat vlastního datového bodu. Pokud akce s daty vyžaduje přechod na jiný kanvas, pak by měla rozšířit tuto třídu.
+ 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
je podtřída základní třídy AbstractDataAction
. Tuto konkrétní třídu můžete rozšířit, aby poskytovala vámi požadované funkce.
EventDataAction
Třídu EventDataAction
používejte k publikování událostí na straně klientu. Poté můžete registrovat jednoho nebo více účastníků, kteří budou moci sledovat tuto událost a provádět vlastní akce. Tento typ akcí s daty používejte ve složitějších případech použití, kdy máte velmi rozsáhlý kód a můžete mít prospěch z toho, že ponecháte kód akce s daty volně propojený s kódem, který provádí nezbytné akce, když je vyvolána příslušná akce s daty.
+ EventDataAction(oKOModel)
+ create(sID_sName) : EventDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[] + validate() : DataActionError
# createEventGadgetInfo(oReport) : AbstractGadgetInfo
AbstractHTTPDataAction
je abstraktní základní třída, ze které přebírají společné funkce a výchozí chování podtřídy URLNavigationDataAction
a HTTPAPIDataAction
.
AbstractHTTPDataAction
Abstraktní základní třída AbstractHTTPDataAction
je sdílena třídami URLNavigationDataAction
a HTTPAPIDataAction
. Pokud akce s daty potřebuje otevřít webovou stránku na nové kartě prohlížeče, musíte rozšířit třídu URLNavigationDataAction
. Pokud akce s daty potřebuje vyvolat rozhraní HTTP API, pak rozšiřte třídu HTTPAPIDataAction
. Můžete se také rozhodnout, že bude lepší rozšířit přímo třídu AbstractHTTPDataAction
.
+ HTTPDataAction(oKOModel)
+ validate() : DataActionError
# createURLGadgetInfo(oReport) : AbstractGadgetInfo
URLNavigationDataAction
je podtřída základní třídy AbstractHTTPDataAction
.
URLNavigationDataAction
Třídu URLNavigationDataAction
použijte k otevření určité adresy URL na nové kartě prohlížeče. Adresu URL můžete sestavit pomocí tokenů, které jsou nahrazovány hodnotami odvozenými z datových bodů zvolených uživatelem při vyvolání akce s daty. Hodnoty datových bodů jsou předány jako část kontextu akce s daty na externí webovou stránku. Můžete například vytvořit akci s daty vyvolávanou pomocí sloupce ID zákazníka
, která otevírá webovou stránku zákazníka v aplikaci řízení vztahů se zákazníky, jako je Oracle Sales Cloud.
+ URLNavigationDataAction(oKOModel)
+ create(sID_sName) : URLNavigationDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[]
HTTPAPIDataAction
je podtřída základní třídy AbstractHTTPDataAction
. Tuto konkrétní třídu můžete rozšířit, aby poskytovala vámi požadované funkce.
HTTPAPIDataAction
Třídu HTTPAPIDataAction
používejte k vyvolání rozhraní HTTP API vytvořením asynchronního požadavku XMLHTTPRequest
(XHR) a jeho odesláním na stanovenou adresu URL. Kód odpovědi protokolu HTTP umožňuje krátce zobrazit zprávu na kanvasu. Můžete například přizpůsobit požadavek na odeslání datových částí JSON nebo XML na server REST nebo SOAP a současně můžete přizpůsobit obslužný program odpovědi, aby zobrazil vlastní uživatelské rozhraní.
K zajištění řádné funkce akce s daty HTTPAPIDataAction
musíte do seznamu bezpečných domén přidat adresu URL rozhraní HTTP API, k němuž chcete přistupovat, a musíte jí udělit přístup Připojit. Viz část Registrace bezpečných domén.
+ HTTPAPIDataAction(oKOModel)
+ create(sID_sName) : HTTPAPIDataAction + upgrade(oOldDataActionJS) : Object
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) + getGadgetInfos(oReport) : AbstractGadgetInfo[]
# createHTTPMethodGadgetInfo(oReport) : AbstractGadgetInfo # createPostParamGadgetInfo(oReport) : AbstractGadgetInfo