CDS实体的生成字段名称在本地和HDB上不同

2020-08-27 08:09发布

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

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

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


嗨,

我正在使用CAP(Node.js)构建应用程序,该应用程序还利用了一些自定义处理程序。

在这些处理程序中,由于大小写行为不同,我在处理从CDS视图中选择的实体时遇到问题。 遵循建议,已创建所有属性,从小写字母开始,然后根据需要创建骆驼,例如e。 G。 " parentNode"。

想象一下使用实体HierarchyNodes和分配给一个层次结构节点之一的Product建模的层次结构。

为了阅读更多层次结构信息,实现了自定义处理程序。

虽然这在SQLite DB上可以很好地在本地工作,但在HDB上生成的名称是不同的(全部大写)。

下面的代码展示了实现的逻辑。

 const products =等待tx.run(SELECT()。from(Products).where({ID:productKey}));
  如果(products.length = 1)
    const nodeIds =等待tx.run(SELECT('​​ID')。from(HierarchyNodes).where({ID:products [0] .hierarchyNode_ID})); 

在HDB产品[0] .hierarchyNode_ID上未定义,因为只有属性产品[0] .HIERARCHYNODE_ID。

在我看来,这是有问题的,因为两种环境的反应都应相似。

我暂时通过在选择函数中说明列名来解决这个问题,例如 SELECT('​​hierarchyNode_ID')。 这将导致对象在SQLLite和HDB上具有属性hierarchicalNode_ID。

如果我做错了什么或者这是一个错误,请告诉我。

感谢
Arne

3条回答
xfwsx85
2020-08-27 08:40

嗨,塞缪尔,

我创建了一个简单的应用程序来重现报告的问题,您可以在此处获取它: https://github.com/ahusemann/cds_issue

复制步骤记录在 README.md 中。 让我知道您是否在复制行为方面遇到问题。

最好的问候

Arne

一周热门 更多>