商业智能
版本: 1.0 | 发布日期: 3/9/2019
# 获取 FORMAT 列表
获取 EBI 的format列表
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/ebiWidget/reportList?formatType=ebiFormat")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
GET http://[server]/jsf/rfws/ebiWidget/reportList?formatType=[formatType]
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
needCount | boolean (Query) | 可选. 是否返回结果行总数(用于分页) |
searchText | string (Query) | 可选. 用户的搜索输入(用于快速搜索) |
formatType | string (Query) | 可选. 特定格式类型(有三种格式类型:ebiFormat/chart/pivot,aiM18 APP 不使用 pivot)。如果此值为空,API 将获取所有 ebiFormat/chart 格式。 |
menuCode | string (Query) | 可选. EBI 的菜单编号(如果你已得到菜单编号) |
offset | int (Query) | 可选. 结果的第一个返回行(用于分页) |
rows | int (Query) | 可选. 结果中返回行的总计数(用于分页) |
# 结果
类型 | 位置(error_id) | 说明 |
---|---|---|
success | Header | 结果的总行数(仅在 needCount = true 时返回) |
success | Body | JSON 格式的SqlTable,包含 4 列:id、code、desc、formatType |
# 报告信息
获取所选格式的报告信息(并准备报告数据)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/ebiWidget/reportDto/127")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
API 会以 JSON 格式返回 ReportDto,其结构如下:
{
"formatId": 1, //formatId
"formatType": "chart", //formatType
"description": "Employee List Chart", //format description.
"contextId": 36518, //Current Report Context ID
"reportTitle": "Report Title", //Report Title
"table": {TableDto}, //Table Report Dto
"widgets":[{WidgetDto}, {WidgetDto}, …] // Array, all WidgetDto in this report
}
TableDto 的 JSON 结构如下:
{
"dataSize": 2345, //All Table Data Size, INT
"group": true, //IF table has group setting and group data
[{columnDto}, {columnDto}, …], //Array, list all columns
}
ColumnDto 的 JSON 结构如下:
{
"fieldType": "system", //value=system/udf/udfFormula. The field Type.
"dataType": "INT", //value=Auto, NCHAR, NVARCHAR, CLOB, INT,BIGINT, DECIMAL,BOOLEAN,REAL, DOUBLE, TIME, DATE, TIMESTAMP, BLOB, BINARY, OTHER
"fieldType": "system", //value=system/udf/udfFormula. The field Type.
"fieldType": "system", //value=system/udf/udfFormula. The field Type.
"fieldType": "system", //value=system/udf/udfFormula. The field Type.
[{columnDto}, {columnDto}, …], //Array, list all columns
}
WidgetDto 的 JSON 结构如下:
{
"key": "12346-xudtds-23xuct", //The key of the chart
"chartType": "pie", //chart Type
"rightfull": true, //If the user has the visit right of the chart
}
# HTTP 请求
GET http://[server]/jsf/rfws/ebiWidget/ebiWidget/reportDto/[formatId]
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
formatId | long (Path) | 必填. 特定格式 ID |
beId | long (Query) | 可选. 特定企业法人 ID |
source | string (Query) | 可选. 当前访问的来源(仅用于审核) |
# 结果
类型 | 位置(error_id) | 说明 |
---|---|---|
success | Body | JSON格式的ReportDto |
# 报告数据
获取表格报告数据
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/ebiWidget/loadReport?formatId=127&rows=10")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
GET http://[server]/jsf/rfws/ebiWidget/loadReport?formatId=[formatId]&rows=[rows]
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
contextId | long (Query) | 可选. 报告的contextId(如果该值为空,系统将重建上下文并返回数据) |
formatId | long (Query) | 必填. 格式 ID |
beId | long (Query) | 可选. 企业法人ID, 仅当 contextId 为空时才需要 |
source | string (Query) | 可选. 仅当 contextId 为空时才需要 |
offset | int (Query) | 可选. 结果的第一个返回行(用于分页) |
rows | int (Query) | 可选. 结果返回行的总计数(用于分页) |
# 结果
类型 | 位置(error_id) | 说明 |
---|---|---|
success | Body | JSON格式的SqlTable |
# 图表插件数据
获取图表插件数据
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/ebiWidget/loadChart?formatId=126")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
GET http://[server]/jsf/rfws/ebiWidget/loadChart?formatId=[formatId]"
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
contextId | long (Query) | 可选. 报告的contextId(如果该值为空,系统将重建上下文并返回数据) |
chartUnit | string (Query) | 可选. 报告的图表键(ebiFormat 中有许多插件。charUnit 用于指定插件。如果 charUnit 为空,系统将获取第一个插件作为结果) |
formatId | long (Query) | 必填. 格式 ID |
beId | long (Query) | 可选. 企业法人ID, 仅当 contextId 为空时才需要 |
source | string (Query) | 可选. 仅当 contextId 为空时才需要 |
# 结果
类型 | 位置(error_id) | 说明 |
---|---|---|
success | Body | 可以初始化Echart的JSON格式EChart |
# 让报告数据活跃起来
让报告数据活跃起来 (少于每 4 分钟调用一次该Web服务。EBI 模块每 3 分钟调用一次)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/q/combSet/keepOpen")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
GET http://[server]/jsf/rfws/q/combSet/keepOpen
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
contextId | long (Query) | 可选. 报告的contextId |
# 关闭报告数据
关闭报告数据
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/q/combSet/closeTask")
.post()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
POST http://[server]/jsf/rfws/q/combSet/closeTask
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
contextId | long (Query) | 可选. 报告的 contextId |
# 加载查询数据
加载查询数据
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/ebiWidget/queryData/QuerySet/348")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
GET http://[server]/jsf/rfws/ebiWidget/queryData/[queryType]/[queryId]
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
queryType | string (Path) | 必填. 查询类型 |
queryId | long (Path) | 必填. 查询ID |
beId | long[] (Query) | 可选. 查询中企业法人ID |
option | string (Query) | 可选. EBI 中的报告选项,[查询(SQL)] 中输入参数的参数类型不是 模块条件 的行都是允许的参数。JSON 格式的 FilterGroupDto,这是一个简单示例:{"mode":"and","criterias":[{"field":"lastModifyDateFilter","operator":"EQUAL","value":"2023-01-01"},{"field":"createUserFilter","operator":"IN","value":["1", "2"]},{"field":"createDateFilter","operator":"LARGEROREQUAL","value":"2023-01-01"}]} 。mode 接受以下值之一:and、or。 field 是 [查询(SQL)] 中输入参数的参数编号,operator 接受下列值之一:EQUAL、UNEQUAL、LARGERTHAN、LESSTHAN、LARGEROREQUAL、LESSOREQUAL、CONTAINS、DOSENOTCONTAIN、IN、NOTIN、STARTWITH、NOTSTARTWITH、ENDWITH、NOTENDWITH。 |
lookupFilter | string (Query) | 可选. EBI 中的 Turbo 筛选器, [查询(SQL)] 中输入参数的参数类型是 模块条件 的行都是允许的参数,参数名称为对应的'模块查询类型'。JSON格式的 Map<String, FilterGroupDto>,这是一个简单示例:{"oldso": {"mode": "and","criterias": [{"field": "code","operator": "EQUAL","value": "SO001"}]},"pro": {"mode": "and","criterias": [{"field": "code","operator": "EQUAL","value": "PRO1"}]}} 。 |
turboFilter | string (Query) | 可选. EBI 中的 Turbo 筛选器, [查询(SQL)] 中输入参数的参数类型是 模块条件 的行都是允许的参数,参数名称为对应的'参数编号'。JSON格式的 Map<String, FilterGroupDto>,这是一个简单示例:{"soFilter": {"mode": "and","criterias": [{"field": "code","operator": "EQUAL","value": "SO001"}]},"proFilter": {"mode": "and","criterias": [{"field": "code","operator": "EQUAL","value": "PRO1"}]}} 。 |
datafilter | string (Query) | 可选. EBI 中的 Normal 筛选器, JSON格式的 FilterGroupDto,这是一个简单示例: {"mode": "and","criterias": [{"field": "CUS_A_code","operator": "EQUAL","value": "CUS01"}]} , field 的值可以在EBI左面板悬停时看到。 |
column | string[] (Query) | 可选. 指定读取的列。如果此值为空,结果将包含所有列。 |
offset | int (Query) | 可选. 结果的第一返回行 |
rows | int (Query) | 可选. 结果中返回行的总数 |
# 结果
类型 | 位置(error_id) | 说明 |
---|---|---|
success | Body | JSON格式的SqlTable |
# 加载报告 PDF 文件
加载报告 PDF 文件
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/ebiExport/loadReportAsPDF?ebiFormatId=127")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
GET http://[server]/jsf/rfws/ebiExport/loadReportAsPDF?ebiFormatId=[ebiFormatId]
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
ebiFormatId | long (Query) | 必填. EBI 格式 ID |
fileName | String (Query) | 可选. 生成文件的名称(不需要文件后缀) |
# 结果
类型 | 位置(error_id) | 说明 |
---|---|---|
success | Body | 文件的二进制流 |
# 加载报告 Excel 文件
加载报告 Excel 文件
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://127.0.0.1:8080/jsf/rfws/ebiExport/loadReportAsExcel?ebiFormatId=127")
.get()
.addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
.addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
# HTTP 请求
GET http://[server]/jsf/rfws/ebiExport/loadReportAsExcel?ebiFormatId=[ebiFormatId]
# 参数
名字 | 类型 | 说明 |
---|---|---|
authorization | string (Header) | 必填. 通过 OAuth2 获取的访问令牌 |
client_id | string (Header) | 必填. 在[授权应用列表]中注册时,由 aiM18 生成 |
ebiFormatId | long (Query) | 必填. EBI 格式 ID |
fileName | String (Query) | 可选. 生成文件的名称(不需要文件后缀) |
# 结果
类型 | 位置(error_id) | 说明 |
---|---|---|
success | Body | 文件的二进制流 |