FORM userexit_move_field_to_vbap.
VA01增加明细
*----------BEGIN ZHT401 20190225 -----------------------
*将程序ZSDR002中的明细条目赋值到VA01界面明细中
*
DATA: GTAB LIKE STANDARD TABLE OF zssdr002_imp WITH HEADER LINE.
DATA:TCODE(20) TYPE C.
CLEAR TCODE.
REFRESH GTAB.
IMPORT GTAB TCODE FROM MEMORY ID 'ZSDR002'.
IF TCODE = 'ZSDR002'." AND sy-ucomm EQ 'SICH'
FREE MEMORY ID 'ZSDR002'.
LOOP AT GTAB.
CLEAR: vbap.
*-Initialize workareas for VBAP and VBEP
PERFORM vbap_unterlegen(sapfv45p).
PERFORM vbep_unterlegen(sapfv45e).
*-Populate material number and quantity
XVBAP-UEPOS = GTAB-POSNR.
vbap-matnr = GTAB-matnr.
VBAP-WGRU2 = GTAB-POSNR.
rv45a-kwmeng = GTAB-MENGESY.
svbak-tabix = '1'.
*-Call standard performs to populate material details.
*-Perform for material validations and details
PERFORM vbap-matnr_pruefen(sapfv45p) USING charx sy-subrc.
*-Perform for item category determination. This will take care of substitution items if any for this material.
PERFORM vbap-pstyv_pruefen(sapfv45p).
*-Perform for filling VBAP with default values from configuration and master tables
PERFORM vbap_fuellen(sapfv45p).
PERFORM vbap-matnr_null_pruefen(sapfv45p).
PERFORM vbep-wmeng_setzen(sapfv45e).
*-Perform to check sales unit
PERFORM vbap-vrkme_pruefen(sapfv45p) USING charx
CHANGING sy-subrc sy-msgid sy-msgty sy-msgno
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*-Perform to update VBAP values
PERFORM vbap_bearbeiten(sapfv45p).
*-Perform for filling VBEP with default values. This will take care of schedule lines of the item
PERFORM vbep_fuellen(sapfv45e).
**-Perform to check quantity
PERFORM vbep-wmeng_pruefen(sapfv45e) USING charx
CHANGING sy-subrc sy-msgid sy-msgty sy-msgno
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
**-Perform to update VBEP values
PERFORM vbep_bearbeiten(sapfv45e).
**-Perform to fill conditions and pricing data
PERFORM vbap_bearbeiten_ende(sapfv45p).
ENDLOOP.
ENDIF.
*-----------------end--------------------------