Pentaho Analyzer 外部 JavaScript API 參考
當(dāng)以嵌入式方式工作時(shí)铃在,此API集使OEM可以更好地控制Analyzer。這些API允許與分析器查看器寻仗,報(bào)告和數(shù)據(jù)進(jìn)行更細(xì)粒度的交互誊册。
如何訪問(wèn)API
可以使用以下嵌入式 iFrame 方法訪問(wèn) API:
- 同一域
- 不同的領(lǐng)域
一垦细、嵌入具有相同域的 iFrame 中
在 PUC 內(nèi)部使用 Analyzer 時(shí)勾邦,可以通過(guò)兩種方式執(zhí)行自定義 API 代碼:將代碼直接放在父框架中报破,或者通過(guò)將代碼包含在外部資源文件中跃须。
1蒙具、在父框架內(nèi)
在父 html 文件中球榆,添加以下腳本塊。初始化分析器時(shí)店量,將為打開(kāi)或創(chuàng)建的每個(gè)分析器報(bào)告執(zhí)行該操作芜果。
<script type="text/javascript">
window.onAnalyzerReady = function(api, frameId) {
// Perform Analyzer API actions
};
</script>
Note: 由于初始化Analyzer時(shí)將執(zhí)行onAnalyzerReady代碼,因此該代碼塊中不提供api.event.registerInitListener融师。
2右钾、作為外部資源
此外,通過(guò)將自定義javascript包含為外部資源,可以達(dá)到相同的結(jié)果舀射。唯一的區(qū)別是您不必使用“ onAnalyzerReady”功能窘茁,因?yàn)榉治鰞x已經(jīng)在適當(dāng)?shù)臅r(shí)間加載了此文件。在您自己的plugin.xml文件中脆烟,向您的自定義javascript文件添加路徑山林,該路徑將在分析器加載時(shí)執(zhí)行:
<file context="analyzer">path/to/your/javascript/ExternalFile.js</file>
有關(guān)創(chuàng)建自己的plugin.xml文件的更多詳細(xì)信息,請(qǐng)參[創(chuàng)建Pentaho Server插件邢羔。
第一個(gè)javascript塊中的相同代碼相同驼抹,但是未使用“ onAnalyzerReady”功能。相反拜鹤,您將需要使用RequireJS的API
require([ "analyzer/cv_api" ], function(api) {
api.event.registerInitListener(function(e, cv) {
// Perform Analyzer API actions
});
});
二框冀、嵌入到不同域的 iFrame 中
這些API在每個(gè)Analyzer iFrame的全局范圍內(nèi)公開(kāi)。分析器iFrame查找附加到父窗口的onAnalyzerReady函數(shù)敏簿。由于跨站點(diǎn)腳本問(wèn)題明也,您必須配置嵌入了Analyzer的iFrame。您可以通過(guò)將外部資源文件添加到任何插件的plugin.xml文件中來(lái)實(shí)現(xiàn)惯裕。通常使用default-plugin添加此類腳本温数。它位于pentaho-solutions / system / default-plugin /中。
在插件的plugin.xml文件中蜻势,您將向自己的javascript文件添加路徑撑刺,該路徑將在加載Analyzer時(shí)執(zhí)行。
Plugin.xml:
<file context="analyzer">path/to/your/global/javascript/GlobalFile.js</file>
在外部javascript文件中咙边,必須在Analyzer iFrame的窗口上設(shè)置自定義域?qū)傩浴?/p>
ExternalFile.js:
// iFrame source = "http://example.company.org:8080/pentaho/api/repos/xanalyzer/editor
window.customDomain = "company.org"
此外猜煮,必須在要嵌入分析器的父頁(yè)面或框架內(nèi)部設(shè)置document.domain。將Analyzer iFrame嵌入到頁(yè)面中時(shí)败许,可以將onAnalyzerReady函數(shù)綁定到窗口王带。一旦API加載并可用,分析器將自動(dòng)尋找該功能并執(zhí)行該功能市殷。
<html>
<head>
<script type="text/javascript">
document.domain = "company.org"
window.onAnalyzerReady = function(api, frameId) {
// Perform Analyzer API actions
};
</script>
</head>
<body>
<iframe id="analyzer-frame" src="http://example.company.org:8080/pentaho/api/repos/xanalyzer/editor"></iframe>
</body>
</html>
加載Analyzer時(shí)愕撰,您將可以訪問(wèn)API和正在調(diào)用代碼的框架的frameId,以便可以適當(dāng)?shù)刈远x每個(gè)框架醋寝。Analyzer 為頁(yè)面中的每個(gè)框架執(zhí)行onAnalyzerReady代碼搞挣,因此,每個(gè)框架的frameId將有所不同音羞,并且您收到的API將與該框架相關(guān)囱桨。
window.onAnalyzerReady = function(api, frameId) {
// Perform Analyzer API actions
};
例:
//Example calls into namespaced functions
cv.api.report.setLayoutFields("test");
cv.api.report.getLayoutFields();
1、直接網(wǎng)址
要在通過(guò)分析器的URL直接加載分析器時(shí)訪問(wèn)API嗅绰,需要使用“ 作為外部資源”方法舍肠。
三搀继、服務(wù)電話參考
提供以下JavaScript API服務(wù)調(diào)用類別的參考:
分析器模塊
詳細(xì)介紹了analyzer.AnalyzerModule的方法,該方法允許在DOM元素中部署和控制分析器翠语。事件
詳細(xì)說(shuō)明cv的方法叽躯。api.event類,其中包含創(chuàng)建和注冊(cè)事件的所有必要調(diào)用肌括。操作
詳細(xì)說(shuō)明cv的方法点骑。api.operation類,其中包含可用的與操作相關(guān)的API調(diào)用谍夭。報(bào)告
詳細(xì)介紹了簡(jiǎn)歷的方法黑滴。api.report類,其中包含可用的與報(bào)告相關(guān)的API調(diào)用慧库。用戶界面
詳細(xì)介紹cv的方法跷跪。api.ui類馋嗜,其中包含與用戶界面相關(guān)的可用API調(diào)用齐板。實(shí)用程序
詳細(xì)介紹cv的方法。api.util 類葛菇,其中包含可用的與實(shí)用程序相關(guān)的API調(diào)用甘磨。