SAP 检查PR中委外副产品是否有成本价

SAP 检查PR中委外副产品是否有成本价
ME_PROCESS_REQ_CUST
IF_EX_ME_PROCESS_REQ_CUST~CHECK

METHOD if_ex_me_process_req_cust~check.
DATA:lt_items TYPE mmpur_requisition_items,
ls_items TYPE mmpur_requisition_item,
ls_item_data TYPE mereq_item,
ls_item TYPE REF TO if_purchase_requisition_item. "获取行项目数据的类
DATA:ls_headr TYPE mereq_header.
DATA:lv_mess(100).
DATA:lw_eban TYPE eban.
DATA:lw_ekpo TYPE ekpo.
DATA:lt_bomsc TYPE REF TO if_bom_mm.
DATA:lt_bom TYPE mmpur_t_mdpm.
DATA:ls_bom TYPE mdpm.
DATA:ls_mbew TYPE mbew.

ls_headr = im_header->get_data( ).
lt_items = im_header->get_items( ).

LOOP AT lt_items INTO ls_items.
CLEAR :ls_item_data,ls_item,lw_eban,lw_ekpo,lv_mess,lt_bomsc,lt_bom.
ls_item = ls_items-item.
ls_item_data = ls_item->get_data( ). "获取数据
IF ls_item_data-loekz = ‘’ AND ls_item_data-pstyp = ‘3’. "
lt_bomsc = ls_item->get_bom( ). "获取BOM数据
lt_bom = lt_bomsc->get_data( ).

    LOOP AT lt_bom INTO ls_bom WHERE shkzg = 'S'.
      CLEAR:ls_mbew,lv_mess.
      SELECT SINGLE * INTO ls_mbew FROM mbew WHERE matnr = ls_bom-matnr AND bwkey = ls_bom-werks.
      IF sy-subrc = 0.
        CASE ls_mbew-vprsv.
          WHEN 'V'.
            IF ls_mbew-verpr = 0.
              CONCATENATE 'PR行项目:' ls_item_data-bnfpo 'BOM中副产品物料没有维护成本价,' ls_bom-matnr INTO lv_mess SEPARATED BY ''.
              MESSAGE lv_mess TYPE 'E'.
            ENDIF.
          WHEN 'S'.
            IF ls_mbew-stprs = 0.
              CONCATENATE 'PR行项目:' ls_item_data-bnfpo 'BOM中副产品物料没有维护成本价,' ls_bom-matnr INTO lv_mess SEPARATED BY ''.
              MESSAGE lv_mess TYPE 'E'.
            ENDIF.
          WHEN OTHERS.
        ENDCASE.
      ELSE.
        CONCATENATE 'PR行项目:' ls_item_data-bnfpo 'BOM中副产品物料没有维护会计视图,' ls_bom-matnr INTO lv_mess SEPARATED BY ''.
        MESSAGE lv_mess TYPE 'E'.
      ENDIF.
    ENDLOOP.

  ENDIF.
ENDLOOP.

你可能感兴趣的:(SAP-ABAP,SAP-MM,SAP-PP,SAP,ABAP)