页面树结构
转至元数据结尾
转至元数据起始

注:示例代码只针对组合分析和透视分析有效

使用场景

项目中具有较多的大数据量报表,初次打开这些大数据量报表耗时较长。因需要对这些大数据量报表进行预处理,使用客户可以快速的对大数据量报表进行预览分析,无需等待。下面以定时刷新组合分析报表【销售明细分析】为例,【销售明细分析】报表ID为:I2c949e3615ee7c120115f00f2e27004a。我们可以选中资源右键选择属性获取节点ID。


实现思路

在客户预览分析报表之前,通过计划任务定时对报表进行预处理。

操作步骤

1、在计划任务中添加刷新报表数据的任务,操作入口【计划任务】-> 【任务】新建任务,如下图:      


     

2、【任务类型】选择"定制",在【自定义设置】中添加刷新报表的代码,如新建任务名称为"定时刷新报表"如下图:      

//导入将会使用的java类与java包 
importClass(java.lang.System);

//打开报表资源。 
var tempResourceHandle = execute('openResource', {
    connector: connector,
    reportId: "I2c949e3615ee7c120115f00f2e27004a" //报表id
}).resourceHandle;

     

3、再新建计划,实现定时刷新报表。操作入口【计划任务】->【计划】新建计划,如下图:       


     

4、如计划名称为"定时刷新报表_计划",【待执行任务】中添加已建好的任务"定时刷新报表",如下图所示。再根据项目需求设置定时计划的【触发类型】、【间隔类型】、【运行设置】。      


注:如果资源是透视分析,以上任务代码不适用,请使用以下代码

importPackage(Packages.smartbi.net.sf.json);
importPackage(Packages.java.lang);
var insight = connector.remoteInvoke("InsightService","openQuery",["I4028839a015f575f575f7f5f015f576d868d0058",""]);
var result = JSONObject.fromObject(insight.getResult());
var clientId = result.getString("clientId");
logger.info(clientId);
var pageNo = new Integer(0);
connector.remoteInvoke("InsightService","refreshData",[clientId,pageNo]);