SAP批次主数据增强

msc1n/msc2n/msc3n 批次增强

这几个事务码的主程序为SAPLCHRG,在如下图界面上有两块地方是可以做增强所预留的子屏幕,其中2是一个tab页签的子屏幕。注意版本较老的可能没有这个增强点。

SAP批次主数据增强_第1张图片

 

增强点为ES_BATCH_MASTER,可以se18查看详情,可以看到示例类CL_EX_VB_BM_ADD_SCREEN_FIELDS,

可以看到可增强的子屏幕,下图第一行就是上图基本数据2里面的子屏幕,下图第二行就是上图tab页签,2999为SAPLCHRG里面预留的填充空屏幕

 

SAP批次主数据增强_第2张图片

第一步,为mcha和mch1都append上客制化字段(是否要都append我不确定,可能要参考当前配置的批次层级:批次为物料级别的即对应mch1表时,mch1肯定要append),append标准表字段zz或yy开头。另外也可以另建一张自建表主键类似mcha,自建表在下面badi增强时要进行read和save,这种方式本文不展示。

第二步,创建一个函数组,客制化子屏幕就放在这里,跟一般的屏幕增强一样。

SAP批次主数据增强_第3张图片

DATA:gs_mcha  TYPE mcha,
     gv_aktyp TYPE aktyp. "与当前编辑查看状态有关

FUNCTION zmmfm001_after_9901_pai.  "pai后最新值从本函数组传到msc*n主程序
  es_mcha = gs_mcha.
ENDFUNCTION.

FUNCTION zmmfm001_before_9901_pbo. "pbo前值从msc*n主程序传递到本函数组
   gs_mcha = is_mcha.
  gv_aktyp = iv_aktyp.
ENDFUNCTION.

第三步,实现增强ES_BATCH_MASTER可在se19,或spro-批次管理--主数据里面点执行按钮。

实施创建好之后(实施类可以复制示例类),在下图填写子屏幕调用的屏幕,就是第二步我们建的屏幕

SAP批次主数据增强_第4张图片

下面是实施类的方法简要说明

AFTER_CUSTOM_SCREEN_PAI

After custom subscreen PAI processing

BEFORE_CUSTOM_SUBSCREEN_PBO

客制屏幕显示前

SAVE_DATA

READ_DATA

INITIALIZE_DATA

Initialize custom data

CHECK_DATA_CHANGED

Check changed custom data

SET_TABSTRIP_NAME

设置最上面图中2处tab页签的文本

BEFORE_CUSTOM_SUBSCREEN_PAI

客制屏幕动作后

如果是mch1/mcha上面直接append的字段只需要实现下面两个方法,read和save有系统自己实现。如果是自建表那么需要上表中save_data和read_data来处理

  METHOD if_bm_add_screen_fields~before_custom_subscreen_pbo.
    CALL FUNCTION 'ZMMFM001_BEFORE_9901_PBO'
      EXPORTING
        is_mcha  = is_mcha
        iv_aktyp = iv_aktyp. "H新建 A显示 V修改
  ENDMETHOD.
  
 METHOD if_bm_add_screen_fields~after_custom_screen_pai.
    CALL FUNCTION 'ZMMFM001_AFTER_9901_PAI'
      IMPORTING
        es_mcha = es_mcha.
  ENDMETHOD. 

 

 

 

 

你可能感兴趣的:(SAP)