我正在尝试使用JavaScript API配置默认过滤器选择状态。以下是我为此示例使用的代码:
$(function() {
var placeholderDiv = document.getElementById("tableauViz");
var url = "https://sometableausite/t/Tableau_Dev/views/MyPath/HomeDashboard?:embed=y&:showShareOptions=true&:display_count=no&:showVizHome=no";
var options = {
hideTabs: false,
width: "100%",
height: "1552px",
onFirstInteractive: function() {
var worksheet;
var filtersVal='';
var onSuccess = function (filters) {
console.log("This worksheet has " + filters.length + " filter(s) associated with it.");
$.each(filters, function (filter, i) {
// use .value property of each DataValue object
filtersVal += i.getFieldName() + ", ";
console.log(filtersVal);
});
};
var onError = function (err) {
console.log(err);
};
viz.getWorkbook().activateSheetAsync("Performance").then(function(sheet) {
worksheet = sheet;
worksheet.getWorksheets()[0].getFiltersAsync().then(onSuccess, onError);
});
}
};
var viz = new tableau.Viz(placeholderDiv, url, options);
});
这只是试图在此时获取可用的过滤器选项,但我收到500服务器错误并在调用worksheet.getFiltersAsync()时被踢入onError调用。
这是返回的错误:
给出500服务器错误。
TableauException:内部错误
2016-06-22 19:27:53.350
(V2rmuQrmAA0AAEGQy60AAALP,0,2)
如何获取过滤器列表?
答案 0 :(得分:0)
在尝试查询可用的过滤器选项时,我无法解决问题中的错误。相反,我通过简单地将过滤器添加到使用的URL中找到了一种解决方法。
$(function() {
var placeholderDiv = document.getElementById("tableauViz");
var url = "https://sometableausite/t/Tableau_Dev/views/MyPath/HomeDashboard?Business Unit Name=Accounting";
var options = {
hideTabs: true,
width: "100%",
height: "1552px"
};
var viz = new tableau.Viz(placeholderDiv, url, options);
});