Podle zde popsaných informací se dozvíte o vkládání a provádění datových akcí ve vizualizaci v rámci externích kontejnerů, jako je stránka HTML nebo webová stránka aplikace.
Poznámka:
Příklady uvedené v této části se vztahují k vloženým akcím s daty, kdy vkládající aplikace nepoužívá technologii Oracle JET. Prostudujte si část:Spouštění akcí s daty
Pokud kliknete na akci s daty Publikovat událost, akce určí kontextové informace vizualizace a předá je službě akce navigace, aby je zpracovala. Proces služby sloužící pro akci navigace vyvolá událost zvanou „oracle.bitech.dataaction“ obsahující informace o datové části kontextu. K této události můžete provést subskripci a při zpětném volání akce získat datovou část a podle potřeby ji dále využít.
Následující vizualizace zobrazuje tržby v dolarech pro obory činnosti, například Komunikace, Digitální zařízení, Elektronika, v organizacích, například Organizace frančíz, Vstupní organizace, Mezinárodní organizace.
Formát a kontext události a datové části
Následující příklad demonstruje publikování události, kdy je vložená akce s daty vyvolána nejméně jednou datovou buňkou, na kterou uživatel klikl pravým tlačítkem a danou akci s daty vybral z nabídky zobrazené ve vloženém sešitu.
Níže uvedené příklady jsou ze souboru JSON, například obitech-cca/cca/component.json.
Formát události
"events": {
"oracle.bitech.dataaction": {
"description": "Generic DV Event published from an embedded data visualization.",
"bubbles": true,
"cancelable": false,
"detail": {
"eventName": {
"description": "The name of the published BI Event",
"type": "string"
},
"payload": {
"description": "The payload contains context and related information to the event published",
"type": "object"
}
}
}
Formát datové části
{"context":[
"or": [
"and":[
{"contextParamValues":[...],
"contextParamValuesKeys":[...],
"colFormula":"...",
"displayName":"...",
"isDoubleColumn":true/false,
"dataType":"..."
}
]
]
]
}
Předání jedné hodnoty do jednoho sloupce v případě předání podle kontextu
V tomto příkladu je po kliknutí na buňku sloupce objekt s kontextovými informacemi o sloupci předán externímu kontejneru. Zde se tedy předává název organizace.
{
"context": [
{
"contextParamValues": [
"Inbound Org."
],
"contextParamValuesKeys": [
"Inbound Org."
],
"colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"",
"displayName": "D3 Organization",
"isDoubleColumn": false,
"dataType": "varchar"
}
]
}Předání jedné hodnoty do každého sloupce v případě předání podle kontextu
V tomto příkladu se při kliknutí na buňku sloupce, například Vstupní organizace a Digitální produkty, přenese při kliknutí na volbu nabídky Vložený DA1 pro výběr vložené akce hodnota tržeb v dolarech pro vybraný obor činnosti a organizaci. Například se přenesou tržby pro Digitální produkty ze Vstupní organizace, v tomto případě tedy 1 458 738,42 USD.

{
"context": [
{
"contextParamValues": [
"Digital"
],
"contextParamValuesKeys": [
"Digital"
],
"colFormula": "\"A - Sample Sales\".\"Products\".\"P3 LOB\"",
"displayName": "P3 LOB",
"isDoubleColumn": false,
"dataType": "varchar"
},
{
"contextParamValues": [
"Inbound Org."
],
"contextParamValuesKeys": [
"Inbound Org."
],
"colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"",
"displayName": "D3 Organization",
"isDoubleColumn": false,
"dataType": "varchar"
}
]
}Předání několika hodnot v případě předání podle kontextu
V tomto příkladu se při kliknutí na dvě buňky řádky (například Vstupní organizace a Mezinárodní organizace pro Digitální produkty) a kliknutí na volbu nabídky Vložený DA1 pro výběr vložené akce přenese hodnota tržeb v dolarech pro dvě vybrané buňky organizace a obory činnosti. Například kliknutím na tržby pro Digitální produkty z jedné ze dvou vybraných organizací (Vstupní a Mezinárodní) se přenese hodnota 1 458 738,42 USD a 915 528,97 USD.

{
"context": [
{
"or": [
{
"and": [
{
"contextParamValues": [
"Digital"
],
"contextParamValuesKeys": [
"Digital"
],
"colFormula": "\"A - Sample Sales\".\"Products\".\"P3 LOB\"",
"displayName": "P3 LOB",
"isDoubleColumn": false,
"dataType": "varchar"
},
{
"contextParamValues": [
"Inbound Org."
],
"contextParamValuesKeys": [
"Inbound Org."
],
"colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"",
"displayName": "D3 Organization",
"isDoubleColumn": false,
"dataType": "varchar"
}
]
},
{
"and": [
{
"contextParamValues": [
"Digital"
],
"contextParamValuesKeys": [
"Digital"
],
"colFormula": "\"A - Sample Sales\".\"Products\".\"P3 LOB\"",
"displayName": "P3 LOB",
"isDoubleColumn": false,
"dataType": "varchar"
},
{
"contextParamValues": [
"International Org."
],
"contextParamValuesKeys": [
"International Org."
],
"colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"",
"displayName": "D3 Organization",
"isDoubleColumn": false,
"dataType": "varchar"
}
]
}
]
}
]
}Následující kroky slouží k zobrazení datových částí událostí pomocí nástrojů prohlížeče Chrome.
console.log(„Pro zobrazení datové části přidejte na tento řádek bod změny a použijte ladící program nástrojů prohlížeče“) ; a vyberte Přidat bod změny.
Po vyvolání akce s daty události z vloženého kanvasu se v části Rozsah na pravém podokně s nástroji prohlížeče objeví položka datová část.
Globální proměnnou lze zobrazit na kartě Konzola a rozbalením zobrazit podrobnosti o datové části.
Příklad stránky HTML s vizualizací, která přijímá události
Následující vzorový kód ilustruje, jak pro akci s daty události analytiky definovat službu listener pro událost. V tomto vzorovém kódu je třeba aktualizovat analytickou instanci a vloženou cestu k sešitu. V sešitě musí být definována akce s daty události. Událost, které je nasloucháno, se nazývá oracle.bitech.dataaction. Jakmile je událost spuštěna, odešle se zpráva do konzoly.
<!DOCTYPE HTML>
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Oracle Analytics embed example to view data action event payload</title>
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<script src="https://<OAC-INSTANCE>.analytics.ocp.oraclecloud.com/public/dv/v1/embedding/standalone/embedding.js" type="application/javascript">
</script>
</head>
<body>
<h1>Oracle Analytics embed example to view data action event payload</h1>
<div id="mydiv" style="position: absolute; width: calc(100% - 40px); height: calc(100% - 120px)" >
<oracle-dv project-path='<WORKBOOK-PATH-TO-EMBED>'
active-page='insight'
active-tab-id='snapshot!canvas!1'>
</oracle-dv>
</div>
<script>
requirejs(['knockout', 'ojs/ojcore', 'ojs/ojknockout', 'ojs/ojcomposite', 'jet-composites/oracle-dv/loader'], function(ko) {
ko.applyBindings();
});
</script>
<script>
var eventName = 'oracle.bitech.dataaction';
var element = document.getElementById("mydiv");
if (element) {
var oEventListener = element.addEventListener(eventName, function (e) {
console.log("***** Payload from DV sent ***** ");
console.log("eventName = " + e.detail.eventName);
console.log("To view the payload, add a breakpoint on this line and use the browser tools debugger") ;
console.log("******************************** ");
}, true);
}
</script>
</body>
</html>
Sekci <script> z předchozí ukázky kódu můžete také upravit tak, aby vracela hodnoty místa, kde byla akce s daty vyvolána:
<script>
var eventName = 'oracle.bitech.dataaction';
var element = document.getElementById("mydiv");
if (element) {
var oEventListener = element.addEventListener(eventName, function (e) {
console.log("***** Payload from DV sent ***** ");
console.log("eventName = " + e.detail.eventName);
console.log("To view the payload, add a breakpoint on this line and use the browser tools debugger") ;
console.log("******************************** ");
var res = " Data Received from DV Content: ";
// Get the values of the row from where data action was invoked
Object.keys(e.detail.payload.context).forEach(function(key) {
res = res.concat(key);
res = res.concat(" : ");
var temp = e.detail.payload.context[key]["oValueMap"];
var temp1 = Object.keys(temp)[0];
res = res.concat(temp1);
res = res.concat(" | ");
});
console.log("Data Action Row Context : " + res);
}, true);
}
</script>