在XS Advanced中在hdbprocedure中使用表类型

2020-09-22 02:08发布

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

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


嗨,

我现在尝试使用不同的版本,以在HANA2的XSA项目中的过程中使用表类型,并且总是以某种方式获得错误消息:

 HDI:8201003数据库错误411::无效的表类型:找不到表类型OPTNET_HDI_DB_1.OPTNET.db.cds :: calculation.results.TT_R_MODEL_IN:第2行第13列(在pos 58)

表类型在CDS文件中定义为

类型TT_R_MODEL_IN {
 CALC_GROUP:计算.CALC_GROUP;
 年龄:小数(34,0);
 RATE:DecimalFloat;
 LENGTH_CUMULATED:小数(18,2);
 }; 

我非常确定我正在使用名称空间和上下文,因为在此上下文中还有一个实体,我可以访问它。

该过程已被删除,现在看起来像:

过程" OPTNET.db.prc :: r_model"(
 IN数据集整数
 OUT结果" OPTNET.db.cds :: calculation.results.TT_R_MODEL_OUT"
 )
    语言SQLSCRIPT
    SQL安全调用程序
 如
 开始

 END 

我确实在.hdtabletype文件中使用tabletype成功。 但是在文档中使用了CDS文件..我确实不建议使用.hdtabletype?

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

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


嗨,

我现在尝试使用不同的版本,以在HANA2的XSA项目中的过程中使用表类型,并且总是以某种方式获得错误消息:

 HDI:8201003数据库错误411::无效的表类型:找不到表类型OPTNET_HDI_DB_1.OPTNET.db.cds :: calculation.results.TT_R_MODEL_IN:第2行第13列(在pos 58)

表类型在CDS文件中定义为

类型TT_R_MODEL_IN {
 CALC_GROUP:计算.CALC_GROUP;
 年龄:小数(34,0);
 RATE:DecimalFloat;
 LENGTH_CUMULATED:小数(18,2);
 }; 

我非常确定我正在使用名称空间和上下文,因为在此上下文中还有一个实体,我可以访问它。

该过程已被删除,现在看起来像:

过程" OPTNET.db.prc :: r_model"(
 IN数据集整数
 OUT结果" OPTNET.db.cds :: calculation.results.TT_R_MODEL_OUT"
 )
    语言SQLSCRIPT
    SQL安全调用程序
 如
 开始

 END 

我确实在.hdtabletype文件中使用tabletype成功。 但是在文档中使用了CDS文件..我确实不建议使用.hdtabletype?

付费偷看设置
发送
4条回答
小c菟菟
1楼 · 2020-09-22 02:14.采纳回答
CD中的

类型不再在数据库中创建实际的表类型。 它们仅创建只能在CDS中使用的伪类型。 如果您还想生成数据库表类型,则需要使用语法表类型,而不仅仅是类型。 这使您可以控制是否要真正生成一个TABLE TYPE。 在此处查看示例:

https: //github.com/SAP/com.sap.openSAP.hana5.example/blob/hana2_sps03/core_db/src/data/Procedures.hdbcds

Alawn_Xu
2楼-- · 2020-09-22 02:15

感谢,

这正是我所缺少的信息!

骆驼绵羊
3楼-- · 2020-09-22 02:26

我假设您的XSA项目是OPTNET,hdbmodule是db,然后将存储过程存储在文件夹prc中。

这就是为什么您的sp为PROCEDURE" OPTNET.db.prc :: r_model"

所以类似地,您必须将表类型限定为

类型" OPTNET.db.prc :: TT_R_MODEL_IN" {
 CALC_GROUP:计算.CALC_GROUP;
 年龄:小数(34,0);
 RATE:DecimalFloat;
 LENGTH_CUMULATED:小数(18,2);}; 

注意:我假设您也将.hdbtabletype文件也放在了prc文件夹中

hongfeng1314
4楼-- · 2020-09-22 02:33

知道了,但我没有答案,但是我面临着另一个问题,我有 在经典模式中用表类型定义了一个存储过程,并赋予角色/创建的服务等执行权限。 但我似乎无法将sp用作hdi容器中的同义词。 您是否有机会完成此方案

一周热门 更多>