需要可嵌入报告服务中的报告规范动态指向不同的 table 名称

Need the report specification in the Embeddable Reporting service to dynamically point to a different table name

我正在使用 Bluemix 的嵌入式报告服务。我想动态更改报告定义的 SQL 查询中的 SQL 文本,以便从引用的 table 生成报告。可以使用 https://erservice-impl.ng.bluemix.net:443/ers/v1/definitions//specificationAPI 更改报告规范。但是,如何更改 SQL 文本?

以下是涉及的步骤:

  1. 在您最喜欢的创作工具中根据示例创作报告 table。
  2. 通过单击工具 > 将报告复制到剪贴板获取报告规范。
  3. 在报告规范中找到 SQL 字符串并将其更改为您可以轻松 search/replace 的标记。例如:Select * from %%DATATABLE%%
  4. 将此模板保存在文件中或应用程序中的字符串变量中。
  5. Search/replace 字符串 %%DATATABLE%% 和你想要的 table。
  6. 执行报告:

    一个。 POST 到 /ers/v1/packages/(package-id)/reports 内容类型 application/xml 和规范作为正文。响应将包含新报告的位置。

    b。 GET /ers/v1/reports/(report-id)/html 以在 HTML.

  7. 中呈现报告

这里有一个 curl 的例子:

  1. 使用您的 cloudant/Mongo URL 和可嵌入报告服务凭据连接到该服务。例如: curl --insecure -i -X POST --cookie-jar newcookies.txt -H "Content-Type: application/json" -d '{"bundleUri":"https:/(repository-uri)/"}' https://(ers-userid):(ers-password)@erservice-impl.ng.bluemix.net/ers/v1/connection
  2. 根据包含您的 database.For 示例的 packageId 的规范创建一个 运行 实例: curl --insecure -i -X POST -b newcookies.txt -H "Content-Type: application/xml" -d '(report-spec-goes-here)' https://erservice-impl.ng.bluemix.net/ers/v1/packages/(package-id)/reports

这是一个示例响应:

{   
   ...   
   "_links": {
     "formats": [
       {
         "href": "/ers/v1/reports/JwVd3JkeR3SFUkLlOi1bWw/html",
         "disposition": "paged",
         "mimeType": "text/html"
       },
       ... other formats ...
      ]   
     },   
     "_bundleID": "JwVd3JkeR3SFUkLlOi1bWw"
}

您现在可以 运行 response._links.formats.href

运行 HTML 中的实例。例如: curl --insecure -i -X GET -b newcookies.txt https://erservice-impl.ng.bluemix.net:443/ers/v1/reports/JwVd3JkeR3SFUkLlOi1bWw/html

找回 HTML。