本文介绍了分页报表取数接口,通过WebAPI方式支持第三方获取库存报表等分页数据,简化了取数细节和二次开发。接口适用于多种报表,支持分页查询、快捷和高级过滤等,提供了接口地址、支持版本、更新记录、过滤参数说明、接口功能、注意事项和调用示例。最新版本增强了功能并修复了问题。
关键字:WEBAPI;报表API接口;库存账龄分析报表;物料收发明细报表;物料收发汇总报表;
接口说明:
分页报表取数接口提供一种供第三方通过WebAPI方式获取分页报表查询结果的能力,可以省去了解报表具体取数细节、二次开发的工作,便于对接第三方系统以及数据再加工。一般情况下,所有分页账表本接口都适用,不限于物料收发明细、物料收发汇总、库存台账、库存汇总统计、库存账龄分析、库龄分析汇总等报表,由于开发以及测试用的都是库存报表,其他模块的分页报表未经验证,如发现问题也可在下述评论区进行反馈,后续版本进行迭代更新。
接口地址:
http://{服务器地址}/k3cloud/Kingdee.K3.SCM.WebApi.ServicesStub.StockReportQueryService.GetReportData,Kingdee.K3.SCM.WebApi.ServicesStub.common.kdsvc
支持版本:
2022年3月及之后的补丁,版本号>=PT-146906 [8.0.0.202203]
版本更新记录
2022年11月补丁,版本:PT-146930 [8.1.0.20221110] 更新以下内容
1)支持设置返回字段 FieldKeys;
2)快捷过滤支持单据体类型条件设置;
3)修复已知问题;
2022年8月补丁,版本:PT-146922 [8.0.0.20220811] 更新以下内容
1)接口支持分页查询;
2)接口支持高级过滤查询;
3)修复已知BUG;
注:传了CurQueryId值后不再应用过滤条件,会从首次查询结果中取出指定分页范围内数据
更新后的过滤参数说明如下:
参数名 | 类型 | 说明 |
FORMID | String | 报表FORMID,必录 |
FSCHEMEID | String | 过滤方案ID,且不能是默认方案,必录 |
QuicklyCondition | Array | 对应于过滤框中的快捷页签以及选项页签中的条件,非必录 |
FieldName | String | 快捷过滤字段绑定属性1 |
FieldValue | String | 具体数值 |
MoreCondition | Array | 高级过滤条件,对应于过滤框中【条件】、【高级】条件,非必录 |
Left | String | 左括号(,有则填,无则留空 |
FieldName | String | 字段名,【条件】或【高级】页签中的字段标识 |
Compare | String | 比较符,如=、>、< |
FieldValue | String | 过滤值 |
Right | String | 右括号) |
Logic | String | 逻辑词,AND或者OR |
StartRow | Int | 开始行索引,从0开始,非必录 |
Limit | Int | 最大返回行数,最大10000,非必录 |
CurQueryId | String | 本次查询标识ID,在间隔时间比较短且进行分页查询时使用,根据查询返回的CurQueryId进行填写,非必录 |
FieldKeys | String | 设置返回字段,多个字段使用英文逗号分隔,为空返回当前过滤方案所有字段,非必录 |
JSON格式:
{ "FORMID": "报表FORMID,必录", "FSCHEMEID": "过滤方案ID,且不能是默认方案,必录", "QuicklyCondition": [/*对应于过滤框中的快捷页签以及选项页签中的条件,非必录*/ { "FieldName": "快捷过滤字段绑定属性1", "FieldValue": "具体数值" }, { "FieldName": "快捷过滤字段绑定属性2", "FieldValue": "具体数值" } ], "MoreCondition": [/*高级过滤条件,对应于过滤框中【条件】、【高级】条件,非必录*/ { "Left": "左括号(,有则填,无则留空", "FieldName": "字段名,【条件】或【高级】页签中的字段标识", "Compare": "比较符,如=、>、<", "FieldValue": "过滤值", "Right": "右括号)", "Logic": "逻辑词,AND或者OR" }, { "Left": "左括号(,有则填,无则留空", "FieldName": "字段名", "Compare": "比较符,如=、>、<", "FieldValue": "过滤值", "Right": "右括号)", "Logic": "逻辑词,AND或者OR" } ], "StartRow": "开始行索引,从0开始,非必录", "Limit": "最大返回行数,最大10000,非必录", "CurQueryId": "本次查询标识ID,在间隔时间比较短且进行分页查询时使用,根据查询返回的CurQueryId进行填写,非必录", "FieldKeys":"设置返回字段,多个字段使用英文逗号分隔,为空返回当前过滤方案所有字段,非必录" }
*注:版本升级后如果需要返回行数超10000,也就是不进行分页,可执行以下SQL:
INSERT INTO T_BAS_SYSTEMPROFILE( FCATEGORY ,FORGID ,FACCOUNTBOOKID ,FKEY ,FVALUE ,FACCTPOLICYID,FACCTSYSTEMID) VALUES ('STK' ,0 ,0 ,'SCMAPIREPORTPAGESETTING' ,N'1' ,0 ,0)
版本更新记录结束
接口功能:
根据传入条件获取分页报表数据。
注意事项:
1)查询结果需要进行序列化成json,数据量太大会给系统造成压力,需要注意查询时间范围;
2)报表查询本身数据比较耗时的操作,要注意调用接口频率;
接口参数:
{ "FORMID": "报表FORMID", "FSCHEMEID": "过滤方案ID", "QuicklyCondition": [ { "FieldName": "快捷过滤字段绑定属性1", "FieldValue": "具体数值" }, { "FieldName": "快捷过滤字段绑定属性2", "FieldValue": "具体数值" } ] }
(*注:过滤方案的主键值,可通过该SQL语句查询得到:
SELECT FSCHEMEID,FSCHEMENAME FROM T_BAS_FILTERSCHEME WHERE FFORMID='报表FORMID' )
调用示例(物料收发明细):
参数:
{ "parameters": ["{\"FORMID\":\"STK_StockDetailRpt\",\"FSCHEMEID\":\"5fb2412a4f22a3\", \"QuicklyCondition\":[{\"FieldName\":\"BeginMaterialId\",\"FieldValue\":\"041602\"}, {\"FieldName\":\"EndMaterialId\",\"FieldValue\":\"041602\"}, {\"FieldName\":\"BeginDate\",\"FieldValue\":\"2014-08-01\"}, {\"FieldName\":\"EndDate\",\"FieldValue\":\"2020-12-01\"}]}"] }
推荐阅读