ME51n,ME52n,ME53n屏幕增强

这篇博客介绍了如何在SAP中通过事务码SE11、CMOD和SMOD对ME51n进行增强,添加自定义字段到EBAN表,并实现数据的输入、保存和显示。主要步骤包括创建结构,添加增强,绘制屏幕,编写代码以处理输入和输出数据,以及激活相关功能。博客提供了详细的代码示例,展示了如何在ME51n等事务码中实现客户数据Tab页。

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

使用增强:MEREQ001 购买申请中的客户自有数据

1、如果需要向PR中加入自定义字段,事务码se11,打开透明表EBAN,双击include:CI_EBANDB,创建结构CI_EBANDB,维护自定义的字段。
image

2、事务码CMOD create project:ZMMpr001,在Enhancement assignment中添加增强MEREQ001,保存。

3、事务码smod:MEREQ001,打开如下图,

image

有三个function module,还有screen area,可知screen :0111便是预留的屏幕,可以在其函数组中创建screen 0111,然后在其上画一些需要的字段栏位就ok了。
双击其中一个function module,然后点击display object list按钮在这里插入图片描述
,显示如下图
image

在函数组XM02中create screen 0111,然后在其上画一些需要的字段栏位,注意0111设置为subscreen。

激活,CMOD中激活ZMMpr001,此时在事务码ME51n中就能看到多了一个客户数据tab页,相应me52n,me53n等也有。
image

到此为止,屏幕做好了,但是要在屏幕栏位上输入数据并能保存到透明表,及显示的时候能从透明表读出到屏幕栏位,就需要在上述三个function module中写代码。

4、在函数组XM02中,有include:ZXM02TOP,目前是空的,create it,添加代码:

data : gv_trtyp type aktvt.
DATA: FL_INPUT TYPE FLAG.

激活EXIT_SAPLMEREQ_001中的include添加如下代码:

TABLES : ci_ebandb.
DATA : i_mereq_item TYPE mereq_item.
CALL METHOD im_req_item->get_activity
  RECEIVING
    re_aktvt = gv_trtyp.
CASE gv_trtyp.
WHEN 'A'.
    fl_input = space. "Output only
WHEN 'V'.
    fl_input = 'X'.         "Input/Output
ENDCASE.
IF im_req_item IS INITIAL.
CLEAR: ci_ebandb.
ELSE.
  i_mereq_item = im_req_item->get_data( ).
MOVE-CORRESPONDING i_mereq_item TO ci_ebandb.
ENDIF.

激活EXIT_SAPLMEREQ_003中的include,添加下面代码:

DATA : i_mereq_item TYPE mereq_item.
IF NOT im_req_item IS INITIAL.
  i_mereq_item = im_req_item->get_data( ).
MOVE-CORRESPONDING ci_ebandb TO i_mereq_item .
CALL METHOD im_req_item->set_data( i_mereq_item ).
  ex_changed = 'X'.
ENDIF.

最后对上述建立的subscreen 0111添加PBO,如下代码:

*----------------------------------------------------------------------*
***INCLUDE ZXM02O01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module STATUS_0111  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0111 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.
CHECK fl_input IS INITIAL.
LOOP AT SCREEN.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.                " STATUS_0111  OUTPUT

OK,到此为止,ME51n等的屏幕增强就完成了,屏幕0111上栏位可以保存到eban中,修改,显示等。
这是比较简单的逻辑,如果有其他复杂的要求,可以对上述代码大做文章。

### 设置和应用筛选条件 在SAP系统中使用`ME51N`事务代码创建或修改采购申请时,可以通过多种方式设置和应用筛选条件来提高效率并满足特定业务需求。 #### 使用标准筛选选项 当进入`ME51N`界面后,默认会显示一系列的标准筛选字段,如公司代码、工厂、采购组等。这些预设的筛选项可以帮助快速定位所需的采购申请记录[^3]。 ```abap CALL TRANSACTION 'ME51N' ``` #### 自定义扩展筛选条件 对于更复杂的查询需求,可以在选择屏幕上通过点击“更多选项”按钮展开额外的过滤器。这里可以添加诸如交期、交货时间和释放时间这样的动态参数作为筛选依据。特别是交期减去交货时间等于释放时间这一逻辑,能够帮助确保采购员有足够的时间处理审批流程。 #### 增强现有字段与引入新字段 如果现有的筛选字段无法完全覆盖业务场景,则可通过增强功能模块的方式向`ME51N`的选择屏幕增加新的字段。这通常涉及到ABAP编程以及对相应视图(View)或者透明表(Transparent Table)的操作。例如,在物料管理下的库存管理和实际库存部分配置报表以支持自定义字段的选择[^2]。 #### 实际案例中的灵活运用 考虑到不同供应商可能带来的差异影响——比如本地供应商尽管成本较高却能提供更快捷的服务响应速度——可以根据具体应用场景调整货源确定策略。这意味着在某些紧急情况下,即使不是最优价格方案也可能被采纳,只要它能满足即时性的供货要求[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值