当前位置: 首页 > news >正文

【SAP Abap】X-DOC:SNRO - ABAP流水号应用

【SAP Abap】X-DOC:SNRO - ABAP流水号应用

  • 1、定义表(字段域)
  • 2、定义流水号
  • 3、使用流水号
  • 4、测试程序

1、定义表(字段域)

在这里插入图片描述
在这里插入图片描述

2、定义流水号

Tcode: SNRO/SNUM,
根据以上创建的字段域 YDSNRO,创建对象 YSNRO,并定义流水号范围
在这里插入图片描述
编号长度域:就填创建的域,但是一定要先激活。

警告百分比:是指如果编号使用到一定比例,就发出系统警告,提示管理人员增大范围或者进行历史数据归档,避免编号全部用完后影响正常业务,这里填写 95,就是95%的时候提示。

无翻滚间隔:是指如果编号达到最大,是否自动从头开始,勾上就不从头开始,而在获取编号的时候提示出错。

编号范围事务:如果指定这个事务码,就可以不需要通过 SNRO/SNUM 的主屏幕然后输入编号范围对象的名字来维护这个编号范围,而可以输入事务码直接进入它的号码范围维护屏幕。

主内存缓冲
是指系统为了提高性能而预先取出一些编号放在应用服务器上,当程序取用编号时直接从应用服务器获取,而无需再读取数据库了。
通常,如果对号码的连续性要求不高的情况下可以使用这种方式,而如果是财务凭证等要求连续的编号,则应该把主内存缓冲关闭。
可以在取号时,设置参数 IGNORE_BUFFER = ‘X’ ,来防止跳号,设成’X‘就不会跳号了。

号码范围传输:一般编码都是在生产机中独立设置的,若需要传输本次编号范围的维护,需要在初始菜单中执行“范围”|“传输”命令,通过手工操作来生成传输请求号码。

3、使用流水号

在程序中使用流水号,需要用到以下三个函数

FORM get_no CHANGING p_no.CALL FUNCTION 'NUMBER_RANGE_ENQUEUE'EXPORTINGobject           = 'YSNRO'EXCEPTIONSforeign_lock     = 1object_not_found = 2system_failure   = 3OTHERS           = 4.IF sy-subrc = 0.                    "如果号码范围存在则加锁CALL FUNCTION 'NUMBER_GET_NEXT'   "将号码累加,获得下一个流水号EXPORTINGnr_range_nr             = '01'object                  = 'YSNRO'ignore_buffer           = 'X'IMPORTINGnumber                  = p_noEXCEPTIONSinterval_not_found      = 1number_range_not_intern = 2object_not_found        = 3quantity_is_0           = 4quantity_is_not_1       = 5interval_overflow       = 6buffer_overflow         = 7OTHERS                  = 8.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ELSE.CALL FUNCTION 'NUMBER_RANGE_DEQUEUE'	"解锁EXPORTINGobject           = 'YSNRO'EXCEPTIONSobject_not_found = 1OTHERS           = 2.ENDIF.ENDIF.
ENDFORM.

4、测试程序

REPORT yz_demo_xlevon_snro.PERFORM add_data.
PERFORM add_data.
PERFORM add_data.
COMMIT WORK.
SELECT * FROM ytxlevon_snro INTO TABLE @DATA(lt_xlevon).
cl_demo_output=>display( lt_xlevon ).* 增加表记录
FORM add_data.DATA: ls_xlevon TYPE ytxlevon_snro.DATA: lv_no TYPE ytxlevon_snro-ysnro.PERFORM get_no CHANGING lv_no.ls_xlevon-ysnro = lv_no.MODIFY ytxlevon_snro FROM ls_xlevon.
ENDFORM.
...

在这里插入图片描述

原创文章,转载请注明来源-X档案

http://www.lryc.cn/news/66581.html

相关文章:

  • 基于AT89C51单片机的交通灯设计与仿真
  • MySQL系列三(定位慢SQL、SQL优化与索引优化)Using filesort
  • 免费使用GPT-4.0?【AI聊天 | GPT4教学】 —— 微软 New Bing GPT4 申请与使用保姆级教程
  • 渲染对电脑伤害大吗_如何减少渲染伤机?
  • 非线性最小二乘
  • 23.5.7总结(学习通项目思路)
  • 如何生成api接口获取宝贝商品详情,商品详情接口,产品详情
  • 微服务---Redis实用篇-黑马头条项目-登录功能(短信验证缓存,用户信息缓存)
  • 美国纽扣电池的包装电池盒必须附带警告标签16 CFR 第 1700.20
  • AcWing——方格迷宫(有点不一样的迷宫问题)
  • 《常规脉搏传输时间作为人体血压变化标志》阅读笔记
  • java学习之异常三
  • 生产者向 Kafka 发送消息的执行流程
  • Linux命令·netstat
  • 《心安即是归处》读书笔记
  • C++:使用红黑树封装map和set
  • Go 命令
  • LEO、HW、LSO、LW 分别代表什么?
  • 问题 B: 跳石头(C++)(二分答案)
  • bugku——变量1
  • 网络数据包丢失监控
  • Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接
  • CSS面试题:30道含答案和代码示例的练习题
  • 时间轮的golang实践浅析
  • Linux命令_stress 快速模拟CPU、内存、磁盘消耗
  • 可视化绘图技巧100篇分析篇(二)-生存曲线(LM曲线)
  • UP主发车啦!撩人仙侠文系列,谁来管管这个反派啊!
  • K8S使用持久化卷存储到NFS(NAS盘)
  • 一图看懂 multidict 模块:类似于字典的键值对集合,键可以多次出现,资料整理+笔记(大全)
  • django CBV 与 DRF APIView源码分析