一、前言前两天笔者对接了一项关于生产订单委外 BOM 业务场景需求维护委外 BOM 时需要使用到生产订单组件概览中RESBD-BEIKZ字段用于界定组件供应来源与物料所有权该字段可通过 CS01、CS02 维护 BOM 主数据完成预设。实际生产补料等业务中原有 BOM 带出的组件行规定禁止编辑只能新建补料行项目。但系统默认又将新增行的 BEIKZ 字段锁定无法手动修改。本文将通过隐式增强方案实现该字段编辑权限的放开。二、“物料供应标识”作用RESBD-BEIKZ 是生产订单组件的核心控制字段决定物料 “谁提供、谁所有、是否进库存、是否算成本”。标准功能在补料场景的灰显限制是委外业务的常见卡点。使用 CO01 / CO02 进入生产订单→单击“组件”→双击行项目进入组件概览。三、实现开发步骤1、打开生产订单组件屏幕概览a. 进入 CO01/ CO02 → 点击组件 → 双击行项目2、 点开屏幕技术信息a. 鼠标放在 “物料供应标识” 单击按下 F1 键点击“技术信息”b. 可以在弹窗中分别看到屏幕字段RESBD-BEIKZ、程序名称SAPLCOMD以及屏幕编号0110将它们记下来。3、打开 SE38输入程序名 SAPLCOMDa. 点击 “显示”b. 点击 “显示对象列表”c.点击屏幕 → 0110 → 通过模块名称命名可以判断大概率是在 SCREEN_MODIFY 中可以做增强。经过 Debug 测试确实是在这里4、创建隐式增强a. 双击进入SCREEN_MODIFY模块的源码部分点击菜单栏 “编辑” → 增强操作 → 显示隐式增强。b. 之后可看到源码中有如下的标记鼠标点击放在这里双引号的位置点击“增强”c. 依次点击“创建” → “代码” → “创建增强实施”。d. 填写增强实施、短文本。5、插入增强实施代码在创建的 “ENHANCEMENT 1 ZPPE012” 中编写实施代码使屏幕 RESBD-BEIKZ 字段可编辑LOOP AT SCREEN. IF screen-name RESBD-BEIKZ. 仅生产订单【修改模式CO02】可编辑 IF sy-tcode CO01 OR sy-tcode CO02. screen-input 1. 可输入 screen-active 1. 显示 显示模式CO03 保持灰色 ELSEIF sy-tcode CO03. screen-input 0. ENDIF. MODIFY SCREEN. EXIT. ENDIF. ENDLOOP.四、效果测试使用 CO01 / CO02 事务码进入时物料供应标识已可以修改。搞定
【ABAP】SAP 计划订单/生产订单 RESBD-BEIKZ(物料供应标识)灰显问题解决 —— 隐式增强实现 CO01/CO02 字段可编辑
发布时间:2026/5/26 22:52:13
一、前言前两天笔者对接了一项关于生产订单委外 BOM 业务场景需求维护委外 BOM 时需要使用到生产订单组件概览中RESBD-BEIKZ字段用于界定组件供应来源与物料所有权该字段可通过 CS01、CS02 维护 BOM 主数据完成预设。实际生产补料等业务中原有 BOM 带出的组件行规定禁止编辑只能新建补料行项目。但系统默认又将新增行的 BEIKZ 字段锁定无法手动修改。本文将通过隐式增强方案实现该字段编辑权限的放开。二、“物料供应标识”作用RESBD-BEIKZ 是生产订单组件的核心控制字段决定物料 “谁提供、谁所有、是否进库存、是否算成本”。标准功能在补料场景的灰显限制是委外业务的常见卡点。使用 CO01 / CO02 进入生产订单→单击“组件”→双击行项目进入组件概览。三、实现开发步骤1、打开生产订单组件屏幕概览a. 进入 CO01/ CO02 → 点击组件 → 双击行项目2、 点开屏幕技术信息a. 鼠标放在 “物料供应标识” 单击按下 F1 键点击“技术信息”b. 可以在弹窗中分别看到屏幕字段RESBD-BEIKZ、程序名称SAPLCOMD以及屏幕编号0110将它们记下来。3、打开 SE38输入程序名 SAPLCOMDa. 点击 “显示”b. 点击 “显示对象列表”c.点击屏幕 → 0110 → 通过模块名称命名可以判断大概率是在 SCREEN_MODIFY 中可以做增强。经过 Debug 测试确实是在这里4、创建隐式增强a. 双击进入SCREEN_MODIFY模块的源码部分点击菜单栏 “编辑” → 增强操作 → 显示隐式增强。b. 之后可看到源码中有如下的标记鼠标点击放在这里双引号的位置点击“增强”c. 依次点击“创建” → “代码” → “创建增强实施”。d. 填写增强实施、短文本。5、插入增强实施代码在创建的 “ENHANCEMENT 1 ZPPE012” 中编写实施代码使屏幕 RESBD-BEIKZ 字段可编辑LOOP AT SCREEN. IF screen-name RESBD-BEIKZ. 仅生产订单【修改模式CO02】可编辑 IF sy-tcode CO01 OR sy-tcode CO02. screen-input 1. 可输入 screen-active 1. 显示 显示模式CO03 保持灰色 ELSEIF sy-tcode CO03. screen-input 0. ENDIF. MODIFY SCREEN. EXIT. ENDIF. ENDLOOP.四、效果测试使用 CO01 / CO02 事务码进入时物料供应标识已可以修改。搞定