CAP-过滤器不适用于扩展实体

2020-08-17 15:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我有一个用例,其...

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

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


大家好,

我有一个用例,其中我在表的顶部创建了一个视图以计算字段。 在同一表中,我将创建到此表顶部视图的关联,以便可以导航到此计算字段。 除非我尝试扩展和过滤此关联,否则此方法工作正常。

我模拟了问题的简化版本,即数据模型:

Authors是实体,而AuthorStatus是此表顶部的视图。 Authors表中的AuthorStatus是表和视图之间的关联:

命名空间sap.capire.bookshop;
 实体作者{
   密钥ID:整数;
       名称:字符串(111);
       AuthorStatus:AuthorStatus.ID = ID上与AuthorStatus的关联;
 };
 实体AuthorStatus从供应者身份中选择{
     ID,
     测试状态:String(20)
 };
 

两者都暴露在服务层中:

使用" ../db/schema"中的{sap.capire.bookshop作为我的};
 服务AdminService @(__ requires:'authenticated-user'){
   实体Authors作为my.Authors的投影;
   实体AuthorStatus作为对my.AuthorStatus的投影;
 }
 

当我尝试通过扩展数据并过滤作者姓名进行测试时,一切正常:

http://localhost:4004/admin/Authors?$ expand = AuthorStatus&$ filter = name eq'Wouter'

当我尝试过滤关联中的"状态"字段时,出现以下错误:

网址:http://localhost:4004/admin/Authors?$ expand = AuthorStatus&$ filter = AuthorStatus/status eq'test'

错误:

启用调试并查看生成的查询时,我注意到它生成了错误的SQL:

从AdminService_Authors中选择a.ID AS" a_ID",a.name AS" a_name",b.ID AS" b_ID",b.status AS" b_status"。  ID)WHERE a.AuthorStatus.status =
 ?  LIMIT 1000 ['test']
 

我猜它应该在表" b"的何处使用"状态"?

这可能是错误,还是我做了不允许的事情?

提前谢谢!

K,伍特

(16.4 kB)