ABAP 物料单位转换
PERFORM FRM_UNIT_TRAN USING GS_ITEM-MATNR GS_ITEM-MEINS GS_ITEM-RECEIPT_STOCK CHANGING GS_ITEM-RECEIPT_STOCK_ENTRY_UNIT."转为固定单位BOX
FORM FRM_UNIT_TRAN USING P_MATNR "传入物料
P_MEINS "基本单位
P_LBKUM "转换数值
CHANGING P_LBKUM1.
DATA:LV_MATNR TYPE MARA-MATNR.
DATA:LV_MENGE TYPE EKPO-MENGE.
DATA:LV_LBKUM TYPE EKPO-MENGE.
DATA:LV_LBKUM1 TYPE I.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = P_MATNR
IMPORTING
OUTPUT = LV_MATNR.
LV_LBKUM = P_LBKUM.
"单位转换
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
I_MATNR = LV_MATNR
I_IN_ME = P_MEINS
I_OUT_ME = 'BOX'
I_MENGE = LV_LBKUM
IMPORTING
E_MENGE = LV_MENGE
EXCEPTIONS
ERROR_IN_APPLICATION = 1
ERROR = 2
OTHERS = 3.
* LV_LBKUM1 = LV_MENGE.
"四舍五入
IF LV_MENGE IS NOT INITIAL.
CALL FUNCTION 'HR_NZ_ROUNDING_DECIMALS'
EXPORTING
VALUE_IN = LV_MENGE
CONV_DEC = 0
IMPORTING
VALUE_OUT = LV_LBKUM1
* EXCEPTIONS
* NO_ROUNDING_REQUIRED = 1
* DECIMALS_GREATER_THAN_10 = 2
* ROUNDING_ERROR = 3
* OTHERS = 4
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
P_LBKUM1 = LV_LBKUM1.
ENDFORM.
浙公网安备 33010602011771号