增强点:MV45AFZZ
FORM userexit_move_field_to_vbep.
CHECK sy-tcode = 'VA02' OR sy-tcode = 'VA01'.
IF vbak-auart = 'Z022'.
DATA:configuration TYPE TABLE OF conf_out,
ls_configuration TYPE conf_out.
DATA lv_objectkey TYPE inob-cuobj.
DATA: lv_arktx TYPE char40.
DATA: lv_atwrt TYPE char40.
DATA: lv_atwrt2 TYPE char40.
CLEAR: lv_arktx,lv_atwrt,lv_atwrt2,lv_objectkey.
REFRESH configuration.
lv_objectkey = vbap-cuobj.
CALL FUNCTION 'VC_I_GET_CONFIGURATION'
EXPORTING
instance = lv_objectkey
language = sy-langu
iv_no_value_check = 'X'
iv_no_dialog = 'X'
TABLES
configuration = configuration
EXCEPTIONS
instance_not_found = 1
internal_error = 2
no_class_allocation = 3
instance_not_valid = 4
OTHERS = 5.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CLEAR ls_configuration.
READ TABLE configuration INTO ls_configuration WITH KEY atnam = 'Z0021'.
IF sy-subrc = 0.
lv_atwrt = ls_configuration-atwrt.
ENDIF.
CLEAR ls_configuration.
READ TABLE configuration INTO ls_configuration WITH KEY atnam = 'Z0003'.
IF sy-subrc = 0.
IF ls_configuration-atwrt IS NOT INITIAL.
DATA(lv_len) = strlen( ls_configuration-atwrt ) - 2.
lv_atwrt2 = ls_configuration-atwrt(lv_len).
REPLACE ALL OCCURRENCES OF ',' IN lv_atwrt2 WITH space.
CONDENSE lv_atwrt2 NO-GAPS.
ENDIF.
ENDIF.
SELECT SINGLE maktx INTO lv_arktx FROM makt WHERE matnr = xvbap-matnr.
CLEAR vbap-arktx.
vbap-arktx = lv_arktx && '\' && lv_atwrt && '\' && lv_atwrt2.
ENDIF.
SAPMV45A主程序
4001屏幕字段更新
PBO增加 MODULE
MODULE zmod_add_field_value OUTPUT.
CHECK sy-tcode = 'VA02' OR sy-tcode = 'VA01'.
IF vbak-auart = 'Z022'.
DATA:configuration TYPE TABLE OF conf_out,
ls_configuration TYPE conf_out.
DATA lv_objectkey TYPE inob-cuobj.
DATA: lv_arktx TYPE char40.
DATA: lv_atwrt TYPE char40.
DATA: lv_atwrt2 TYPE char40.
LOOP AT xvbap WHERE NOT matnr IS INITIAL.
CLEAR: lv_arktx,lv_atwrt,lv_atwrt2,lv_objectkey.
REFRESH configuration.
lv_objectkey = xvbap-cuobj.
CALL FUNCTION 'VC_I_GET_CONFIGURATION'
EXPORTING
instance = lv_objectkey
language = sy-langu
iv_no_value_check = 'X'
iv_no_dialog = 'X'
TABLES
configuration = configuration
EXCEPTIONS
instance_not_found = 1
internal_error = 2
no_class_allocation = 3
instance_not_valid = 4
OTHERS = 5.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CLEAR ls_configuration.
READ TABLE configuration INTO ls_configuration WITH KEY atnam = 'Z0021'.
IF sy-subrc = 0.
lv_atwrt = ls_configuration-atwrt.
ENDIF.
CLEAR ls_configuration.
READ TABLE configuration INTO ls_configuration WITH KEY atnam = 'Z0003'.
IF sy-subrc = 0.
IF ls_configuration-atwrt IS NOT INITIAL.
DATA(lv_len) = strlen( ls_configuration-atwrt ) - 2.
lv_atwrt2 = ls_configuration-atwrt(lv_len).
REPLACE ALL OCCURRENCES OF ',' IN lv_atwrt2 WITH space.
CONDENSE lv_atwrt2 NO-GAPS.
ENDIF.
ENDIF.
SELECT SINGLE maktx INTO lv_arktx FROM makt WHERE matnr = xvbap-matnr.
CLEAR xvbap-arktx.
xvbap-arktx = lv_arktx && '\' && lv_atwrt && '\' && lv_atwrt2.
MODIFY xvbap.
ENDLOOP.
ENDIF.
ENDMODULE.
自动生产申请单(销售订单计划行),申请单描述由销售订单带出