云应用程序编程(CAPM)虚拟字段数据库

2020-08-30 01:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 如果在cds模型...

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

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


大家好,

如果在cds模型中将实体的字段标记为虚拟,则不会在相应的数据库表上创建任何字段。 到目前为止,一切都很好。

如果现在使用GET请求在虚拟字段上使用过滤器调用此实体,则会返回以下错误:

 <错误xmlns =" http://docs.oasis-open.org/odata/ns/metadata">
  500 
 <消息>
 无法在以下行设置参数:1.参数必须是字符串
 
 
 

在调试过程中,我还遇到了以下异常文本:(属性VHierarchyNodeLevel被标记为虚拟)

选择a.modifiedAt AS" a_modifiedAt",a.createdAt AS" a_createdAt",a.createdBy AS" a_createdBy",a.modifiedBy AS" a_modifiedBy",a.VId AS" a_VId",a.VName AS" a_VName"  ",a.VHierarchyNodeLevel AS" a_VHierarchyNodeLevel"来自Service_PlanningUnits,其中a.VHierarchyNodeLevel <=?  LIMIT 128 OFFSET 0 

是否有可能将字段标记为虚拟字段,但是如果请求中存在针对此查询的过滤器,则会将虚拟字段添加到数据库查询的WHERE子句中?

在CDS实体之后,将虚拟字段填充在on.after(" READ",...)。

实体PlanningUnit:托管{
   键VId:UUID;
       VName:字符串;
       virtual VHierarchyNodeLevel:整数;
 }
 
2条回答
黑丝骑士
2020-08-30 01:59 .采纳回答

亲爱的西蒙·佩斯托弗,

非常感谢您为我们提供了详细的分析。 实际上,虚拟字段一定不能出现在SQL语句的WHERE子句中。

我们将研究一种修复程序,以防止将来发生这种情况。

但是,强烈建议不要对虚拟字段应用过滤条件,因为这样会大大降低性能(必须从数据库中提取所有项目,对于每个条目,都必须计算虚拟字段,然后才计算结果集 被过滤)。

再次感谢您!

David

一周热门 更多>