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.

posted @ 2022-04-27 16:11  别忘了带红领巾  阅读(667)  评论(0)    收藏  举报