ERPClimb logoERPClimb
SAP technical topicObjectSAP Number Ranges: SNRO, NRIV, Buffering and NUMBER_GET_NEXTModuleABAP

SAP Number Ranges: SNRO, NRIV, Buffering and NUMBER_GET_NEXT

SAP number ranges define controlled numeric intervals for business-object keys. SNRO maintains number-range objects and intervals are stored/configured in NRIV; applications normally request numbers through the number-range service such as NUMBER_GET_NEXT rather than reading or incrementing NRIV directly. Internal versus external intervals, year/subobject dependence and buffering determine behavior, and buffered ranges can legitimately create gaps.

Practitioner technical guide to SAP Number Ranges: SNRO, NRIV, Buffering and NUMBER_GET_NEXT, with architecture context, a worked example, decision rules, production pitfalls, S/4HANA implications, ownership, and the standard SAP objects used to prove behavior.

Reviewed by an ERPClimb SAP consultant on 20 Sept 2026· 742 words

Esta página ainda não está disponível em português.

What it is

A number-range object defines characteristics such as domain/length, subobject handling, year dependence, warning percentage and buffering. Intervals then specify from/to limits and whether numbers are internally generated or externally supplied. The number-range runtime serializes assignment so concurrent callers do not receive the same number. Buffering can reserve blocks in application-server memory to reduce contention; if a process/server restarts before every buffered number is consumed, gaps can appear. That means number ranges generally guarantee uniqueness within their rules, not gap-free legal sequencing unless a specific application uses an appropriate unbuffered/legal-numbering mechanism.

When to use it

Use a custom number-range object when a custom business object needs SAP-managed numeric key assignment with concurrency control. Use the standard application number-range object for SAP business documents—do not create a parallel custom counter. Use external intervals when the caller is allowed to supply the key and the application validates it. Read interval configuration only for monitoring; obtain actual new numbers through the number-range service. If a jurisdiction requires legally gapless numbering, follow the application-specific legal numbering design rather than assuming ordinary SNRO buffering can satisfy it.

How it fits the stack

Number ranges are cross-application infrastructure used by FI documents, sales documents, materials and many custom objects. NUMBER_GET_NEXT manages runtime assignment; NUMBER_GET_INFO/CHECK and administration functions inspect configuration. NRIV is configuration/runtime state and should not be updated directly. Transport behavior differs between object definition and interval/current-number state; productive intervals often require controlled client-specific setup. High contention can make unbuffered ranges a scalability bottleneck.

A worked example

A custom claim object uses a Z number-range object with a yearly subobject. During peak load, developers read NRIV and add one themselves, causing duplicate numbers under concurrency. Replacing that logic with NUMBER_GET_NEXT lets the SAP number-range service serialize allocation. Later users complain about gaps; analysis shows buffering reserves blocks and a server restart left unused numbers. The design is correct for unique technical keys, but the business requirement for gapless legal numbers would need a different application-specific strategy.

How to choose

  • Use the application's standard number-range object whenever one exists.
  • Choose internal versus external intervals from business ownership of the key.
  • Use subobjects/year dependence only when the business numbering scheme genuinely requires them.
  • Choose buffering with awareness of performance versus gap behavior.
  • Never calculate the next number by selecting/updating NRIV directly.

Common pitfalls

  • Reading current NRIV status and predicting the next number in a buffered range.
  • Resetting current number to 'fix gaps' and creating duplicates or inconsistent references.
  • Transporting intervals/current counters without understanding client/production consequences.
  • Using one tiny unbuffered interval under massive concurrency and creating an enqueue hotspot.
  • Confusing uniqueness with gaplessness.

ECC, S/4HANA and clean core

The number-range framework remains foundational in S/4HANA. Many standard objects still use it, while some cloud APIs hide the mechanism behind business services. ABAP Cloud custom development should use released numbering APIs/framework patterns rather than direct NRIV access. Buffering/concurrency principles remain relevant regardless of HANA.

Whose problem this is

Functional/configuration owners define interval policy and legal/business numbering requirements. ABAP developers call the service correctly and avoid direct table updates. Basis/operations monitor exhaustion/contention, while audit/compliance teams must approve any requirement for gapless regulated sequences.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-technical-topics/sap-number-ranges-snro-nrivERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.