SE19
说明,非教程,所以控制点如下。
1 价格和信息记录不符不能控制
2 反审批、ZUB订单、无价值、自定义表某用户名给'X'跳出增强
3 Z005 退货订单入库不能修改价格(因为小数点的问题,净值差小于0.03 不算修改价格,如果用原值就比价麻烦了)
METHOD if_ex_me_process_po_cust~check.
IF sy-uname EQ 'WXJ'.
EXIT.
ENDIF.
* d
DATA: lv_bname TYPE zmmt999-bname .
CLEAR lv_bname .
SELECT SINGLE bname INTO lv_bname
FROM zmmt999
WHERE bname = sy-uname
AND mark EQ 'X' .
IF lv_bname IS NOT INITIAL .
EXIT .
ENDIF .
DATA: BEGIN OF ls_s1,
knumh TYPE komv-knumh,
kopos TYPE komv-kopos,
pstyp TYPE ekpo-pstyp,
kwert TYPE komv-kwert,
END OF ls_s1.
DATA: lt_s1 LIKE TABLE OF ls_s1.
DATA: BEGIN OF ls_slhz,
matnr TYPE mara-matnr,
pstyp TYPE ekpo-pstyp,
menge TYPE mseg-menge,
END OF ls_slhz.
DATA: lt_slhz LIKE TABLE OF ls_slhz.
DATA: lt_data TYPE purchase_order_items,
ls_data TYPE purchase_order_item.
DATA: ls_item TYPE mepoitem.
DATA: lt_item TYPE mepoitem.
DATA: ls_head TYPE mepoheader.
DATA: lv_class TYPE REF TO if_purchase_order_item_mm.
DATA: lv_mtart TYPE mara-mtart.
DATA: lt_konp TYPE TABLE OF konp,
ls_konp TYPE konp.
DATA: lt_konm TYPE TABLE OF konm,
ls_konm TYPE konm.
DATA: ls_konm_b TYPE konm.
DATA: lt_mmpur_tkomv TYPE mmpur_tkomv,
ls_mmpur_tkomv LIKE LINE OF lt_mmpur_tkomv.
* DATA: lt_tkomv TYPE mmpur_tkomv,
* ls_tkomv LIKE LINE OF lt_mmpur_tkomv.
DATA: lt_prcd_elements TYPE TABLE OF prcd_elements,
ls_prcd_elements TYPE prcd_elements.
DATA: lv_kopos TYPE konp-kopos.
DATA: lv_tabix LIKE sy-tabix.
* DATA: lv_tabix_1 LIKE sy-tabix.
DATA: lv_kwert TYPE konv-kwert.
DATA: BEGIN OF ls_prcd,
knumh TYPE konp-knumh,
kopos TYPE konp-kopos,
END OF ls_prcd.
DATA: lt_prcd LIKE TABLE OF ls_prcd.
DATA: lv_msg TYPE string.
DATA: lv_flg.
DATA: ls_a017 TYPE a017.
DATA: lv_s1 TYPE prcd_elements-kwert.
DATA: lv_s2 TYPE konm-kstbm.
DATA: lv_bfb TYPE p DECIMALS 4.
DATA: lv_01 TYPE p DECIMALS 1.
DATA: lv_kstbm TYPE string.
DATA: lv_lines LIKE sy-tabix.
DATA: gv_c TYPE c .
DATA: gv_c2 TYPE c .