BOS运行时-WebAPI-单据查询接口分页取数
星空提供了标准的单据查询接口,由于单据的数据量可能达到百万级别以上,不能一次性取数,需要通过分批取数。
分批取数依赖与设置的或者默认的排序字段,根据对应字段生成序号列,然后分页取数。由于webapi每次单据查询接口进行查询时,都是实时根据排序字段进行分页。在数据量大的情况下,查到后面分页时,性能会很差。
处理方案:
不依赖于默认"StartRow": 0, "Limit": 2000参数进行分页取数,而是根据单据头或者单据体的主键进行分页取数。
星空单据的主键默认时十万开始,查询到当前数据主键最大值后,根据情况分批取数即可。
以下演示这个过程
1.按照单据头主键分批取数
对应JSON
{ "FormId": "PUR_PurchaseOrder", "FieldKeys": "fid", "OrderString": "fid desc", "TopRowCount": 0, "StartRow": 0, "Limit": 1, "SubSystemId": "" }
分页取数
对应JSON
{ "FormId": "PUR_PurchaseOrder", "FieldKeys": "fbillno,fmaterialid", "FilterString": "FID>140000 AND FID<140284", "OrderString": "", "SubSystemId": "" }
2.按照单据体主键分批取数
查询单据体主键的最大值,
FPOOrderEntry_FEntryID
生成的规则是,单据体的表示+下划线+单据体主键(需要根据不同的单据做调整)
对应JSON
{ "FormId": "PUR_PurchaseOrder", "FieldKeys": "FPOOrderEntry_FEntryID", "OrderString": "FPOOrderEntry_FEntryID desc", "TopRowCount": 0, "StartRow": 0, "Limit": 1, "SubSystemId": "" }
分批取数:
对应JSON
{ "FormId": "PUR_PurchaseOrder", "FieldKeys": "fbillno,fmaterialid", "FilterString": "FPOOrderEntry_FEntryID>104000 and FPOOrderEntry_FEntryID<=104320 ", "OrderString": "", "SubSystemId": "" }
BOS运行时-WebAPI-单据查询接口分页取数
星空提供了标准的单据查询接口,由于单据的数据量可能达到百万级别以上,不能一次性取数,需要通过分批取数。分批取数依赖与设置的或者默认...
点击下载文档
本文2024-09-16 18:18:05发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-21255.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章