CAP-自动递增ID/编号,使用hdbsequence/hdbtrigger/hdbs同义词

2020-08-15 22:05发布

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

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


你好

似乎CAP模型尚未提供像ABAP(数字对象)或HDI(hdbsequence和hdbtrigger)这样的简化编号功能。

似乎可以使用HDI。 但是,我发现的有限示例似乎包含模式/命名空间,而模式管理隐藏在CAP中,我不确定如何引用CAP管理的表。 因此,我不确定如何将HDI和CAP一起实施。 例如,给定以下实体定义:

命名空间example.cloud.application;

 实体BPartners:受管理的cuid {
   seqID:整数;
   名称:字符串;
 } 

1。 如果.hdbsequence文件的内容需要(例如,对于reset_by)引用与上述实体定义链接的表,应该是什么样?

2。 我们如何从Node.js的hdbsequence中检索nextval/currentval?

3。 由于在数据库保存时理想地要增加数量,因此服务级别的事件处理程序可能为时过早,无法增加计数器和分配ID,例如 在.before('CREATE'...)上? 如果是,并且需要使用.hdbtrigger和.hdbsynonym,它们的内容应如何显示?

亲切问候

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

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


你好

似乎CAP模型尚未提供像ABAP(数字对象)或HDI(hdbsequence和hdbtrigger)这样的简化编号功能。

似乎可以使用HDI。 但是,我发现的有限示例似乎包含模式/命名空间,而模式管理隐藏在CAP中,我不确定如何引用CAP管理的表。 因此,我不确定如何将HDI和CAP一起实施。 例如,给定以下实体定义:

命名空间example.cloud.application;

 实体BPartners:受管理的cuid {
   seqID:整数;
   名称:字符串;
 } 

1。 如果.hdbsequence文件的内容需要(例如,对于reset_by)引用与上述实体定义链接的表,应该是什么样?

2。 我们如何从Node.js的hdbsequence中检索nextval/currentval?

3。 由于在数据库保存时理想地要增加数量,因此服务级别的事件处理程序可能为时过早,无法增加计数器和分配ID,例如 在.before('CREATE'...)上? 如果是,并且需要使用.hdbtrigger和.hdbsynonym,它们的内容应如何显示?

亲切问候

付费偷看设置
发送
6条回答
渐行渐远_HoldOn
1楼 · 2020-08-15 22:24.采纳回答

您好,塞尔达,

我的回答与Lars相同。 您应该一直使用GUID或UUID,因为它有助于在CAP中无缝管理业务对象,并且它也是实体之间关联/导航的事实上的标准。 反对这样做只会给您带来问题。 但是,我确实相信,在极少数情况下仍需要使用面向外部的数字序列-但我想您的情况不属于此类。

Cikesha
2楼-- · 2020-08-15 22:36

CAP中的建议 而是使用GUID,因为它们不需要任何同步。 例如。 在系统之间移动代码和(测试)数据时,您将永远不必通过GUID来"清除"使用过的ID。

这还避免了对替代ID(例如自动创建的seqID)的误解。

在替代ID中,不得存在隐含顺序或值的"不间断条纹"。 如果是,则此ID具有应用程序含义,需要以不同的方式处理。

愤怒的猪头君
3楼-- · 2020-08-15 22:31

有意义的ID的建议是实现自己的应用程序级别ID生成器。 没错:应用程序用户经常需要有意义的ID。

这些ID通常带有内置语义。 考虑电话号码中的区号,或社会安全号码中的出生日期等。

这些ID实际上编码了(实际上)简单的数据库序列未涵盖的其他信息。

葫芦娃快救爷爷
4楼-- · 2020-08-15 22:17

您好 Lars Breddemann

感谢您的评论。 我们已经在使用GUID,从技术角度来看,我喜欢它们。 但是,正如您所知,业务将需要助记符/人类可读的ID。 例如,当客户打电话时,他们不能询问其帐户GUID; 相反,他们会询问他们的帐户ID。

我认为这是一项重要的要求,需要得到支持。 所以,如果我们必须这样做,您有什么建议吗?

Doze时光
5楼-- · 2020-08-15 22:33

您好,Serdar,

我觉得我需要写一个有关此主题的博客。 在此处查看我对getNextNumber逻辑的完整实现:​​

https://blogs.sap.com/2020/07/04/cap-using-hana-db-sequence/

小灯塔
6楼-- · 2020-08-15 22:26

一周热门 更多>