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

SAP EWM委外采购实战:手把手教你用BADI增强打通订单与交货单的关联链路

SAP EWM委外采购增强实战从业务痛点到代码落地的全链路设计在SAP EWM的委外采购业务场景中采购订单与交货单的关联关系缺失是许多企业面临的共性问题。当仓库管理系统需要追溯委外加工物料的完整生命周期时标准功能往往无法提供足够的数据支持。本文将从一个资深顾问的视角分享如何通过BADI增强构建稳健的数据关联方案同时解决MIGO冲销场景下的数据一致性问题。1. 业务场景深度剖析与增强点选择逻辑委外采购Subcontracting作为制造业常见的业务模式其核心流程涉及物料发放、外协加工和成品回收三个关键环节。在SAP标准实现中使用541移动类型委外发料和542移动类型委外收货进行业务记录但存在两个致命缺陷关联断裂系统不会自动建立采购订单与生成的外向交货单之间的对应关系追溯困难当需要分析某批外协物料的加工周期或质量问题时无法通过标准报表快速定位相关单据关键发现在MIGO事务中当执行541移动类型时系统会在后台生成外向交货单但这个关联关系仅存在于内存中不会持久化存储。经过对标准流程的跟踪分析我们锁定两个关键增强点增强对象BADI名称方法捕获时机关键数据发料环节MB_MIGO_BADICHECK_ITEMMIGO过账时采购订单、行项目交货单LE_SHP_DELIVERY_PROCSAVE_AND_PUBLISH_DOCUMENT交货单保存时交货单号、行项目为什么选择这两个增强点它们正好覆盖了业务流的关键节点MB_MIGO_BADI在物料移动时捕获源头数据采购订单LE_SHP_DELIVERY_PROC在交货单生成时获取目标数据2. 技术实现双BADI协同工作机制2.1 MB_MIGO_BADI的数据采集策略在CHECK_ITEM方法中我们需要处理三种业务场景METHOD if_ex_mb_migo_badi~check_item. 获取MIGO全局数据 ASSIGN ((SAPLMIGO)GOHEAD) TO fs_gohead. ASSIGN ((SAPLMIGO)GODYNPRO) TO zgodynpro. CASE zgodynpro-action. WHEN A08. 过账 LOOP AT lt_item INTO ls_item WHERE bwart 541. 收集采购订单信息到全局变量GT_PO ENDLOOP. WHEN A03. 冲销 IF fs_gohead-mtsnr IS NOT INITIAL. 存在参考单据 LOOP AT lt_item INTO ls_item WHERE bwart 542. 通过交货单反向查找原始采购订单 ENDLOOP. ENDIF. ENDCASE. ENDMETHOD.关键技巧使用动态ASSIGN获取MIGO屏幕字段避免直接修改标准程序对541和542移动类型分别处理正向发料与反向冲销将采集的数据存入全局变量GT_PO需在类中定义2.2 LE_SHP_DELIVERY_PROC的持久化设计当交货单保存时我们需要将内存中的关联关系持久化到自定义表METHOD if_ex_le_shp_delivery_proc~save_and_publish_document. LOOP AT it_xlips INTO DATA(ls_lips). READ TABLE gt_po INTO DATA(ls_po) WITH KEY posnr ls_lips-posnr. IF sy-subrc 0 AND ls_po-ebeln IS NOT INITIAL. ls_zmmt0007-vbeln ls_lips-vbeln. 交货单 ls_zmmt0007-ebeln ls_po-ebeln. 采购订单 ls_zmmt0007-posnr ls_lips-posnr. 行项目 记录操作信息 ls_zmmt0007-create_user sy-uname. ls_zmmt0007-create_date sy-datum. APPEND ls_zmmt0007 TO lt_zmmt0007. ENDIF. ENDLOOP. IF lt_zmmt0007 IS NOT INITIAL. MODIFY zmmt0007 FROM TABLE lt_zmmt0007. ENDIF. ENDMETHOD.表ZMMT0007设计要点字段名类型描述关键标识VBELNCHAR10交货单号主键1EBELNCHAR10采购订单主键2POSNRCHAR6行项目主键3CREATE_USERCHAR12创建人CREATE_DATEDATS创建日期3. 冲销场景的特别处理方案在MIGO中使用542移动类型冲销时标准行为会导致数据链路断裂。我们的增强方案通过以下机制确保数据一致性反向追溯机制通过GOHEAD-MTSNR获取原始交货单从ZMMT0007中查询原始采购订单SELECT SINGLE ebeln INTO ls_po-ebeln FROM zmmt0007 WHERE vbeln fs_gohead-mtsnr.双重校验逻辑先尝试按行项目精确匹配POSNR失败后回退到按单据头匹配数据完整性检查IF sy-subrc NE 0. 记录错误日志 ls_bapiret2-type E. ls_bapiret2-message 无法找到原始采购订单. APPEND ls_bapiret2 TO ct_return. ENDIF.4. 测试验证与性能优化4.1 测试用例设计需要覆盖的典型场景正向流程测试541发料 → 生成交货单 → 检查ZMMT0007记录多个行项目同时处理的情况异常流程测试冲销未建立关联的原始单据重复执行相同事务性能测试大批量发料时的响应时间高峰期的并发处理能力4.2 性能优化技巧缓冲机制在MB_MIGO_BADI中使用类静态变量暂存数据减少数据库访问批量操作在LE_SHP_DELIVERY_PROC中使用MODIFY TABLE替代单条INSERT索引优化为ZMMT0007建立合适的二级索引CREATE INDEX zidx_zmmt0007_ebeln ON zmmt0007(ebeln).5. 扩展应用基于关联数据的价值挖掘建立完整的单据关联后可以衍生出多种业务应用加工周期分析报表从采购订单创建到交货单完成的时间分析外协商绩效评估质量追溯看板将委外物料质量问题反向追溯到采购订单建立供应商质量评分模型库存动态监控实时显示已发料未回收的委外物料预警长期未关闭的委外订单 示例获取委外订单状态的函数模块 FUNCTION z_get_subcontract_status. SELECT vbeln, ebeln, create_date FROM zmmt0007 INTO TABLE DATA(lt_data) WHERE ebeln IN it_ebeln. 计算加工周期 LOOP AT lt_data ASSIGNING FIELD-SYMBOL(fs_data). fs_data-processing_days sy-datum - fs_data-create_date. ENDLOOP. ENDFUNCTION.在实际项目中这套增强方案已成功应用于汽车零部件行业帮助客户将委外业务的追溯效率提升70%以上。对于更复杂的场景可以考虑扩展ZMMT0007表结构加入工单号、批次号等关键字段构建更完整的数据链路。

相关文章:

SAP EWM委外采购实战:手把手教你用BADI增强打通订单与交货单的关联链路

SAP EWM委外采购增强实战:从业务痛点到代码落地的全链路设计 在SAP EWM的委外采购业务场景中,采购订单与交货单的关联关系缺失是许多企业面临的共性问题。当仓库管理系统需要追溯委外加工物料的完整生命周期时,标准功能往往无法提供足够的数据…...

接口自动化流程

1.需求分析 理解业务需求,了解接口所支持的业务场景和业务逻辑,根据业务需求,明确接口需要实现的具体功能,如数据的获取,修改,删除等操作,以及接口的输入输出要求,分析接口之间的依…...

手把手教你用MATLAB和DPABI处理rs-fMRI数据:从DICOM到ALFF的保姆级避坑指南

手把手教你用MATLAB和DPABI处理rs-fMRI数据:从DICOM到ALFF的保姆级避坑指南 当你第一次接触静息态功能磁共振成像(rs-fMRI)数据分析时,面对一堆DICOM格式的原始数据和复杂的处理流程,很容易感到无从下手。作为过来人,我完全理解这…...

三菱PLC ST语言编程进阶:GX WORKS3中的运算符与语法详解

1. ST语言编程基础回顾 在开始深入探讨GX WORKS3中的ST语言高级特性之前,我们先快速回顾一下基础知识。ST(Structured Text)语言是IEC 61131-3标准中定义的PLC编程语言之一,它采用类似Pascal的高级语言风格,特别适合处…...

MAX32664生物传感器驱动库详解:嵌入式生理参数快速集成方案

1. 项目概述SparkFun Bio Sensor Hub Library 是专为 Maxim Integrated(现属 Analog Devices)MAX32664 生物传感集线器(Bio Metric Hub IC)设计的嵌入式 C 语言驱动库。该库并非通用传感器抽象层,而是深度绑定 MAX3266…...

深度拆解 Redis ZSet 底层实现:从“紧凑排队”到“多级瞬移”

在 Redis 的世界里,为了把性能和内存利用率压榨到极致,底层实现往往是“看人下菜碟”。今天咱们就揭开 ZSet 的底裤,看看它到底是怎么从“紧凑排队”进化到“多级瞬移”的。 一、 是什么:ZSet 的“两副面孔” 首先纠正一个小插曲…...

Threads库:裸机与RTOS下的轻量级函数多实例并发框架

1. Threads 库深度解析:在裸机与 RTOS 环境下实现函数的多实例并发执行1.1 项目定位与工程价值“Threads”并非一个独立的实时操作系统(RTOS),而是一个轻量级、可移植的函数级多实例并发抽象层。其核心设计目标是:在不…...

Arduino:解决手动解压ESP32库到packages文件夹,但Arduino IDE还是无法找到ESP32的问题

在学习使用Arduino时,如果需要在Arduino IDE里找到ESP32S3 DEV Module,一种方法是点击开发板管理器,搜索ESP32库,点击自动安装(如图1),安装完成方可使用,但是因为网络的原因&#xf…...

深夜告警炸裂?这份Linux故障排查“作战地图”请收好肆

先唠两句:参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜,它是菜单(资源路径)的一部分。查询参数/dishes?spicytrue&typeSichuan -> 好比…...

不满意Oh My Zsh启动卡顿,来试试Starship吧裙

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

VC0706摄像头模块UART驱动与状态机设计详解

1. VC0706 Camera Shield 驱动技术深度解析 1.1 芯片级架构与硬件接口特性 VC0706 是由深圳中星微电子(Vimicro)推出的低功耗、高集成度 JPEG 编码图像处理 SoC,广泛应用于早期嵌入式视觉模块。RadioShack 推出的 VC0706 Camera Shield 是基…...

EPFramewrokAtmega:面向AVR的确定性嵌入式固件框架

1. 项目概述EPFramewrokAtmega 是一个面向 Atmel AVR 系列微控制器(特别是 ATmega328P、ATmega2560 等主流型号)的轻量级嵌入式固件框架,其设计目标并非替代 Arduino 生态,而是为追求确定性、资源可控性与底层可追溯性的专业嵌入式…...

014、分布式系统核心:一致性、可用性与分区容错

014、分布式系统核心:一致性、可用性与分区容错 深夜报警:订单状态丢了 上周三凌晨两点,手机突然狂震。监控告警显示,订单服务的双活机房出现数据不一致——同一订单在A机房显示“已支付”,在B机房却是“待付款”。业务部门紧急来电,用户已经投诉付款后订单没反应。 团…...

基于Python的科研管理系统毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在开发一款基于Python的科研管理系统,以实现科研项目管理、数据存储与分析、团队协作与沟通等功能。具体研究目的如下:提高科研项…...

Typecho完美实现回复可见功能

之前转载过这么一篇文章《typecho非插件实现回复可见功能》,可以实现回复可见功能,但是有个问题,在文章列表页展示文章缩略内容时,如果回复可见内容刚好在缩略内容的位置上时,就会暴露出来,同时Feed里面也会…...

基于Python的多媒体信息共享平台毕设

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于Python的多媒体信息共享平台,以解决当前多媒体信息共享过程中存在的诸多问题。具体而言,研究目的可概括为以…...

typecho按分类搜索文章

typecho根据分类搜索文章.jpg 之前我写的soso搜索增强插件其实已经能够根据分类进行搜索内容了,不过需要模板上进行配合,比如我们搜索分类id为2620下关于typecho的文章,需要传递分类id的参数给cat,让插件获取,比如这个…...

别再死记命令了!通过一个Packet Tracer静态路由实验,彻底搞懂‘下一跳’和‘出接口’的区别

别再死记命令了!通过Packet Tracer实验彻底搞懂静态路由的“下一跳”与“出接口” 刚接触网络配置时,很多人会陷入一个误区:把静态路由的配置命令当作魔法咒语来记忆。直到某天,当网络拓扑发生变化,或者需要在不同场景…...

3步揪出Windows热键小偷:Hotkey Detective终极使用指南

3步揪出Windows热键小偷:Hotkey Detective终极使用指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...

开源QMC解密工具深度解析:5分钟掌握音频格式转换核心技术

开源QMC解密工具深度解析:5分钟掌握音频格式转换核心技术 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 一键批量转换方法:跨平台音乐文件解锁方案…...

给STM32F429的RGB屏做个‘相册’:FATFS+软件解码JPG实战(避坑SD卡格式化)

STM32F429实战:构建安全高效的JPG图片浏览器 在嵌入式设备上实现图片浏览功能是许多项目的常见需求,尤其是当我们需要为产品添加图形界面或多媒体展示能力时。STM32F429凭借其强大的LTDC接口和DMA2D加速器,成为中高端嵌入式图形应用的理想选择…...

【JavaScript高级编程】拆解函数流水线 上衫

一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...

你的SSH密钥可能已经过期了噬

引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...

我试了四种去除 Gemini 水印的方法,整理成一篇实用对比撕

认识Pass层级结构 Pass范围从上到下一共分为5个层级: 模块层级:单个.ll或.bc文件 调用图层级:函数调用的关系。 函数层级:单个函数。 基本块层级:单个代码块。例如C语言中{}括起来的最小代码。 指令层级:单…...

Stripe 支付集成实战:Java后端核心API详解与避坑指南

1. 为什么选择Stripe支付集成? Stripe作为全球领先的在线支付解决方案,特别适合需要处理国际支付的电商或SaaS平台。我在多个跨境项目中采用Stripe后发现,其API设计非常开发者友好,尤其是对Java后端技术栈的支持相当完善。与国内支…...

大模型“表面公平”陷阱(GPT-4/Claude/Gemini三大模型在12类敏感属性上的隐性偏差对比白皮书)

第一章:大模型工程化中的模型公平性评估 2026奇点智能技术大会(https://ml-summit.org) 大模型在招聘筛选、信贷审批、司法辅助等高风险场景中部署前,必须系统性验证其对不同人口统计学群体的预测一致性。公平性不是静态属性,而是需在数据分…...

从telnet到ssh:银河麒麟系统远程管理方案对比与迁移指南

从telnet到ssh:银河麒麟系统远程管理方案对比与迁移指南 在数字化运维的浪潮中,远程管理技术如同系统管理员的"千里眼"和"顺风耳"。银河麒麟作为国产操作系统的代表,其安全性设计一直走在行业前沿。然而,许多…...

3步快速部署开源驾驶辅助系统FlowPilot

3步快速部署开源驾驶辅助系统FlowPilot 【免费下载链接】flowpilot flow-pilot is an openpilot based driver assistance system that runs on linux, windows and android powered machines. 项目地址: https://gitcode.com/gh_mirrors/fl/flowpilot FlowPilot是一款基…...

【内部泄露】某千亿参数大模型压缩技术栈(含自研GEMM-aware剪枝+动态bit-width量化),仅限本文完整复现

第一章:大模型工程化中的模型压缩算法对比 2026奇点智能技术大会(https://ml-summit.org) 模型压缩是实现大语言模型在边缘设备、低延迟服务及成本敏感场景中落地的关键工程环节。不同压缩路径在精度保留、推理加速比、部署兼容性与训练资源消耗上呈现显著权衡&…...

AXI总线协议---关键信号时序解析与实战应用

1. AXI总线协议基础与核心信号解析 AXI(Advanced eXtensible Interface)总线协议是ARM公司推出的高性能片上总线标准,广泛应用于现代SoC设计和FPGA开发中。我第一次接触AXI是在一个图像处理项目里,当时为了调试DMA传输问题&#x…...