SAP MIGO 传输过账时接收物料字段控制

本文讨论了如何在SAP系统中通过移动类型控制库存转换操作,特别是如何防止使用411移动类型变更物料。通过删除411移动类型的UMMAT字段在‘货物移动设置(MIGO)-每个移动类型的字段选择’中实现了这一控制。同时,提到了透明表MIGO_CUST_FIELDS用于查看移动类型的相关配置,并指出输入项为必填时接收物料需手动输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        通过移动类型如309可以在MIGO中将一个物料库存转为另一个物料的库存,这种相当于盘盈亏的行为在实际操作中是需要严格管控的。可以通过权限控制设置哪些移动类型是被允许操作的,但是如411、413这些用来变更特殊库存类型的移动类型也能用来实现此操作,仓库需要用这些移动类型进行如寄售库存领用、绑定或解绑销售订单等操作,无法通过权限管控的方式限制使用。

        移动类型311和411的MIGO屏幕如下图所示,可以看到411移动类型下接受物料是可以输入的,而移动类型311不可以,故考虑通过屏幕字段控制来实现411移动类型无法变更物料。

         开始想到的是,在SPRO->物料管理->库存管理和实际库存->发货/转储记帐->定义屏幕格式中进行设置,但测试后发现屏幕没有变化。

        后来尝试配置SPRO->物料管理->库存管理和实际库存->货物移动设置 (MIGO)->每个移动类型的字段选择,将411移动类型对应的UMMAT字段删掉后,达到了想要的效果。

        考虑想知道哪些移动类型的接收物料是可以更改的,在此路径下查看不方便,通过透明表MIGO_CUST_FIELDS可以看到相关的配置情况。进一步发现:输入项为必填(+)时,接收物料不会自动从发出物料栏位带入,需要手工输入。

 

 

 

 

 

 

<think>好的,用户想了解SAP MIGO的增强功能或实现方法,特别是自定义配置。首先,我需要回忆一下SAPMIGO事务代码的作用,它主要用于物料移动的过账,比如收货、发货等。增强功能通常涉及用户出口、BADI或者屏幕增强。 根据提供的引用内容,引用[3]提到MIGO屏幕增强,尝试修改自定义表但无效,因为更新任务中的提交早于标准逻辑,导致数据被覆盖。这说明在增强需要注意数据更新的机。引用[4]展示了一个更新函数模块的例子,使用IN UPDATE TASK来确保在正确的机提交数据,避免覆盖。 接下来,用户可能需要知道具体的实现步骤。首先,BADI是常用的增强方式,比如使用MB_MIGO_BADI。然后,屏幕增强可以通过SPRO配置或隐式增强添加字段,但需要处理数据存储,比如附加表。另外,出口程序或用户出口也可能用到,比如MIGF0001。 还要考虑配置部分,比如在SPRO中设置国家或地区,如引用[1]提到的SPRO-T005S。这可能与字段的输入验证有关,比如工厂或库存地点需要根据地区配置。 需要注意的难点包括数据更新的顺序,确保自定义表的更新在标准表之后,避免被覆盖。此外,字段校验的逻辑需要与业务需求一致,并处理可能的错误消息。 最后,生成相关问题要覆盖实现方式、配置、数据更新处理和常见错误,帮助用户全面理解。</think>关于SAP MIGO增强功能的实现方式,可通过以下方法实现: ### 一、增强实现方式 1. **BADI增强(MB_MIGO_BADI)** 在事务代码SE18中定义BADI实现,通过`IF_EX_MB_MIGO_BADI`接口拦截MIGO操作流程。例如在`BEFORE_SAVE`方法中可添加自定义校验逻辑: ```abap METHOD if_ex_mb_migo_badi~before_save. " 自定义校验逻辑(如检查移动类型与工厂关系) IF sy-tcode = 'MIGO' AND <字段校验失败>. MESSAGE E398(00) WITH '自定义错误提示'. ENDIF. ENDMETHOD. ``` 此方法可直接影响MIGO事务的提交过程[^3][^4]。 2. **屏幕增强(Screen Exit)** 在SPRO路径`物料管理 > 库存管理和实际库存 > 货物移动 > 货物移动的屏幕设置`中配置: - 使用隐式增强点添加自定义字段到MIGO界面 - 通过子屏幕增强(SUBSCREEN)在MIGO界面插入新页签 - 需搭配`CL_EXITHANDLER`类处理屏幕字段逻辑[^3] 3. **数据库表增强** 在标准表`MKPF`/`MSEG`附加结构(Append Structure)或创建自定义表(如`ZT_MIGO_ITEM`),通过UPDATE FUNCTION MODULE实现数据持久化: ```abap FUNCTION Z_MIGO_UPDATE. " IN UPDATE TASK模块中写入自定义表 INSERT ztmigo_item FROM TABLE it_migo_data. IF sy-subrc <> 0. RAISE error_update. ENDIF. ENDFUNCTION. ``` 需注意数据提交顺序避免被标准逻辑覆盖[^4] ### 二、关键配置路径 | 配置类型 | 事务代码 | 路径 | |-----------------|----------|----------------------------------------------------------------------| | 国家/地区设置 | SPRO | SAP NetWeaver > 常规设置 > 设置国家 > 插入地区(地方管理单元)[^1] | | 字段状态控制 | OMT4N | 物料管理 > 库存管理和实际库存 > 货物移动 > 定义字段的自动设置 | | 移动类型增强 | OMJJ | 物料管理 > 库存管理和实际库存 > 移动类型 > 复制/更改移动类型 | ### 三、数据更新处理要点 1. **更新顺序控制** 自定义表的更新必须声明为`IN UPDATE TASK`且通过`COMMIT WORK`触发,确保在标准表`MKPF/MSEG`更新后执行[^3] 2. **增强字段存储** 若新增字段需与物料凭证关联,建议: - 使用`MSEG`附加结构存储行项目级数据 - 创建独立自定义表需包含`MBLNR`(物料凭证号)和`ZEILE`(行号)作为外键 3. **增强实施验证** 通过ST05跟踪SQL语句,验证自定义表与标准表的更新顺序是否符合`UPDATE MODULE`执行顺序 ### 四、典型错误场景 1. **字段显示但未存储** 需检查屏幕字段是否绑定到ABAP字典结构,并在`PBO/PAI`模块实现数据传输 2. **增强数据被覆盖** 确保UPDATE函数模块在标准表提交后执行,避免在`BEFORE_SAVE`阶段直接写库
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值