一.需求
采购申请项目新增”设备编号“、“外围单号”、“用途”字段。
二.实现
1.增强字段新增
在表EBAN的结构CI_EBANDB中增加增强字段
2.增强点
CMOD:MEREQ001
全局定义:函数组 XM02->ZXM02TOP
*&---------------------------------------------------------------------*
*& 包含 ZXM02TOP
*&---------------------------------------------------------------------*
DATA:gv_input TYPE flag.
DATA:gv_aktvt TYPE aktvt.
功能出口:
EXIT_SAPLMEREQ_001
*&---------------------------------------------------------------------*
*& 包含 ZXM02U01
*&---------------------------------------------------------------------*
TABLES:ci_ebandb.
DATA:i_mereq_item TYPE mereq_item.
CLEAR ci_ebandb.
" 获取单据修改状态
CALL METHOD im_req_item->get_activity
RECEIVING
re_aktvt = gv_aktvt.
CASE gv_aktvt.
WHEN 'A'.
gv_input = space.
WHEN 'V'.
gv_input = 'X'.
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
*&---------------------------------------------------------------------*
*& 包含 ZXM02U03
*&---------------------------------------------------------------------*
DATA:i_mereq_item TYPE mereq_item.
IF im_req_item IS NOT 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 = abap_true.
ENDIF.
屏幕出口:(也就是我们画屏幕的地方)
屏幕111 注意勾选子屏幕
*----------------------------------------------------------------------*
***INCLUDE ZXM02O01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0111 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0111 OUTPUT.
IF sy-tcode = 'ME53N'.
LOOP AT SCREEN.
screen-input = '0'.
MODIFY SCREEN.
ENDLOOP.
ELSEIF sy-tcode = 'ME51N' OR sy-tcode = 'ME52N'.
LOOP AT SCREEN.
IF screen-name+0(10) = 'CI_EBANDB-'.
screen-input = '1'.
MODIFY SCREEN.
ELSEIF screen-name+0(10) = 'CI_EBANDB-'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
最后CMOD激活项目!
出口EXIT_SAPLMEREQ_010 这里面可写一些屏幕校验逻辑
三.ME52N展示
四.BAPI增强字段传值
结构增加增强字段:BAPI_TE_MEREQITEM、BAPI_TE_MEREQITEMX
注意:BAPI_TE_MEREQITEMX增强字段类型为BAPIUPDATE
相关部分代码:
"增强
DATA:ls_extensionin TYPE bapiparex,
lt_extensionin TYPE TABLE OF bapiparex.
DATA:ls_bapi_te_mereqitem TYPE bapi_te_mereqitem,
ls_bapi_te_mereqitemx TYPE bapi_te_mereqitemx.
* 增强字段
ls_bapi_te_mereqitem-preq_item = lv_bnfpo.
ls_bapi_te_mereqitem-zsbbh = <value>-zsbbh.
ls_extensionin-structure = 'BAPI_TE_MEREQITEM'.
ls_extensionin-valuepart1 = ls_bapi_te_mereqitem.
APPEND ls_extensionin TO lt_extensionin.
CLEAR ls_extensionin.
ls_bapi_te_mereqitemx-preq_item = lv_bnfpo.
ls_bapi_te_mereqitemx-zsbbh = abap_true.
ls_extensionin-structure = 'BAPI_TE_MEREQITEMX'.
ls_extensionin-valuepart1 = ls_bapi_te_mereqitemx.
APPEND ls_extensionin TO lt_extensionin.
CLEAR ls_extensionin.
CALL FUNCTION 'BAPI_PR_CREATE'
EXPORTING
prheader =
prheaderx =
IMPORTING
number =
TABLES
return =
pritem =
pritemx =
praccount =
praccountx =
extensionin = lt_extensionin.
总结
相关ME51N采购申请行屏幕增强,傻瓜式步骤。