原文:Small Fire · SAP Number Range Object · ABAP 子专栏 · Small Fire 技术笔记

操作说明

在 SAP 系统中,各类主数据及单据都需要使用编号进行唯一性标识,以此形成后台有着大量编号范围维护的配置操作,种类繁多。

编号范围维护分为两部分:

  • 号码段的定义
  • 给数据对象分配号码段

两步操作根据不同数据类型可能是在一个操作中完成,也可能分步完成。这两步操作都属于配置,但前者(号码段定义)为避免传输的目的系统(如测试系统、生产系统)发生冲突,不会自动打进传输请求包,一般手工在目的系统加以配置。

创建Number Range

SNRO/SNUM : ( S AP N umber R ange O bject)

1.输入Tcode:SNRO 点击Create

Create

2.输入描述,数字长队对应的Domain和Warning 百分比,保存

Create and save

3.点击Number ranges,弹出显示,修改,创建intervals界面

Maintain Number Range Intevals

4.点击Insert Interval 维护值并保存,完成创建和激活

Maintain Number Range Intevals

5.为避免造成传输目的系统的编号混乱,在配置系统无论 Client 参数如何设置,编号范围定义配置都不会自动放入传输请求中,如真有需求则可以手动加入。

Transport

如有跳号现象,可以禁用对象的 Buffer 试试.

维护分类

类型1

每个数据对象只拥有一组号码段,内部、外部号码段选择其一或都选,定义与分配是分离的,如供应商、客户号码范围。

此类型的号码定义是相同的,但分配的操作并不一样,有些是在数据对象的属性定义处分配,例如销售订单。

此类的编号范围对象隶属于 Client,在 client 下号码段不可重复,可供一个或多个类型下的多个对象使用。例如销售凭证、外向交货单、内向交货单等共用一个编号范围对象。

具体操作参见《维护客户号码范围》。

类型2

每个对象只拥有一组号码段,内部、外部号码段选择其一或都选,定义与分配是集成的,典型如物料主数据。

类型3

数据对象下没有子类,但需要有多个号码段,如会计凭证号码范围,每个公司代码下有多个号码段。此类编号范围对象定义只归属于指定数据对象。

类型4

数据对象下有多个子类,在数据对象下需定义一套完整的号码段,每个子类分配一组号码段,每组包可含 1 个内部段和 1 个外部段(两者可选其一或都含有),典型如成本控制范围。

维护明细表

下表中列出了常用的编号范围对象的维护信息,包括前台 TCODE、后台路径、SNRO/SNUM 维护值,以及分类。每种分类的操作可参考不同的链接。

模块IMG 路径对象TCOCESNRO/SNUM 维护值类型
FI财务会计 (新)→财务会计全局设置 (新)→凭证→凭证号范围→条目视图中的凭证→定义条目视图的凭证编号范围会计凭证FBN1RF_BELEG3
CO控制→一般控制→组织结构→维护成本控制凭证的编号范围成本控制KANKRK_BELEG4
MM后勤 - 常规→物料主数据→基本设置→物料类型→定义每个物料类型的号码范围物料主数据MMNRMATERIALNR2
MM后勤 - 常规→业务合作伙伴→供应商→控制→定义供应商主记录的编号范围 <间隔>供应商主数据OMSJKREDITOR1
SD后勤 - 常规→业务合作伙伴→客户→控制→定义和分配客户号码范围 <定义客户主数据的编号范围>客户主数据OVZCDEBITOR1
SD销售和分销→销售→销售凭证→销售凭证抬头→定义销售凭证的号码范围销售订单VN01RV_BELEG1

读取函数:NUMBER_GET_NEXT

程序实例

REPORT zsnro_test.
DATA: NUMBER TYPE I.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
   nr_range_nr = '01'
   object = 'ZTEST_SNRO'
IMPORTING
  NUMBER = NUMBER
EXCEPTIONS
  INTERVAL_NOT_FOUND = 1
  NUMBER_RANGE_NOT_INTERN = 2
  OBJECT_NOT_FOUND = 3
  QUANTITY_IS_0 = 4
  QUANTITY_IS_NOT_1 = 5
  INTERVAL_OVERFLOW = 6
  BUFFER_OVERFLOW = 7
  OTHERS = 8.
IF sy-subrc <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Write :/ 'Next available number is: ', Number.

其他信息

相关表

  • NRIV、TNRO

函数组

  • SNR0: Online maint. of number ranges & groups
  • SNR1: Interface for number ranges and groups
  • SNR2: Maintenance of number range objects
  • SNR3: Number range checks, assignment & info
  • SNR4: Number ranges utility

TCode

TCODEDesc描述
5NZINumber range maintenance: RP_IRCERT编号范围维护: RP_IRCERT
ABNVNumber range maintenance: FIAA-BELNR编号范围维护: FIAA-BELNR
AO11Assign number range分配编号范围
AS08Number Ranges:Asset Number号码范围:资产号码
BDCPNumber range maintenance: ALE_CP编号范围维护: ALE_CP
BG00Number Range Maintenance: BGMK_NR编码范围维护:BGMK_NR
BMVNNumber Range Maintenance: DI_JOBID编号范围维护: DI_JOBID
BUCFBP Cust: Number RangesBP 消费者:编号范围
CFNAMaintain PRT number range: FHM_CRFH维护 PRT 编号范围: FHM_CRFH
CMTCUS22Maintain number range for CM product维护 CM 产品的号码范围
CMTCUS32Maintain number range for CM folder维护 CM 文件夹的号码范围
CMTCUS42Maintain number ranges for Baseline维护起点的号码范围
FBN1Accounting Document Number Ranges科目凭证号码范围
FNS1Collateral number range附属编号区间
FOV0Rental agreement number range租用协议编号范围
FOW0Real Estate application number range不动产应用的数据范围
IN20Object link number ranges对象连接号码范围
IP22Maintain number range: OBJK_NR维护编号范围:OBJK_NR
KEN2Maint. number ranges: CO-PA planning维护号吗范围: CO-PA 计划
OGS9Generate ADP number ranges生成 ADP 编号范围
OHX3Maintain number ranges for 3PR维护 3PR 的编号范围
OIL5Equipment number ranges设备编号范围
OIONOrder number ranges订单编号范围
OMH6Number Ranges for Purch. Documents采购凭证的号码范围
QCCNQM standard number ranges质量管理标准码范围
QS29Maintain characteristic number range维护特性编号范围
QS39Maintain method number range编号范围维护方式
VB(1Rebate number ranges回扣号范围
VN07Maintain number range for shipments维护装运的编号范围
WC64Catalog code number ranges类别代码编号范围
WTNRw/tax certificate number range