如何在.hdbtabletype中引用用户定义的数据类型?

2020-08-18 11:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)在CDS中,可以将用户定义的类型...

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

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


在CDS中,可以将用户定义的类型引用为结构化类型中的类型。 可以在.hdbtabletype中使用用户定义的类型吗?

在hdbcds中,这可以通过以下方法实现。 帮助文档

MyStruct 是一种表类型,它使用MyString80和MyInteger作为派生类型。

命名空间Pack1.Pack2;

 上下文MyModel
 {
   输入MyInteger:Integer;
   类型MyString80:String(80);

   表类型MyStruct
   {
     aNumber:MyInteger;
     someText:字符串(80);
     otherText:MyString80;
   };

 }; 

但是,如果您想使用hdbtabletype创建类型,该如何实现呢? 我想继续使用以下示例中的派生类型,而不是在每种表类型中定义列类型。

MyModel.hdbcds

命名空间Pack1.Pack2;

 上下文MyModel
 {
   输入MyInteger:Integer;
   类型MyString80:String(80);
 }; 

MyStruct.hdbtabletype

 TYPE" Pack1.Pack2 :: MyModel.MyStruct"如表(
    " aNumber"" Pack1.Pack2 :: MyModel.MyInteger",
    " someText"" Pack1.Pack2 :: MyModel.MyString80",
    "其他文本"" Pack1.Pack2 :: MyModel.MyString80"
 )

但这不起作用。

这种方法可行吗?

谢谢

2条回答
南山jay
2020-08-18 11:54 .采纳回答

HI Ashish Singh

据我所知,您不能将Data Persistence Artifacts中带有CDS的用户定义类型与SQL DDL中的类型混合在一起。

最后,永远不会将您带有CDS的数据持久性工件中的用户定义类型创建为任何类型的数据库对象。 因此,SQL DDL工件无法引用它。

我对您的建议(价值)实际上是决定是否要对CDS或SQL DDL使用数据持久性工件,并仅使用一种方法。

最诚挚的问候

@bdel

一周热门 更多>