SAP中如何查看BOM的修改记录呢?

本文介绍了两种在SAP系统中查看BOM(物料清单)修改记录的方法。方案一是通过SE38运行RCS00100,输入相关参数,可以查看到用户对BOM的所有变更历史。方案二是利用SE11/SE12,通过CDHDR和CDPOS表来显示Header和item级别的变更。此外,还提及了一个未测试的ABAP程序开发思路,用于生成BOM修改日志报表。

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

方案一:se38:RCS00100,F8执行(DATUM表示开始日期,tabname:BOM的Header,填写STKO;如落实到item级别,填写STPO)。然后再执行即可看到00104708该用户所做得创建,修改,删除bom得所有记录(哈哈很简单把,我也觉得很简单,而且结果确实看到了,我所做得关于bom得每一笔数据,测试成功!)

方案二:se11/se12:CDHDR【CDHDR是记录Header层面的Change,CDPOS记录item级别的Change】(实用程序-表内容-显示)

 

<think>我们正在处理一个关于SAP系统中BOM(物料清单)管理的问题。用户想知道如何查找修改BOM抬头的增强点。根据提供的引用,我们可以总结如下:引用[1]提到了使用BAPI`CSAP_MAT_BOM_MAINTAIN`来修改BOM抬头,但需要搭配`CALO_INIT_API`使用。引用[2]介绍了使用事务代码CEWB批量修改BOM,包括抬头信息。引用[3]则提到了一个BADI(BusinessAdd-In)`BOM_UPDATE`,用于在BOM创建或修改时增强,例如检查重复组件。引用[4]展示了生产订单抬头参数变更时自动刷新工序字段的增强示例。因此,针对修改BOM抬头的增强点,我们可以从以下几个方面考虑:1.**使用BADI(业务增强)**:SAP提供了标准的BADI用于BOM的创建和修改。例如,引用[3]提到的`BOM_UPDATE`就是用于BOM更新时的增强。我们可以在这个BADI中实现自定义逻辑,比如在修改BOM抬头时进行校验或自动填充某些字段。2.**用户出口(UserExit)**:除了BADI,SAP还可能提供用户出口。用户出口是SAP预先留好的空子程序,用户可以在其中添加自定义代码。不过,在BOM管理方面,BADI更为常见。3.**隐式增强点**:如果标准程序中没有显式的增强点(如BADI或用户出口),我们还可以考虑使用隐式增强点。隐式增强点可以在程序、函数组、屏幕等位置插入自定义代码。4.**BAPI或函数模块的增强**:如果修改BOM抬头是通过BAPI或函数模块进行的(如引用[1]中的`CSAP_MAT_BOM_MAINTAIN`),我们可以查看这些函数模块是否有增强点(例如,使用函数模块出口或BADI)。具体到查找修改BOM抬头的增强点,我们可以按照以下步骤进行:###步骤1:确定修改BOM抬头的标准事务代码修改BOM抬头的标准事务代码通常是CS01(创建)、CS02(修改)。因此,我们可以从这些事务代码的程序中查找增强点。###步骤2:查找BADI使用事务代码SE18(或者SE19测试实现),查找与BOM相关的BADI。根据引用[3],`BOM_UPDATE`是一个直接的BADI,它可以在BOM保存前或保存后执行自定义逻辑。这个BADI的方法包括:-`Check_Item`:用于检查项目数据-`Change_At_Save`:在保存时修改数据-`Post_Delete`:删除后处理-`Post_Save`:保存后处理我们可以在`Change_At_Save`方法中编写代码来修改或检查BOM抬头数据。###步骤3:查找用户出口使用事务代码SMOD和CMOD查找用户出口。与BOM相关的用户出口可能包括:-`CS000001`(BOM处理:用户出口)-`CS000002`(BOM处理:项目检查)-等等###步骤4:隐式增强点如果上述增强点都不满足需求,我们可以考虑隐式增强点。使用事务代码SE38打开程序,然后通过菜单“编辑”->“增强操作”->“显示隐式增强选项”来查找可以插入代码的位置。对于BOM修改,相关程序可能包括:-`SAPLCSDI`(BOM维护的对话模块)-`SAPLCSD`(BOM维护)在程序`SAPLCSDI`中,我们可以关注`MODULE``EXIT_SAPLCSDI_XXX`,其中XXX是三位数字,这些通常是用户出口。另外,我们也可以查找程序中的隐式增强点,例如在`PBO`(ProcessBeforeOutput)和`PAI`(ProcessAfterInput)模块中。###步骤5:在BAPI中增强如果修改是通过BAPI进行的,我们可以检查BAPI是否有增强点。例如,在`CSAP_MAT_BOM_MAINTAIN`中,我们可以查找是否有BADI或出口。通常,BAPI内部可能会调用BADI,或者我们可以通过查找函数组中的增强点来实现。###示例:使用BADIBOM_UPDATE根据引用[3],我们可以在BADI`BOM_UPDATE`中实现检查重复组件的逻辑。同样,我们可以在这个BADI中修改BOM抬头数据。例如,在方法`CHANGE_AT_SAVE`中,我们可以访问抬头数据并进行修改。实现步骤:1.使用SE19创建BADI`BOM_UPDATE`的实现(Implementation)。2.在方法`CHANGE_AT_SAVE`中编写代码。该方法有一个参数`IS_STKO`,它包含了BOM抬头的数据。我们可以修改这个结构的内容来改变BOM抬头。3.激活实现。注意:在修改`IS_STKO`时要小心,确保不破坏原有逻辑。###总结要查找修改BOM抬头的增强点,我们首先应该考虑标准BADI`BOM_UPDATE`。如果这个BADI不能满足需求,再考虑用户出口或隐式增强点。另外,根据修改BOM抬头的方式(通过事务代码CS02还是BAPI),我们可能需要针对不同的程序位置进行增强。下面,我们将根据上述分析生成相关问题。</think>### 如何在 SAP 中查找修改 BOM 抬头的增强点 在 SAP 系统中,修改 BOM 抬头的增强点主要通过 **BADI(Business Add-In)** 实现。以下是具体方法和关键增强点: --- #### 1. **标准 BADI:`BOM_UPDATE`** 这是最直接的增强点,专用于 BOM 创建/修改(CS01/CS02)时的校验和更新[^3]。 **实现步骤**: - 事务码 `SE18` 查找 BADI `BOM_UPDATE` - 在方法 `CHECK_ITEM` 或 `CHANGE_AT_SAVE` 中编写逻辑 - **可操作抬头字段**:通过参数 `IS_STKO` 访问 BOM 抬头数据 ```abap METHOD if_ex_bom_update~change_at_save. " 修改抬头字段示例:更改 BOM 描述 is_stko-bom_text = '新BOM描述'. ENDMETHOD. ``` --- #### 2. **隐式增强点:BOM 维护程序** 若 BADI 不满足需求,可在标准程序添加隐式增强: - **程序名**:`SAPLCSDI`(BOM 维护主程序) - **关键子程序**: - `SAVE_BOM`(保存逻辑) - `BO_HEADER_MAINTAIN`(抬头处理) **操作步骤**: 1. 事务码 `SE38` 打开程序 `SAPLCSDI` 2. 通过菜单路径 **编辑 → 增强 → 增强点** 插入自定义代码 --- #### 3. **BAPI 增强点** 若通过 BAPI `CSAP_MAT_BOM_MAINTAIN` 修改(引用[1]),可增强: - 函数组 `CNAL01` 中的子例程 - 在调用 BAPI 前/后添加校验逻辑 --- ### 关键注意事项 1. **字段权限**: BOM 抬头字段(如替代 BOM、有效期)需在 `STKO` 表结构中确认技术名称[^1][^3]。 2. **变更记录**: 修改抬头时需提供变更编号 (`AENNR`),确保变更记录可追溯[^1]。 3. **批量修改**: 使用事务码 `CEWB` 批量修改时,增强逻辑需兼容批量处理场景[^2]。 --- ### 操作示例:通过 BADI 检查重复组件 ```abap METHOD if_ex_bom_update~check_item. " 检查新组件是否已存在 LOOP AT it_stpo ASSIGNING FIELD-SYMBOL(<ls_stpo>). IF <ls_stpo>-idnrk = is_new_item-idnrk. MESSAGE e001(zbom) WITH '组件已存在'. " 自定义错误消息 ENDIF. ENDLOOP. ENDMETHOD. ``` > **提示**:激活增强后需测试事务码 `CS02` 的修改流程,确保逻辑触发且不影响标准功能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值