在传统 ABAP On-Premise 里,提到编号区间(Number Range),很多人脑海里会立刻浮现SNRO:建对象、配区间、跑程序取号,一套流程非常成熟。切到 ABAP Cloud(包含 SAP BTP ABAP Environment,以及 S/4HANA Cloud 的 ABAP 开发方式)之后,开发者会发现一个明显变化:熟悉的 GUI 事务基本不再是入口,编号区间的创建、维护与取号被拆成了 ADT 向导、Fiori 应用与 ABAP API 的组合拳。(SAP Help Portal)
更有意思的是,RAP 生态里 GUID 早已是默认主键方案,那我们为什么还要关心 Number Range?答案并不矛盾:数据库唯一性与技术主键可以用 GUID 解决,但业务世界里经常需要可读、可追溯、可对账的连续编号,甚至需要某种意义上的顺序性与“可解释的缺号”。当这些需求出现时,Number Range 依然是最稳妥的基础设施之一。
为什么系统需要 Number Range
关系型数据库里的记录通常需要唯一键。一个看似简单的想法是:读出当前最大 ID,+1 作为新号。问题在于并发——同一时刻可能有多个事务在创建记