CAP自定义处理程序内联计数

2020-08-16 01:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 对于我使用CAP的一...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

对于我使用CAP的一个项目,我将启用了Excel导出功能的列表报告放在CAP OData服务的顶部。

列表报告会自动添加$ inlinecount选项,例如:

产品?$ skip = 0&$ top = 20&$ select = Product%2cValuationArea%2cProductName%2cProductHierarchy%2cPortfolio&$ inlinecount = allpages 

我似乎找不到从自定义读取处理程序(结果=结果数组)中返回计数值的方法:

 this.on('READ','Products',async req => {
  //已删除代码
   返回结果;
 });  

不幸的是,由于我无法返回内联计数值,因此现在在导出Excel文件时始终会产生警告消息:

由于缺少计数而导致的另一件事是列表报告的标头计数(似乎将增长的次数乘以2):

此线程我发现了一个类似的问题,但是是$ count(不是$ inlinecount)。 不幸的是,inlinecount的处理方式不同(两个读取事件),而只有一个读取事件。

有人接这个吗?

最诚挚的问候,

Geert-Jan Klaps

(42.9 kB)
6条回答
Violet凡
2020-08-16 02:24 .采纳回答

Geert-Jan嗨,

您应该根据外部服务返回的结果创建一个数组,并为其分配属性$ count。

例如,我有一个简单的请求

 GET/Employees?$ count = true 

(在您使用OData v4的自定义处理程序中,稍后它将通过适配器转换为v2)

然后,自定义处理程序的结果应类似于:

 Array(3)[对象,对象,对象]
 $ count:3
 1:对象{ID:1,名称:" John",生日:1970}
 2:对象{ID:3,名称:" Mia",生日:1950年}
 3:对象{ID:2,NAME:" Mike",生日:1960} 

最诚挚的问候,

Olena

一周热门 更多>