SAP CAP:如何创建唯一字段?

2020-08-21 06:45发布

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

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


大家好,

我有一个问题,我需要在SAP Cloud Platform的业务应用程序中的带有CDS的实体中创建唯一字段。 有办法吗?

示例:

//文件:db/data-model.cds

 命名空间my.bookshop;
 使用来自'@ sap/cds/common'的{cuid,managed};

 实体书籍:cuid,托管{
   title:本地化的String;
   作者:作者协会;
   stock:整数
   isbn:字符串(13);
 }
 实体作者:cuid,托管{
   名称:字符串;
   书籍:与许多书籍有关的书籍。author= $ self;
 } 

我需要字段 ISBN 唯一,如何实现?

非常感谢

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

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


大家好,

我有一个问题,我需要在SAP Cloud Platform的业务应用程序中的带有CDS的实体中创建唯一字段。 有办法吗?

示例:

//文件:db/data-model.cds

 命名空间my.bookshop;
 使用来自'@ sap/cds/common'的{cuid,managed};

 实体书籍:cuid,托管{
   title:本地化的String;
   作者:作者协会;
   stock:整数
   isbn:字符串(13);
 }
 实体作者:cuid,托管{
   名称:字符串;
   书籍:与许多书籍有关的书籍。author= $ self;
 } 

我需要字段 ISBN 唯一,如何实现?

非常感谢

付费偷看设置
发送
7条回答
My梦
1楼 · 2020-08-21 07:22.采纳回答

您将需要在service.js文件中进行此检查。

 srv.before('CREATE','Books',async(req)=> {

    //获取请求的交易
     const tx = cds.transaction(req);
    //检查是否还有另一本书具有相同的ISBN
     let books = await tx.read('my.bookshop.Books')。where({isbn:req.data.isbn});

     如果(books.length> 0)
       req.error(410,'ISBN必须是唯一的');

   });

 
哎,真难
2楼-- · 2020-08-21 07:18

将其定义为键是什么?

3楼-- · 2020-08-21 07:19

嗨,路易斯,

此刻,您需要定义一个检查唯一性的自定义处理程序。 将来我们可能会引入"唯一"注释。

最诚挚的问候,
大卫

大简至美
4楼-- · 2020-08-21 07:03

感谢格雷戈尔,

我必须创建一个自定义处理程序才能实现我想要的功能。

何必丶何苦呢
5楼-- · 2020-08-21 07:20

嗨,路易斯,

您可以定义原生SAP HANA 对象并在CAP中使用它们。

我们使用它来使用.hdbprocedure文件定义过程。
还应该可以使用.hdbindex文件创建唯一索引。

最诚挚的问候
西蒙

宇峰Kouji
6楼-- · 2020-08-21 07:18

感谢大卫,

我必须这样做。

小灯塔
7楼-- · 2020-08-21 07:09

感谢西蒙,

我做到了,现在我可以进行数据库验证

一周热门 更多>