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

SAP ABAP 自定义流水号 编号范围

前言

在开发中经常会遇到生成编号的需求(如接口报文ID,自建表数据主键等);为此,SAP提供了自动编号工具,能根用户需求设定并自动生成一组唯一的编号。

编号范围对象的创建

1.进入事务代码SNRO,创建一个编号范围对象。
在这里插入图片描述

编号长度域:表示生成出来的编号是什么数据类型
%警告:表示已产生的编号达到此百分比时给出警告
截至年份标志:表示按照年份重新获取编号(从范围的最小值重新开始)
无滚动:表示所有编号用完不会重新回到最小值开始,不勾选则表示重新从最小号开始编号
在这里插入图片描述

编号范围事务:可以指定一个事务码,通过执行此事务码可以进入该编号对象的维护页面
缓冲:主内存缓冲是指系统为了提高性能而预先取出一些编号放在应用服务器上,当程序取用编号时直接从应用服务器获取,而无需再读取数据库了。通常,如果对号码的连续性要求不高的情况下可以使用这种方式,而如果是财务凭证等要求连续的编号,为了防止跳号,则应该把主内存缓冲关闭,设置为无缓冲。
在这里插入图片描述

编号范围间隔的创建

点击间隔编辑。
在这里插入图片描述

维护编码范围的起始编号和截止编号即可。
image.png

编号范围的调用

在程序中通过函数 NUMBER_GET_NEXT 来获取编号对象所生成的流水码,每次调用都会产生一个新的编号

DATA: nextno TYPE char10.CALL FUNCTION 'NUMBER_RANGE_ENQUEUE'  "锁定要要维护的号码范围对象及其组和间隔EXPORTINGobject           = 'ZWEIGH_RUN' "事务代码snro 先创建一个流水号(char10)EXCEPTIONSforeign_lock     = 1object_not_found = 2system_failure   = 3OTHERS           = 4.CALL FUNCTION 'NUMBER_GET_NEXT'EXPORTINGnr_range_nr = '01'    "编码范围间隔的序号object      = 'ZWEIGH_RUN'  "编码范围对象的名称IMPORTINGnumber      = nextno. "最后获得的流水号CALL FUNCTION 'NUMBER_RANGE_DEQUEUE'   "解锁已维护的号码范围对象EXPORTINGobject           = 'ZWEIGH_RUN'EXCEPTIONSobject_not_found = 1OTHERS           = 2.

同时,可根据业务要求按时间维度重置流水号。

SELECT SINGLE ztyayno,zbarcode,zcdate INTO @DATA(ls_zcdate) FROM ztbc_003 WHERE zcdate = @sy-datum.IF sy-subrc <> 0."按天重置流水号CALL FUNCTION 'NUMBER_RANGE_INTERVAL_INIT'EXPORTINGobject            = 'ZWEIGH_RUN'
*       SUBOBJECT         = ' '
*       INTERVALS         =client            = sy-mandt
*       COMMIT            =EXCEPTIONSno_interval_found = 1object_not_found  = 2OTHERS            = 3.ENDIF.
http://www.lryc.cn/news/283528.html

相关文章:

  • 安卓、ios系统详解
  • 含并行连结的网络(GoogLeNet)
  • 计算机网络(第六版)复习提纲3
  • 怿星科技测试实验室获CNAS实验室认可,汽车以太网检测能力达国际标准
  • GORM 介绍及快速入门
  • Scrcpy:掌握你的Android设备
  • [9, 8, 7, 6][1,2] = ?
  • docker部署Jira+配置MySQL8数据库
  • YOLOv5全网独家首发:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测实现暴力涨点
  • HTML中常用标签--详解
  • Vue实现字符串首字母大写、翻转字符串、获取用户选定的文本
  • 基于springboot+vue的旅游网站系统(前后端分离)
  • GB/T28181-2022之图像抓拍规范解读和设计实现
  • 阿赵UE学习笔记——10、Blender材质和绘制网格体
  • 数据结构--串
  • RabbitMQ交换机(3)-Topic
  • 前端密钥怎么存储,以及临时存储一些数据,如何存储才最安全?
  • 第16章_网络编程拓展练习(TCP编程,UDP编程)
  • 深入Docker5:安装nginx部署完整项目
  • HBASE学习四:常用命令汇总梳理(包括数据库、zk、hdfs相关操作与配置)
  • Android平台RTSP|RTMP播放端实时快照保存JPG还是PNG?
  • 【人工智能】之深入了解嵌入模型中的 Token:NLP 中的语义之旅(1)
  • UML-实现图(组件图和部署图)
  • 苹果Find My可查找添加32件物品,伦茨科技ST17H6x芯片加速产品赋能
  • postman后端测试时invalid token报错+token失效报错解决方案
  • 使用 mybatis-plus 的mybaits的一对多时, total和record的不匹配问题
  • SpringCloud之Nacos
  • 小封装高稳定性振荡器 Sg2520egn / sg2520vgn, sg2520ehn / sg2520vhn
  • 使用 Apache POI 更新/覆盖 特定的单元格
  • Spring Boot整合MyBatis-Plus