Moduly plugin akcí s daty využívají prostředí akcí s daty k poskytování vlastních akcí řízených daty, které jsou těsně integrovány s uživatelským rozhraním služby Oracle Analytics.
Když uživatel vyvolá akci s daty, aplikace Data Action Manager předá kontext požadavku (například kvalifikovanou referenci dat, hodnoty ukazatelů, filtry a metadata) do modulu plugin akce s daty zodpovědného za zpracování požadavku. Společnost Oracle poskytuje čtyři typy modulů plugin akcí s daty: CanvasDataAction
, URLNavigationDataAction
, HTTPAPIDataAction
a EventDataAction
. Tyto typy modulů plugin akcí s daty můžete rozšířit společně s jejich abstraktními základními třídami, aby poskytovaly vaše vlastní akce s daty.
Mezi kategorie akcí s daty patří Přejít na adresu URL, HTTP API, Přejít na kanvas a Akce události:
GET/POST/PUT/DELETE/TRACE
k cílení na rozhraní HTTP API a nezpůsobuje zobrazení nové karty. Místo toho je prozkoumán stavový kód HTTP a následně je zobrazena zpráva o přechodném úspěchu nebo selhání.Oba typy kategorií akcí s daty, Přejít na adresu URL a HTTP API, mohou používat syntaxi tokenů ke vkládání dat nebo metadat z vizualizace do parametrů URL
a POST
.
Nahrazení tokenu adresy URL
Akce s daty HTTP mohou nahradit tokeny v adresách URL hodnotami z kontextu předaného do akce s daty. Jedná se například o referenční hodnoty kvalifikovaných dat, hodnoty filtrů, uživatelské jméno, cestu k sešitu nebo název kanvasu.
Token | Poznámky | Nahradit za | Příklad | Výsledek |
---|---|---|---|---|
${valuesForColumn:COLUMN} |
Není k dispozici | Zobrazované hodnoty sloupce z kvalifikované reference dat. | ${valuesForColumn: "Prodej"."Produkty"."Značka"} |
BizTech,FunPod |
${valuesForColumn:COLUMN, separator:"/"} |
Libovolný token, který může být potenciálně nahrazen více hodnotami, podporuje možnost použití volitelného oddělovače. Výchozí nastavení parametru separator je čárka (,), ale můžete ji změnit na libovolný řetězec. Pokud je nutné uvést uvnitř tohoto řetězce dvojité uvozovky, použijte zpětné lomítko (\). |
Zobrazované hodnoty sloupce z kvalifikované reference dat. | ${valuesForColumn: "Prodej"."Produkty"."Značka"} |
BizTech,FunPod |
${valuesForColumn:COLUMN, separationStyle:individual} |
Parametr separationStyle má výchozí hodnotu delimited , kterou ale můžete změnit na hodnotu individual , pokud uživatel potřebuje generovat samostatné parametry adresy URL pro každou hodnotu. |
Zobrazované hodnoty sloupce z kvalifikované reference dat. | &myParam=${valuesForColumn: "Prodej"."Produkty"."Značka"} |
&myParam=BizTech&myParam=FunPod |
${keyValuesForColumn:COLUMN} |
Není k dispozici | Hodnoty klíče sloupce z kvalifikované reference dat. | ${keyValuesForColumn:COLUMN} |
10001,10002 |
${env:ENV_VAR} |
Mezi podporované proměnné prostředí patří: sProjectPath , sProjectName , sCanvasName , sUserID a sUserName . |
Proměnná prostředí. | ${env:'sUserID'} |
myUserName |
Můžete definovat kontext, který bude předán, když uživatel vyvolá akci s daty.
Definujete, jaká část kontextu bude předána akci s daty, když vytvoříte akci s daty.
Reference kvalifikovaných dat
Při vyvolání akce s daty se generuje reference kvalifikovaných dat pro každý označený datový bod pomocí pole objektů LogicalFilterTree
. Objekt LogicalFilterTree
se skládá z více objektů LogicalFilterNode
uspořádaných do stromové struktury. Součástí tohoto objektu jsou:
Proměnné prostředí
Kromě dat a metadat popisujících jednotlivé označené datové body mohou určité akce s daty vyžadovat další kontext popisující prostředí, ze kterého je akce s daty vyvolána. Mezi takové proměnné prostředí patří:
Vytvoříte akce s daty pomocí tříd rozhraní API.
AbstractDataAction
:
CanvasDataAction
URLNavigationDataAction
HTTPAPIDataAction
EventDataAction
DataActionPluginHandler
.DataActionManager
.Existuje několik různých typů tříd modelů akcí s daty.
AbstractDataAction
Tato třída je zodpovědná za:
+ invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext) <<abstract>>
Vyvolává akci s daty pomocí předaného kontextu – měla by ji volat pouze třída DataActionManager
.
+ getGadgetInfos(oReport): AbstractGadgetInfo[] <<abstract>>
Vytváří a vrací informace GadgetInfos
zodpovědné za generování polí uživatelského rozhraní pro úpravu tohoto typu akcí s daty.
+ validate() : DataActionError
Ověřuje akci s daty a vrací hodnotu null, pokud je platná, nebo argument DataActionError
, pokud je neplatná.
+ getSettings():JSON
Serializuje model Knockout akce s daty, aby podporoval JSON, a bylo jej tak možné zahrnout do sestavy (používá komapping.toJS(_koModel)).
+ createNameGadgetInfo(oReport) : AbstractGadgetInfo
Vytváří a vrací informace GadgetInfo
, které mohou generovat pole Název akce s daty.
+ createAnchorToGadgetInfo(oReport) : AbstractGadgetInfo
Vytváří a vrací informace GadgetInfo
, které mohou generovat pole Ukotvit k akce s daty.
+ createPassValuesGadgetInfo(oReport) : AbstractGadgetInfo
Vytváří a vrací informace GadgetInfo
, které mohou generovat pole Předat hodnoty akce s daty.
Podtřídy možná nebudou potřebovat všechny informace GadgetInfo
, které základní třída poskytuje, takže možná nebude nutné volat všechny tyto metody. Díky oddělení generování jednotlivých polí tímto způsobem mohou podtřídy volně vybírat a volit miniaplikace, které potřebují. Některé podtřídy mohou dokonce zvolit poskytování odlišné implementace těchto společných miniaplikací pro akce s daty.
CanvasDataAction, URLNavigationDataAction, HTTPAPIDataAction, EventDataAction
Toto jsou konkrétní třídy pro základní typy akcí s daty. Tyto třídy fungují samy o sobě a poskytují obecné uživatelské rozhraní pro tyto typy akcí s daty. Mohou také sloužit jako praktické základní třídy pro rozšiřovaní vlastních modulů plugin akcí s daty.
GET/POST/PUT/DELETE/TRACE
na rozhraní HTTP API a k programovému zpracování odpovědi protokolu HTTP
.Každá třída je zodpovědná za:
invoke(oActionContext: ActionContext, oDataActionContext:DataActionContext)
Tato metoda by měla vyvolat akci s daty zkombinováním vlastností definovaných v modelu KOModel pomocí zadaného objektu DataActionContext
.
getGadgetInfos(oReport): AbstractGadgetInfo[]
Tato metoda by měla:
AbstractGadgetInfos
.createXXXGadgetInfo()
, které vloží jednotlivé informace AbstractGadgetInfo
do pole.Podtřídy těchto konkrétních tříd nemusí vyžadovat použití všech miniaplikací poskytovaných nadtřídami v jejich vlastních uživatelských rozhraních. Díky oddělení vytváření jednotlivých miniaplikací tímto způsobem mohou podtřídy volně vybírat a volit miniaplikace, které potřebují.
DataActionKOModel, ValuePassingMode
Třída DataActionKOModel
poskytuje základní model KOModel sdílený různými podtřídami třídy AbstractDataAction
. Viz část Třída DataActionKOModel.
Existuje několik různých tříd služeb pro akce s daty.
DataActionManager
Veškerá komunikace s třídou DataActionManager
používá objekty ClientEvents
.DataActionManager
, které implementují obslužné programy událostí, jejichž účelem je:
DataActionContext, EnvironmentContext
Když je vyvolána akce s daty, třída DataActionContext
obsahuje kontext, který je předán do cíle.
getColumnValueMap()
Vrátí mapu hodnot sloupců atributů s klíči podle názvů sloupců atributů. Ty definují kvalifikovanou referenci dat pro datové body, ze kterých je akce s daty vyvolána.
getLogicalFilterTrees()
Vrátí objekt LogicalFilterTrees
popisující kvalifikované reference dat pro určité datové body, ze kterých je akce s daty vyvolána (podrobnosti najdete v části věnované třídě InteractionService
).
getEnvironmentContext()
Instance třídy EnvironmentContext
popisující zdrojové prostředí, jako je:
getProjectPath()
getCanvasName()
getUserID()
getUserName()
getReport()
Vrátí sestavu, ze které je akce s daty vyvolána.
DataActionHandler
Třída DataActionHandler
registruje různé moduly plugin akcí s daty. Její rozhraní API je rozsáhle konzistentní s dalšími obslužnými programy modulů plugin (například VisualizationHandler
).
Třída DataActionHandler
poskytuje následující veřejné metody:
getClassName(sPluginType:String) : String
Vrací plně kvalifikovaný název třídy pro určitý typ akcí s daty.
getDisplayName(sPluginType:String) : String
Vrací přeložený zobrazovaný název pro určitý typ akcí s daty.
getOrder(sPluginType:String) : Number
Vrací číslo používané k řazení seznamů typů akcí s daty do preferovaného pořadí.
Třída DataActionHandler
poskytuje následující statické metody:
getDependencies(oPluginRegistry:Object) : Object.<String, Array>
Vrací mapu závislosti pokrývající všechny registrované typy akcí s daty.
getHandler(oPluginRegistry:Object, sExtensionPointName:String, oConfig:Object) : DataActionPluginHandler
Vytváří a vrací novou instanci třídy DataActionHandler
.
DataActionUpgradeHandler
Třídu DataActionUpgradeHandler
volá objekt UpgradeService
při otevření sestavy.
Třída DataActionHandler
poskytuje dvě hlavní metody:
deferredNeedsUpgrade(sCurrentVersion, sUpgradeTopic, oDataActionJS, oActionContext) : Promise
Vrací objekt Promise
, který je převeden na logickou hodnotu udávající, zda je nutné upgradovat stanovenou akci s daty (true
) nebo nikoli (false
). Metoda rozhodne, zda je třeba akci dat upgradovat porovnáním instance akce dat s konstruktorem akce dat.
performUpgrade(sCurrentVersion, sUpgradeTopic, oDataActionJS, oActionContext, oUpgradeContext) : Promise
Provede upgrade stanovené akce s daty a převede objekt Promise
. Vlastní upgrade se provádí voláním metody upgrade()
pro akci s daty (pro vlastní upgrade je kvalifikována pouze konkrétní podtřída upgradované akce s daty).
getOrder(sPluginType:String) : Number
Vrací číslo používané k řazení seznamů typů akcí s daty do preferovaného pořadí.
Akce s daty uskutečňuje interakce s kódem služby Oracle Analytics, když vytvoří pole uživatelského rozhraní a když uživatel vyvolá akci s daty.
Vytvoření pole pro novou instanci akce s daty
Tato interakce se spustí, když chce služba Oracle Analytics generovat pole uživatelského rozhraní akce s daty. Za tímto účelem:
PanelGadgetInfo
, který slouží jako nadřízený objektu třídy GadgetInfo
pro hodnoty GadgetInfos
, které vrací akce s daty.getGadgetInfos()
pro akci s daty.GadgetInfos
akce s daty jako podřízené objektu třídy PanelGadgetInfo
vytvořeného v prvním kroku.PanelGadgetView
, který generuje objekt třídy PanelGadgetInfo
.HTMLElement
, který je kontejnerem třídy PanelGadgetView
.PanelGadgetView
jako podřízený objekt komponenty HostedComponent
, přičemž komponenta HostedComponent
je již připojena ke stromu HostedComponent
.
Tím je zajištěno generování miniaplikací akce s daty v miniaplikaci Panel v pořadí, ve kterém se objeví v poli vráceném metodou getGadgetInfos()
.
Vyvolání akce s daty
Tato interakce se spustí, když uživatel vyvolá akci s daty prostřednictvím uživatelského rozhraní služby Oracle Analytics (například z místní nabídky datového bodu ve vizualizaci).
V reakci na interakci uživatele kód:
INVOKE_DATA_ACTION
obsahující identifikátor akce s daty, vizualizaci dat
, ze které je akce s daty vyvolána, a objekt TransientVizContext
.DataActionManager
využije:
LogicalFilterTrees
pro označené datové body ve stanovené vizualizaci dat
.DataActionContext
, který obsahuje veškeré informace určené k předání do cíle akce s daty.invoke(oDataActionContext)
pro akci s daty.V tomto tématu je uveden příklad souboru plugin.xml pro akci s daty CanvasDataAction
.
Příklad souboru plugin.xml
<?xml version="1.0" encoding="UTF-8"?> <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle" xmlns:viz="http://plugin.frameworks.tech.bi.oracle/extension-points/visualization" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="obitech-currencyconversion" name="Oracle BI Currency Conversion" version="0.1.0.@qualifier@" optimizable="true" optimized="false"> <tns:resources> <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/> <tns:resource-folder id="nls" path="resources/nls" optimizable="true"> <tns:extensions> <tns:extension name="js" resource-type="script"/> </tns:extensions> </tns:resource-folder> </tns:resources> <tns:extensions> <tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0"> <tns:configuration> { "resourceBundle": "obitech-currencyconversion/nls/messages", "properties": { "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction", "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" }, "order": 100 } } </tns:configuration> </tns:extension> </tns:extensions> </tns:obiplugin>
K implementaci modulů plugin akcí s daty se používají následující soubory a složky.
bitech/client/plugins/src/
report
obitech-report
scripts
dataaction
dataaction.js
dataactiongadgets.js
dataactionpanel.js
dataactionupgradehandler.js
obitech-reportservice
scripts
dataaction
dataactionmanager.js
dataactionhandler.js