Essbase Java API导出数据库MAXL

时间:2014-11-26 05:14:45

标签: java essbase

我一直无法运行MaxL"导出数据库"使用Java API命令。我尝试使用这样的代码:(参考Essbase Java API示例com.essbase.test.ExecuteMaxl.java)

IEssMaxlSession test = olapSvr.openMaxlSession("test"); test.execute("export database sample.basic using report_file 'top.rep' to data_file 'c:/topExp.txt'"); 它失败并出现以下异常:

无法执行maxl语句。 Essbase错误(1290101):此MaxL语句需要客户端支持。目前尚不支持。

我正在运行Essbase 11.1.2.1以及相同版本的Java API。

3 个答案:

答案 0 :(得分:1)

您没有告诉Essbase在哪里可以找到报告文件。如果" top.rep"在服务器上,您必须在Maxl语句中显式引用它。因此,它将是:" ...使用服务器 report_file"。否则,如果文件托管在客户端上,则必须像输出数据文件一样指定路径(例如" c:/top.rep")

RGDS, AleMon

答案 1 :(得分:0)

根据我的经验,通过Java API运行MaxL命令不起作用,指出错误(也就是说,它可能依赖于C API中的某些本机代码,但正如它所说,它不受支持) 。为什么不在Java API中使用report running命令?

答案 2 :(得分:0)

要导出数据,为什么不使用java api方法exportData

    private static void exportData(IEssCube cube) throws EssException {
    System.out.println("Exporting data BSO");

    // As the path is relative, file will be exported to "ARBORPATH/app/Demo/Basic" on Essbase server.
    cube.exportData("Demo/Basic/exportedData.txt",IEssCube.EEssDataLevel.ALL, true);


    // As the path is absolute, file will be exported to "C:/temp/exportedData.txt" on Essbase server.
   //cube.exportData("C:/temp/exportedData.txt",IEssCube.EEssDataLevel.ALL, true);

    System.out.println("Exporting data Complete.");

}