> 文章列表 > SAP批次主数据增强屏幕增强<转载>

SAP批次主数据增强屏幕增强<转载>

SAP批次主数据增强屏幕增强<转载>

原文链接:https://blog.csdn.net/hustliangchen/article/details/111163361
msc1n/msc2n/msc3n 批次增强

这几个事务码的主程序为SAPLCHRG,在如下图界面上有两块地方是可以做增强所预留的子屏幕,其中2是一个tab页签的子屏幕。注意版本较老的可能没有这个增强点。
SAP批次主数据增强屏幕增强<转载>
增强点为ES_BATCH_MASTER,可以se18查看详情,可以看到示例类CL_EX_VB_BM_ADD_SCREEN_FIELDS,

可以看到可增强的子屏幕,下图第一行就是上图基本数据2里面的子屏幕,下图第二行就是上图tab页签,2999为SAPLCHRG里面预留的填充空屏幕
SAP批次主数据增强屏幕增强<转载>
第一步,为mcha和mch1都append上客制化字段(是否要都append我不确定,可能要参考当前配置的批次层级:批次为物料级别的即对应mch1表时,mch1肯定要append),append标准表字段zz或yy开头。另外也可以另建一张自建表主键类似mcha,自建表在下面badi增强时要进行read和save,这种方式本文不展示。
SAP批次主数据增强屏幕增强<转载>
第二步,创建一个函数组,客制化子屏幕就放在这里,跟一般的屏幕增强一样。
SAP批次主数据增强屏幕增强<转载>

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批次主数据增强屏幕增强<转载>
下面是实施类的方法简要说明

方法 功能
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'EXPORTINGis_mcha  = is_mchaiv_aktyp = iv_aktyp. "H新建 A显示 V修改ENDMETHOD.METHOD if_bm_add_screen_fields~after_custom_screen_pai.CALL FUNCTION 'ZMMFM001_AFTER_9901_PAI'IMPORTINGes_mcha = es_mcha.ENDMETHOD.