点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
在我们的项目中,我们尝试访问现有的HANA DB-具有输入参数的"计算"视图,并希望将其公开为OData服务。 这会触发错误:
" ZTEST:ZTEST1"的参数不足,未指定的参数" IP_1" [1310483]
第二种方法-试图在同一视图上创建CDS SQL Select,但是不确定如何将CDS参数链接到HANA输入参数:
使用参数IP_1_CDS查看CV_TEST_VIEW:日期 从ZTEST1中选择{ COL1, COL2 }其中'PLACEHOLDER'=('$$ IP_1 $$',:IP_1_CDS));
第三种方法-试图在同一目录上创建HANA表函数和CDS SQL Select,但是仍然失败。
使用参数IP_1_CDS查看CV_TEST_VIEW2:日期 从ZTEST_TABLE_FN_1(:IP_1_CDS)中选择{ COL1, COL2 };
当 HANA计算视图没有任何输入参数时,上述所有方法都可以正常工作。
是否可以通过传递输入参数来访问此类视图? 解决该情况的任何帮助将不胜感激。
请注意,HANA计算视图包含复杂的逻辑,在CDS视图中不容易重新实现。
此致
Chathia。
为了所有人的利益发布有效的解决方案。 (感谢 Elena Oresharova 的输入。)
1。 根据需要定义同义词(在我们的方案中,需要跨容器访问)
2。 使用相同的签名和必填字段(如下所示)定义"计算视图"
data-model.cds
3。 如下定义服务:
cat-service.cds
4。 以上概念应该可以理想地工作。 但是,在CDS编译器中发现一个错误,SAP暂时为此提供了一种解决方法。 在package.json中(在srv文件夹中)添加以下行-本地化选项不起作用(我们现在不使用它)
package.json(在srv文件夹中)
此致
Chathia。
可能的解决方案是尝试在CAP中为现有视图声明所谓的门面实体,并用@ cds.persistence.exists注释进行注释。
下面是一个示例-如果我们已有视图:
在cds模型中,此视图的外观实体将如下所示(它应与现有数据库对象的签名匹配):
一周热门 更多>