EnOS 报表工具 API 概述


EnOS报表工具是助力企业或组织实现零代码制作报表和管理日常报表任务的一站式、轻量级工具。报表工具提供简单的报表设计和管理体验,降低报表交付成本,提高报表管理效率。


通过报表工具API,应用开发人员可以进行报表模板的新建、更新、查询和删除操作,同时支持查询报表模板参数,并能够以多种格式生成报表,以满足跨领域、跨场景、跨部门的业务需求。关于报表工具 API 的完整接口列表及功能说明,参见 API 列表

前提条件


确保已获取服务账号,且服务账号拥有调用该 API 的权限。更多信息,参见 获取 API 调用权限

API 列表


你可以通过以下表格了解可以调用报表工具服务 API 执行哪些操作,每项操作对应的 URL,以及是否适用于 EnOS Cloud 和 EnOS Edge。


操作名称

描述

URL

适用于 EnOS Cloud

适用于 EnOS Edge

Create Report Template

新建报表模板

/report-design-service/v1.0/report-file?action=create

×

Update Report Template

更新报表模板

/report-design-service/v1.0/report-file?action=update

×

Query Report Template

查询单个报表模板

/report-design-service/v1.0/report-file?action=query

×

Query Series Report Template

查询一系列报表模板

/report-design-service/v1.0/report-file/list?action=query

×

Delete Report Template

删除报表模板

/report-design-service/v1.0/report-file?action=delete

×

Query Template Parameter

查询报表模板参数

/report-design-service/v1.0/report-file/arguments?action=query

×

Generate Report

生成报表

/report-runtime-service/v1.0/report?action=create

×

API 请求


报表工具 API 请求包含请求 URI 和请求消息头两部分。

请求 URI


METHOD https://{api-gateway}/{service-name}/{version}/{endpoint-url}?{action=<action>&{ }}

其中:

  • METHOD:请求方法。例如:GETPOST

  • api-gateway:API 服务的网关地址。例如:app-portal-xxx.envisioniot.com。可通过登入 EnOS 应用门户 > 开发者控制台,点击右上角的 帮助 > 环境信息API 网关 中获取。

  • service-name:API 服务名称。例如:report-design-servicereport-runtime-service

  • version:API 版本。目前支持 v1.0

  • endpoint-url:资源和对资源的操作。例如:report-filepreview

  • action=<action>&:查询参数,如果有多个参数,使用 & 作为分隔符。例如:action=query&orgId=yourOrgId

请求参数 (Body)


每个 API 接口中请求消息体的参数有所不同。以下表格介绍用来指定报表模板的请求参数。


名称

数据类型

描述

reportKey

String

报表模板的密钥(key)。

reportId

String

报表模板的 ID。

originalId

String

报表模板的源 ID。


在一个请求中同时使用以上参数时,参数的优先级如下:

reportId (最高) > reportKey > originalId (最低)。

请求示例


#requestURI:
https://{api-gateway}/report-design-service/v1.0/report-file?orgId=yourOrgId&action=update
#requestbody:
{
    "file": "yourFileLocation",
    "reportKey": "yourKey",
    "category": "R",
    "type": "cus"
    "originalId":"originalReportId"
}

API 返回结果


API 返回 JSON 结构体,格式如下:


{
    "data": {data},
    "success": {true/false}
}

返回参数


对返回参数的详细说明如下:


名称

数据类型

描述

msg

String

对状态码的解释和说明。成功为 Success。若 API 请求失败,返回具体错误信息。

code

Integer

API 请求状态码,0 表示请求成功。有关状态码含义,参见 返回码

data

Array 或 Object

API 响应返回结果集,数据类型包括:基本数据类型、复杂类型或数组。

success

String

报表工具 API 返回 truefalse 表明 API 请求是否成功。

返回码


对所有返回码的详细说明如下:


Code

Message

描述

0

Success

请求成功。

93001

Request parameters are non-compliance. Illegal parameters are { }

请求中包含非法参数。

93002

Request body is non-compliance. Illegal request body is { }

请求中包含非法消息体。

93008

Error occurred when downloading files from the remote storage. File path is { }

无法从 blob 或 S3 中下载文件。

93009

Error occurred when parsing report arguments.

无法解析参数。

93010

No available report or no permission to query reports. Report file IDs are :/query operation error.condition:{ }

查询报表失败。

93012

Error occurred when generating reports. Download URL is { }, type is { }, category is { }

生成报表失败。

93013

Found more than one rptdesign files in zip folder. Files are { }

ZIP 文件中包含多个 rptdesign 文件。

93014

No rptdesign found: neither a single file nor a zip file is uploaded.

无法找到合法的 rptdesign 文件。

93015

zip file is broken

ZIP 文件已损坏。

93016

rptdesign file is not compliance: the mime type must be XML while the current mime type is { }

检测到非法的 rptdesign 文件。

93017

Error occurred when processing report parameters, msg : { }/rptdesign file contains sensitive string

生成报表过程中检测到不正确的报表参数。

93018

Render report exception, report file name : { } , render type : {}, locale { }

生成报表过程中渲染报表失败。

93028

Report key is in use: report Key { } , type { } , category { }

报表模板密钥已存在。

93029

No available records found from database, query criteria are { } , we expected at least { }

当前条件下无查询结果。

93030

Report key { } is not consistent with the root key

当前报表模板与源报表模板的密钥不一致。

93070

Error occurred when uploading files to remote storage. File path is { }

无法将文件上传至 blob 或 S3。

93071

Error occurred when uploading files, type : { } , category : { } , file name : { }

上传文件失败。

93072

Failed to initialize report context

报表初始化失败。

93074

Could not find the authority rptdesign, condition { }, orgId{ }

无法找到符合条件的 rptdesign 文件。

返回示例


返回成功示例。


{
    "msg": "Success",
    "code": 0,
    "data": {
        "reportId": "yourReportId",
        "fileName": "reportFileName.rptdesign"
    },
    "success": true
}


返回失败示例。


{
    "msg": "Report key yourEnteredKey is not consistent with the root key ",
    "code": 93030,
    "success": false
}