*&---------------------------------------------------------------------*
*& Report Z_MATNR_UNIT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_MATNR_UNIT.
PARAMETERS: P_MATNR TYPE MATNR.
PARAMETERS: P_NUM1 TYPE LFIMG.
PARAMETERS: P_VRKME1 TYPE VRKME.
PARAMETERS: P_VRKME2 TYPE VRKME.
START-OF-SELECTION.
DATA: L_CURR TYPE NETPR.
DATA: L_QUAN TYPE LFIMG.
PERFORM SUB_MATNR_UNIT_CONV USING P_MATNR P_NUM1 P_VRKME1 P_VRKME2 CHANGING L_CURR.
PERFORM SUB_MATNR_UNIT_CONV USING P_MATNR P_NUM1 P_VRKME1 P_VRKME2 CHANGING L_QUAN.
WRITE: / L_CURR.
WRITE: / L_QUAN.
*& Form unit_conv
FORM SUB_MATNR_UNIT_CONV USING I_MATNR I_NUM I_VRKME1 I_VRKME2 CHANGING C_NUM.
DATA: L_MATNR TYPE MATNR.
DATA: L_VRKME1 TYPE VRKME,
L_VRKME2 TYPE VRKME.
DATA: L_MENGE1 LIKE EKPO-MENGE,
L_MENGE2 LIKE EKPO-MENGE.
CLEAR: C_NUM.
"""""""""""""""""""""
CHECK I_MATNR IS NOT INITIAL.
CHECK I_NUM IS NOT INITIAL.
CHECK I_VRKME1 IS NOT INITIAL.
CHECK I_VRKME2 IS NOT INITIAL.
L_MATNR = I_MATNR.
L_MENGE1 = I_NUM.
L_VRKME1 = I_VRKME1.
L_VRKME2 = I_VRKME2.
""""""""""""""""""""" 单位是否都在marm表中;
SELECT MEINH INTO TABLE @DATA(LT_MARM) FROM MARM WHERE MATNR = @L_MATNR.
SORT LT_MARM.
READ TABLE LT_MARM INTO DATA(LS_MARM1) WITH KEY MEINH = I_VRKME1 BINARY SEARCH.
IF SY-SUBRC = 0.
READ TABLE LT_MARM INTO DATA(LS_MARM2) WITH KEY MEINH = I_VRKME2 BINARY SEARCH.
IF SY-SUBRC = 0.
"" 继续
ELSE.
RETURN.
ENDIF.
ENDIF.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
I_MATNR = L_MATNR "#EC CI_FLDEXT_OK[2215424]
I_IN_ME = L_VRKME1
I_OUT_ME = L_VRKME2
I_MENGE = L_MENGE1
IMPORTING
E_MENGE = L_MENGE2
EXCEPTIONS
ERROR_IN_APPLICATION = 1
ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
STOP.
ENDIF.
IF NOT L_MENGE2 IS INITIAL.
C_NUM = L_MENGE2.
ENDIF.
ENDFORM. " unit_conv
abap物料单位转换
于 2024-11-20 09:17:43 首次发布