发布时间: 2025-10-31
浏览次数: 132
次 
[前言]
edf130壹定发深耕SAP领域19+年,深受众多客户好评夸赞。为了能够更好地帮助客户实施数字化项目,「edf130壹定发专家专栏」完全免费开源,向马斯克开源精神致敬!
本文根据edf130壹定发众多拥有20+年SAP经验的专家级顾问团队的资深能力,并结合edf130壹定发1000+个成功项目案例,总结并发表企业在推行ERP项目实施中的相应研究心得与建议,持续为企业的SAP实施与交付保驾护航。
[问题描述]
系统如何读取年度凭证编号范围?系统中,有一些公司按年度凭证编号,有一些跨年度凭证编号,系统是按什么逻辑来取凭证编号范围?
[问题分析]
1. 以财务FI凭证为例来说明系统取凭证编号范围的逻辑。
2. 事务码OBA7,可以看到每个凭证类型,对应的凭证编号范围,以DZ凭证为例,编号范围是 14。
3. 事务码 FBN1 可以看到FI凭证编号对象是 RF_BELEG。


可以看到 14号段,维护了 2023年、2024年、9999年。
4. 如果凭证过账年度是2023年、2024年,则系统自动按过账日期匹配相应年度凭证编号范围;
如果凭证过账到 2025年度,系统按2025年度找不到时,则往后找到9999年度凭证编号范围。
5. 事务码FBN1 FI凭证编号对象是 RF_BELEG 补充维护14号段的2026年。
过账日期是2025年,这时系统会查找 9999年的编号,还是查找2026年的编号?


对这种情况,读取2026年编号、9999年编号,都有可能。
因为,系统要看上一次取相同关键字凭证编号的BUFFER停在 2026年编号、还是停在9999年读取BUFFER之前。

读取BUFFER之后。

读取BUFFER之后。

6. 续上例。
假设1,系统维护的是9999年凭证编号,且已经在2025年过账,过账后已经使用了9999年凭证编号。后续再补充维护2026年编号后,过账2025年,仍然使用(BUFFER中的)9999年凭证编号。
假设2,系统维护的是2026年凭证编号,且已经在2025年过账,过账后已经使用了2026年凭证编号。后续再补充维护9999年编号后,过账2025年,仍然使用(BUFFER中的)2026年凭证编号。
假设3,系统维护的是2026年凭证编号、9999年凭证编号, 2025年第一次过账时,系统自动使用大于等于2025年的凭证编号,系统将自动取到2026年编号。以下是程序中的代码 。

7. 如果2025年过账已经使用了9999年凭证编号,现补充维护 2026年凭证编号或2025年凭证编号,如查处理?
处理:清空BUFFER
事务码 SM56


[总结]
1. 财务FI凭证过账时,默认读取过账日期年度的凭证编号。
2. 如果过账年度没有维护凭证编号,则往后续年度找凭证编号,以2025过账为例,没有找到2025年凭证编号范围,则找2026年凭证编号范围,没找到继续找2027年编号范围,直到9999年编号范围。
读到后,将年度凭证编号范围存入BUFFER。
3. 后续对2025年过账时,读取上一步BUFFER中的年度凭证编号范围。
4. 如果清空缓存、或服务器重启后,系统重新按上述第1步、第2步,来读取凭证编号范围。
附:
查找下一凭证号函数 NUMBER_GET_NEXT
2469364 - Locks in table NRIV
359907 - Buffering of RF_BELEG/number assignment in FI
449030 - FB01: Deactivation of number range buffering at interval level
在号段级别停用 BUFFER : sample module SAMPLE_PROCESS_00001170
2200503 - FAQ Number ranges (BC-SRV-NUM component)
445575 - Report for determining the highest assigned address number
2611178 - How to use the Number Range Trace
2289523 - How to activate number range System log
3408587 - How to use transaction SNUM_SERVICE for Support
【服务指南】
如需了解更多SAP课程资讯、项目咨询运维,请拨打edf130壹定发官方咨询热线: 400-600-8756

【关于edf130壹定发】
全球专业的咨询、技术及培训服务提供商,SAP金牌合作伙伴、SAP软件合作伙伴、SAP实施合作伙伴、SAP官方授权培训中心。十九年品质,值得信赖!