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

SAP-MM 采购订单发票重复预制难题:MIR7增强控制实战解析

1. 采购订单发票重复预制问题解析最近在实施SAP-MM模块时遇到一个让人头疼的问题采购订单明明已经开过发票了但使用MIR7事务码时系统居然还能重复预制发票。这个问题看似简单实则暗藏玄机今天我就来详细拆解这个业务痛点。先说说这个问题的具体表现。比如1月份已经对某采购订单开过432件的发票3月份再次使用MIR7时系统竟然还能带出568件的数量并生成预制凭证。这显然不符合业务逻辑容易导致重复付款的风险。我仔细检查了系统配置和主数据供应商主数据、信息记录和采购订单中都勾选了基于收货的发票校验标识OMRDC中的重复发票检查功能已经启用OBA5消息控制设置为E错误提示这些标准配置看起来都没问题但问题依然存在。经过多次测试发现系统对时间间隔较近的发票会带出数据而时间较远的则不会。这让我怀疑是否与发票未清账状态有关。2. 标准配置失效原因深度剖析为什么标准配置会失效这个问题困扰了我很久。经过深入分析我发现主要有以下几个关键因素首先是时间间隔的影响。系统对近期操作的发票检查较为宽松这可能是出于性能考虑但给业务带来了风险。其次是发票未清账状态的影响。在财务实际业务中发票过账和付款清账往往不是同步进行的这就导致系统中存在大量已过账但未清账的发票。更关键的是MIRO和MIR7的行为差异MIRO对已开票的采购订单会显示空金额和数量但会带出本月未开票的数据MIR7则不会带出本月未开票的数据但对历史已开票的数据检查不严格财务通常采用月度对账模式本月对上月的收货数据进行对账。这种业务特点使得MIR7的标准控制机制出现漏洞必须通过增强来解决。3. ABAP增强方案设计与实现针对这个问题我设计了一个ABAP增强方案在LMR1MF6S程序的ES_SAPLMR1M增强点进行拦截控制。这个方案的核心思路是检查当前事务码是否为MIR7获取采购订单历史凭证数据计算已过账的发票数量比较当前预制数量与已过账数量拦截重复预制的发票具体实现代码如下ENHANCEMENT-POINT MIR7_01 SPOTS ES_SAPLMR1M . DATA: LS_YDRSEG LIKE LINE OF YDRSEG. DATA: LT_EKBE LIKE TABLE OF EKBE WITH HEADER LINE. DATA: L_QTY LIKE EKBE-MENGE. DATA: S_QTY LIKE EKBE-MENGE. CHECK RM08M-VORGANG 1. IF SY-TCODE MIR7. LOOP AT YDRSEG INTO LS_YDRSEG. CLEAR: LT_EKBE,L_QTY,S_QTY. REFRESH: LT_EKBE. SELECT * INTO CORRESPONDING FIELDS OF TABLE LT_EKBE FROM EKBE WHERE EBELN LS_YDRSEG-EBELN AND EBELP LS_YDRSEG-EBELP AND BEWTP Q Q - 已过账 AND LFGJA LS_YDRSEG-LFGJA AND LFBNR LS_YDRSEG-LFBNR AND LFPOS LS_YDRSEG-LFPOS. IF LT_EKBE[] IS NOT INITIAL. LOOP AT LT_EKBE. IF LT_EKBE-SHKZG S. 借方 L_QTY LT_EKBE-MENGE. ELSEIF LT_EKBE-SHKZG H. 贷方 L_QTY 0 - LT_EKBE-MENGE. ENDIF. S_QTY S_QTY L_QTY. ENDLOOP. IF LS_YDRSEG-SHKZG H. LS_YDRSEG-WEMNG 0 - LS_YDRSEG-WEMNG. 退货订单 ENDIF. LS_YDRSEG-MENGE LS_YDRSEG-WEMNG - S_QTY. LS_YDRSEG-BPMNG LS_YDRSEG-MENGE. IF LS_YDRSEG-MENGE 0. DELETE YDRSEG. CONTINUE. ELSE. MODIFY YDRSEG FROM LS_YDRSEG. ENDIF. ENDIF. ENDLOOP. ENDIF.4. 增强方案实施要点与注意事项在实施这个增强方案时有几个关键点需要特别注意首先是性能优化。由于需要查询EKBE表采购凭证历史在大数据量的系统中可能会影响性能。建议确保EBELN、EBELP等关键字段有适当的索引考虑添加BUDAT过账日期等条件缩小查询范围对于高频使用的采购订单可以考虑缓存机制其次是异常处理。在实际业务中可能会遇到各种特殊情况部分退货订单的处理SHKZGH的情况跨年度凭证的处理汇率变动导致的金额差异最后是测试策略。建议按以下步骤进行全面测试正常开票场景测试重复预制拦截测试部分数量开票测试退货订单测试跨年度凭证测试这个增强方案在我们多个项目中实施后有效解决了重复预制发票的问题。实施后需要持续监控系统日志确保没有误拦截正常业务的情况发生。

相关文章:

SAP-MM 采购订单发票重复预制难题:MIR7增强控制实战解析

1. 采购订单发票重复预制问题解析 最近在实施SAP-MM模块时,遇到一个让人头疼的问题:采购订单明明已经开过发票了,但使用MIR7事务码时,系统居然还能重复预制发票。这个问题看似简单,实则暗藏玄机,今天我就来…...

Flux2-Klein-9B-True-V2新手指南:Negative Prompt避坑与高质量提示词写法

Flux2-Klein-9B-True-V2新手指南:Negative Prompt避坑与高质量提示词写法 1. 模型简介 Flux2-Klein-9B-True-V2是基于官方FLUX.2 [klein] 9B改进的文生图/图生图模型,专为高质量图像生成与编辑而设计。这个模型支持多种创作模式,包括&#…...

如何用开源游戏智能助手彻底解放你的游戏时间?5大自动化场景深度解析

如何用开源游戏智能助手彻底解放你的游戏时间?5大自动化场景深度解析 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址…...

TEdit地图编辑器:10分钟学会专业级泰拉瑞亚世界创作

TEdit地图编辑器:10分钟学会专业级泰拉瑞亚世界创作 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also lets you chan…...

Unity AudioSource播放控制全攻略:从Play到UnPause,新手也能搞定的UI交互实战

Unity音频交互实战:从零构建专业级音乐控制器 在游戏和多媒体应用开发中,音频控制是提升用户体验的关键环节。Unity的AudioSource组件提供了强大的音频处理能力,但如何将其与UI系统无缝结合,打造直观易用的音频控制器,…...

告别串口打印烦恼:用C# WinForm拖拽设计标签模板,5分钟搞定LabVIEW调用

工业标签打印革命:C# WinForm拖拽设计LabVIEW无缝对接实战指南 在工业自动化和实验室设备管理领域,标签打印是数据可视化的重要环节。传统串口或TCP通信打印方式不仅配置复杂,面对中文和条码处理时更是问题频出。本文将介绍一种颠覆性的解决方…...

Allegro 17.4 铺铜避坑指南:从全局参数到手动挖铜,新手必看的10个实操细节

Allegro 17.4 铺铜避坑指南:从全局参数到手动挖铜,新手必看的10个实操细节 第一次在Allegro中铺铜时,那种既兴奋又忐忑的心情我至今记忆犹新。看着铜皮在PCB上蔓延,仿佛能感受到电流即将在上面奔腾的活力。但很快,各种…...

为什么你的Android设备需要SUSFS4KSU-Module:终极根隐藏解决方案指南

为什么你的Android设备需要SUSFS4KSU-Module:终极根隐藏解决方案指南 【免费下载链接】susfs4ksu-module An addon root hiding service for KernelSU 项目地址: https://gitcode.com/gh_mirrors/su/susfs4ksu-module SUSFS4KSU-Module是一款专为KernelSU设计…...

企业级视频上云实战:基于SRS5与GB28181构建安防监控流媒体中台

1. 为什么需要流媒体中台? 最近几年,我帮不少制造业客户搭建过视频监控上云方案,发现一个普遍痛点:企业内网往往部署了几十甚至上百个不同品牌的GB28181摄像头(比如海康、大华),这些设备分散在厂…...

如何在Android设备上轻松安装SMAPI框架:星露谷物语MOD新手必读指南

如何在Android设备上轻松安装SMAPI框架:星露谷物语MOD新手必读指南 【免费下载链接】SMAPI-Android-Installer SMAPI Installer for Android 项目地址: https://gitcode.com/gh_mirrors/smapi/SMAPI-Android-Installer 还在为手机版星露谷物语的MOD安装感到困…...

D2RML终极指南:暗黑2重制版多账户一键启动解决方案

D2RML终极指南:暗黑2重制版多账户一键启动解决方案 【免费下载链接】D2RML Diablo 2 Resurrected Multilauncher 项目地址: https://gitcode.com/gh_mirrors/d2/D2RML 想要在《暗黑破坏神2:重制版》中同时操作多个角色,却厌倦了反复登…...

保姆级教程:在RK3399 Android8.1上搞定LT9211 MIPI转LVDS驱动移植(附完整DTS配置)

RK3399平台LT9211芯片MIPI转LVDS驱动移植全流程实战指南 在嵌入式显示方案开发中,MIPI与LVDS接口的转换是常见需求。Rockchip RK3399作为高性能处理器,虽原生不支持LVDS输出,但通过LT9211等转换芯片可实现灵活适配。本文将完整呈现从硬件原理…...

【嵌入式进阶】告别“屎山”代码!资深老鸟都在用的5个C语言神级技巧

前言: 在嵌入式开发中,很多初学者在写完“点灯”程序后,面对稍微复杂的工程就会陷入沉思:代码越写越长,if-else 嵌套深不见底,硬件稍微改个引脚,整个应用层都要跟着动。 为什么同样是用 C 语言&…...

终极指南:如何用MAA助手彻底解放双手,让明日方舟日常任务自动化

终极指南:如何用MAA助手彻底解放双手,让明日方舟日常任务自动化 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项…...

抖音无水印视频下载神器:DouYinBot 让你的视频创作更高效 [特殊字符]

抖音无水印视频下载神器:DouYinBot 让你的视频创作更高效 🚀 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 还在为抖音视频的水印烦恼吗?想保存喜欢的视频却苦于找不到无水印版本…...

PHP V6 单商户常见问题——数据库模式修改 sql-mode

数据库模式修改 sql-mode问题现象很多小伙伴在本地部署后访问站点会报下图这种错误:数据获取失败:SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column nc_saas.S…...

逻辑加密技术:硬件安全与IP保护的革新方案

1. 逻辑加密技术:硬件安全的新范式在集成电路设计领域,知识产权保护一直是个棘手的难题。想象一下,你花费数月心血设计的芯片,被人轻易逆向工程并复制,这种痛苦就像作家看到自己的小说被全文抄袭却无能为力。传统解决方…...

Serverless架构下ChatGPT插件开发实战与优化

1. 项目概述:基于Serverless架构的ChatGPT插件开发实战去年夏天,当我第一次把自建的播客搜索插件接入ChatGPT时,看着AI助手流畅地推荐《Lex Fridman Show》最新访谈的那一刻,突然意识到:这可能是内容类API最性感的打开…...

图像处理入门:5分钟搞懂Lab、HSV、YCbCr色彩空间的区别与应用场景

图像处理入门:5分钟搞懂Lab、HSV、YCbCr色彩空间的区别与应用场景 色彩空间是数字图像处理的基础概念之一。对于初学者来说,面对众多色彩空间如Lab、HSV、YCbCr等,常常感到困惑:它们到底是什么?为什么需要这么多不同的…...

Qwen3.5-9B-AWQ-4bit部署教程:supervisorctl status命令输出解读与状态码含义

Qwen3.5-9B-AWQ-4bit部署教程:supervisorctl status命令输出解读与状态码含义 1. 引言 在部署和使用Qwen3.5-9B-AWQ-4bit模型时,服务管理是确保模型稳定运行的关键环节。其中,supervisorctl工具作为进程管理利器,能够帮助我们实…...

从Windows迁移到Linux部署Kettle?这份避坑指南和完整配置流程请收好

从Windows迁移到Linux部署Kettle的避坑指南与完整配置流程 对于长期在Windows环境下使用Kettle进行ETL开发的工程师而言,将工作流迁移到Linux生产环境往往伴随着诸多"水土不服"。本文将从环境差异、路径处理、执行方式、权限配置等关键维度,提…...

3步构建你的专属音频空间:从基础调校到专业级系统音频优化

3步构建你的专属音频空间:从基础调校到专业级系统音频优化 【免费下载链接】equalizerapo Equalizer APO mirror 项目地址: https://gitcode.com/gh_mirrors/eq/equalizerapo 想象一下,你正在享受最爱的音乐,但总觉得低音不够浑厚&…...

Speechless:终极微博PDF备份指南 - 免费永久保存你的社交记忆

Speechless:终极微博PDF备份指南 - 免费永久保存你的社交记忆 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 你是否曾担心那些记录生活点…...

ChatGLM-6B微调实战:从Kaggle双T4训练到本地CPU部署,一个广告生成任务的全流程解析

ChatGLM-6B微调实战:从Kaggle双T4训练到本地CPU部署,一个广告生成任务的全流程解析 在营销内容创作领域,AI生成技术正逐步改变传统工作流程。本文将带您深入探索如何利用ChatGLM-6B模型完成广告文案生成任务的全流程实现,从云端资…...

终极1Fichier下载解决方案:5分钟告别等待限制的完整指南

终极1Fichier下载解决方案:5分钟告别等待限制的完整指南 【免费下载链接】1fichier-dl 1Fichier Download Manager. 项目地址: https://gitcode.com/gh_mirrors/1f/1fichier-dl 你是不是经常在1Fichier网站下载文件时,被漫长的等待时间困扰&#…...

Windows任务栏透明美化终极指南:用TranslucentTB打造个性化桌面

Windows任务栏透明美化终极指南:用TranslucentTB打造个性化桌面 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 还在为Window…...

别再死记硬背了!用‘头插法’和‘尾插法’搞定链表反转和顺序构建(附C语言代码图解)

链表操作的艺术:从头插法与尾插法解锁数据结构思维 链表作为数据结构中的基础概念,常常让初学者感到困惑。特别是当面对"头插法"和"尾插法"这两种看似简单却容易混淆的操作时,很多学习者会陷入死记硬背代码的误区。实际上…...

从零理解LoongArch 20条指令:我的单周期CPU数据通路设计与Verilog实现心得

从零构建LoongArch单周期CPU:20条指令数据通路设计与Verilog实战指南 第一次接触LoongArch指令集时,看着实验包里密密麻麻的Verilog代码,我完全找不到头绪——就像被扔进一个迷宫,手里只有支离破碎的地图碎片。直到我决定抛开实验…...

CentOS 7实战:利用DKMS为RTL8188GU无线网卡编译并持久化驱动

1. 为什么需要DKMS管理无线网卡驱动 刚装好CentOS 7系统时,最头疼的就是无线网卡驱动问题了。特别是像RTL8188GU这种比较新的芯片,官方仓库里往往找不到现成的驱动。我遇到过太多次重装系统后无线网卡罢工的情况,每次都要手动重新编译驱动&am…...

3个让你重新爱上NGA论坛的浏览体验优化技巧

3个让你重新爱上NGA论坛的浏览体验优化技巧 【免费下载链接】NGA-BBS-Script NGA论坛增强脚本,给你完全不一样的浏览体验 项目地址: https://gitcode.com/gh_mirrors/ng/NGA-BBS-Script 还在为论坛信息过载而烦恼吗?NGA-BBS-Script是一款专为NGA论…...