【问题标题】:Birt with restful APIs带有宁静 API 的 Birt
【发布时间】:2018-04-09 03:52:40
【问题描述】:

我正在为一个 PHP 项目开发 BIRT 报告。我可以通过使用 JDBC 数据源直接连接到数据库来轻松开发报告。但是,某些数据来自 restful api,我无法从这些 api 端点创建数据源。

Birt 可以选择从 Web 服务创建数据源,但这似乎只接受 SOAP API。我想知道是否有人可以向我展示如何从 REST API 创建 birt 数据源。我通读了谷歌提供的所有搜索结果。有些人建议使用 POJO 数据源,而有些人则建议使用需要 Java 知识并且 PHP 程序员很难破解的脚本化数据源。大多数链接重定向到 devshare,它现在指向打开的文本并且内容不再存在。我尝试了以下所有建议。

使用 Webservices 数据源:它需要 wsdl 文件的位置,而 REST API 不存在。它仅带有 SOAP API。如果有替代方案就好了。

尝试过 POJO 数据源和脚本数据源:但作为 PHP 开发人员无法获得好的结果,因为没有分步指南来做到这一点。

因为 REST 在今天非常流行,我想知道是否有任何直接的方法可以做到这一点,或者是否有人可以帮助使用 Java 或 Javascript 程序为 PHP 负责人编写脚本数据源。在过去的 15 天里,我一直在尝试这个,迫切需要一些帮助。

【问题讨论】:

    标签: javascript rest birt


    【解决方案1】:

    以脚本数据源结束。

    使用 open() 方法创建脚本数据源,如下所示:

    logger = java.util.logging.Logger.getLogger("birt.report.logger");
    
    importPackage(Packages.java.io);
    importPackage(Packages.java.net);
    
    //if you have a parameter
    var param= params["industryname"].value;
    
    var inStream = new 
    URL("http://yourapi/endpoint/" + param).openStream();
    var inStreamReader = new InputStreamReader(inStream);
    var bufferedReader = new BufferedReader(inStreamReader);
    var line;
    var result = "";
    
    while ((line = bufferedReader.readLine()) != null)
    result += line;
    inStream.close();
    
    var json = JSON.parse(result);
    vars["HTMLJSON"] = json;
    
    logger.warning (result);
    //logger.warning (json);
    

    然后使用以下方法创建数据集:

    打开()

    recNum=0;
    

    获取()

    len = vars["HTMLJSON"].length;
    
    if (recNum >= len)
        return false;
    
    row["name"] = vars["HTMLJSON"][recNum].name;
    row["id"] = vars["HTMLJSON"][recNum].id;
    row["active"] = vars["HTMLJSON"][recNum].active;
    
    recNum++;
    
    return true;
    

    您可能需要将 Apache Commons IO 包含在您的 scriptlib 文件夹中。

    【讨论】:

    • 我们如何在 Birt 中执行或调试这个?
    猜你喜欢
    • 1970-01-01
    • 2011-07-21
    • 2014-02-24
    • 2018-12-30
    • 2015-07-19
    • 1970-01-01
    • 2018-04-21
    • 2013-12-07
    • 2016-12-17
    相关资源
    最近更新 更多