点击此处---> 群内免费提供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,它们的内容应如何显示?
亲切问候
您好,塞尔达,
我的回答与Lars相同。 您应该一直使用GUID或UUID,因为它有助于在CAP中无缝管理业务对象,并且它也是实体之间关联/导航的事实上的标准。 反对这样做只会给您带来问题。 但是,我确实相信,在极少数情况下仍需要使用面向外部的数字序列-但我想您的情况不属于此类。
CAP中的建议 而是使用GUID,因为它们不需要任何同步。 例如。 在系统之间移动代码和(测试)数据时,您将永远不必通过GUID来"清除"使用过的ID。
这还避免了对替代ID(例如自动创建的seqID)的误解。
在替代ID中,不得存在隐含顺序或值的"不间断条纹"。 如果是,则此ID具有应用程序含义,需要以不同的方式处理。
有意义的ID的建议是实现自己的应用程序级别ID生成器。 没错:应用程序用户经常需要有意义的ID。
这些ID通常带有内置语义。 考虑电话号码中的区号,或社会安全号码中的出生日期等。
这些ID实际上编码了(实际上)简单的数据库序列未涵盖的其他信息。
您好 Lars Breddemann
感谢您的评论。 我们已经在使用GUID,从技术角度来看,我喜欢它们。 但是,正如您所知,业务将需要助记符/人类可读的ID。 例如,当客户打电话时,他们不能询问其帐户GUID; 相反,他们会询问他们的帐户ID。
我认为这是一项重要的要求,需要得到支持。 所以,如果我们必须这样做,您有什么建议吗?
您好,Serdar,
我觉得我需要写一个有关此主题的博客。 在此处查看我对getNextNumber逻辑的完整实现:
https://blogs.sap.com/2020/07/04/cap-using-hana-db-sequence/
嗨 Serdar Simsekler
这可能有帮助吗?
https://cap.cloud.sap/docs/advanced/hana/
一周热门 更多>