从不同的Spotfire服务器动态加载不同的Spotfire报告

时间:2019-02-21 18:25:39

标签: javascript spotfire tibco

在我们的Web应用程序中,我们正在使用“ TIBCO Spotfire JavascriptAPI”集成Spotfire报告。

我们需要显示来自多个Spotfire服务器的报告。例如,我们在“ spotfire.cloud.tibco.com ”中有一个可视化报告,而在“ spotfire-next.cloud.tibco.com ”中有另一个报告

为了从这两个服务器加载报告,我需要包括两个如下所示的SF服务器

<script src="https://spotfire-next.cloud.tibco.com/spotfire/js-api/loader.js"></script>
<script src="https://spotfire.cloud.tibco.com/spotfire/wp/GetJavaScriptApi.ashx"></script>

因此,如果我使用“ spotfire.webPlayer ”之类的Spotfire实例实例化报告,哪个Spotfire服务器将获得触发器?

var serverUrl = "https://spotfire-next.cloud.tibco.com/spotfire/wp/";
var analysisPath = "/Samples/Expense Analyzer Dashboard";
var customizationInfo = new spotfire.webPlayer.Customization();    
var app = new spotfire.webPlayer.Application(serverUrl, customizationInfo,analysisPath);
var doc=app.openDocument("container");

var serverUrl2 = "https://spotfire.cloud.tibco.com/spotfire/wp/";
var analysisPath2 = "/Samples/Expense Analyzer Dashboard2";
var customizationInfo2  = new spotfire.webPlayer.Customization();
var app2 = new spotfire.webPlayer.Application(serverUrl2, customizationInfo2, analysisPath2);
var doc2=app2.openDocument("container2");

为了从两个不同的Spotfire服务器加载报告,我该如何实现?

2 个答案:

答案 0 :(得分:0)

  

因此,如果我使用诸如Spotfire实例实例化报告   “ spotfire.webPlayer ”将触发哪个Spotfire服务器?

Spotfire 7.6及更高版本使用Spotfire服务器作为作为节点安装的Webplayer的负载平衡。因此,基于Spotfire服务器的请求将转到该服务器管理的Webplayer节点。

如果要在特定的服务器/ Webplayer实例上运行报告,请执行以下步骤:

  • 创建2个资源池,名称分别为“ Dashboard”和“ Dashboard1”
  • 将一些Webplayer实例从“服务器1”分配到“仪表板”池
  • 将一些Webplayer实例从“服务器2”分配到“ Dashboard1”池
  • 现在您可以将报告分配到适当的资源池

答案 1 :(得分:0)

我不知道它是否可以工作,但是如果您错开脚本会怎样?

<script src="https://spotfire-next.cloud.tibco.com/spotfire/js-api/loader.js"></script>

<script> 
var serverUrl = "https://spotfire-next.cloud.tibco.com/spotfire/wp/";
var analysisPath = "/Samples/Expense Analyzer Dashboard";
var customizationInfo = new spotfire.webPlayer.Customization();    
var app = new spotfire.webPlayer.Application(serverUrl, customizationInfo,analysisPath);
var doc=app.openDocument("container");

</script>
<script src="https://spotfire.cloud.tibco.com/spotfire/wp/GetJavaScriptApi.ashx"></script>
<script>

var serverUrl2 = "https://spotfire.cloud.tibco.com/spotfire/wp/";
var analysisPath2 = "/Samples/Expense Analyzer Dashboard2";
var customizationInfo2  = new spotfire.webPlayer.Customization();
var app2 = new spotfire.webPlayer.Application(serverUrl2, customizationInfo2, analysisPath2);
var doc2=app2.openDocument("container2");
</script>

您可以下载其中一个loader.js并手动添加一个前缀,然后将该前缀加载到您的站点并引用它。

您可以将它们构建在单独的页面中,然后将它们拉入iframe(如果不是太复杂的页面)。

这绝对是一个问题,因为JavaScript会在最后一个函数中覆盖相同的命名函数。