在网页中调用Tableau报表并定时刷新

1、添加服务器信任;
在tableau服务器上进入命令行(CMD),进入bin目录,执行:
tabadmin set wgserver.trusted_hosts "<授信服务器地址1>, <授信服务器地址2>, <授信服务器地址3>"
tabadmin restart
两个命令,授信并重启Tableau服务(注意授信服务器地址逗号后面有个空格,这个是文档写的要求)。
如果是Linux,则执行:
tsm authentication trusted configure -th "<授信服务器地址1> ", "<授信服务器地址2> ", "<授信服务器地址3>
tsm pending-changes apply
然后重启tableau服务。
2、修改如下脚本,作为外部调用的网页。
<%@ page contentType="text/html; charset=utf-8" language="java" errorPage="" %>
<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.util.*" %>
<%
String SERVERHOST="<Tabkleau IP>"; //这里填写Tabkleau服务器IP
String SERVERPORTAL="<Tabkleau portal>"; //这里填写Tabkleau服务器端口
String UserName="<Tabkleau username>"; //这里填写Tabkleau登录用户名
String views="3_2/3"; //这里填写要打开的视图的信息(例如http://<server ip>/#/views/3_2/3,则取3_2/3)
String url="http://"+SERVERHOST+":"+SERVERPORTAL+"/trusted";


//尝试登陆Tableau服务器,获取令牌
String token="";
PrintWriter outtStream = null;
BufferedReader in = null;
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
outtStream = new PrintWriter(conn.getOutputStream());
// 发送请求参数
outtStream.print("username="+UserName);
// flush输出流的缓冲
outtStream.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
token += line;
}

catch (Exception e) {
out.println("发送 POST 请求出现异常!"+e);
return;
}
finally{
try{
if(outtStream!=null){
outtStream.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
return;
}
}


if(token==null || token.equals("") || token.equals("-1"))
{
out.println("当前站点不受服务器信任,请添加站点到Tableau授信服务器列表.");
return;
}
%>
<style>
body,html{width:100%;height:100%;margin:0px;padding:0px;}
</style>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<script type='text/javascript' src='http://<%=SERVERHOST%>:<%=SERVERPORTAL%>/javascripts/api/tableau-2.min.js'></script>
<script type="text/javascript" language="javascript">
    var viz=null;
    function initViz() 
{
        var containerDiv = document.getElementById("vizContainer"),
        url = "http://<%=SERVERHOST%>:<%=SERVERPORTAL%>/trusted/<%=token%>/views/<%=views%>";
        options = {
            hideTabs: true,
            hideToolbar: true,
onFirstInteractive: function () {
setInterval(refreshReport, 60*1000);
}

        };
        viz = new tableau.Viz(containerDiv, url, options);
    }
    function refreshReport()
    {
        /*var sheet = viz.getWorkbook().getActiveSheet();
alert(sheet.getName());*/
viz.refreshDataAsync();
    }
</script>
</head>  
<body onLoad="initViz();">
    <div id="vizContainer" style="width:100%;height:100%; background-color:#000000">
    </div>        
</body>
</html>
红色加粗部分是间隔1分钟刷新的代码,根据实际需要,可以修改。
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值