设为首页 收藏本站
查看: 934|回复: 0

[经验分享] sap转换成基本订单单位

[复制链接]

尚未签到

发表于 2015-9-18 08:02:08 | 显示全部楼层 |阅读模式
  新增function
DSC0000.jpg
DSC0001.jpg
  源码:
  function zcf_ut_unit_conversion.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(MATNR_IMP) LIKE  MARA-MATNR DEFAULT SPACE
*"     VALUE(MEINS_IMP) LIKE  MARA-MEINS DEFAULT SPACE
*"     VALUE(UNIT_NEW_IMP) LIKE  T006-MSEHI
*"     VALUE(UNIT_OLD_IMP) LIKE  T006-MSEHI
*"     VALUE(VALUE_OLD_IMP) TYPE  MENGE_D
*"  EXPORTING
*"     VALUE(VALUE_NEW_EXP) TYPE  MENGE_D
*"  EXCEPTIONS
*"      OVERFLOW
*"----------------------------------------------------------------------
* Lokale Vereinbarungen
  data value_meins_tmp type f.
  if matnr_imp is initial.
    call function 'UNIT_CONVERSION_SIMPLE'
         exporting
              input                = value_old_imp
              round_sign           = 'X'
              unit_in              = unit_old_imp
              unit_out             = unit_new_imp
         importing
              output               = value_new_exp
         exceptions
              conversion_not_found = 01
              division_by_zero     = 02
              input_invalid        = 03
              output_invalid       = 04
              overflow             = 05
              type_invalid         = 06
              units_missing        = 07
              unit_in_not_found    = 08
              unit_out_not_found   = 09.
     if sy-subrc = 5.
       raise overflow.
     endif.
  else.
*   Umrechnung in Basismenge
    call function 'MATERIAL_UNIT_CONVERSION'
         exporting
              matnr                = matnr_imp
              input                = value_old_imp
              meinh                = unit_old_imp
              kzmeinh              = 'X'
              meins                = meins_imp
         importing
              output               = value_meins_tmp
         exceptions
              conversion_not_found = 01
              input_invalid        = 02
              material_not_found   = 03
              meinh_not_found      = 04
              meins_missing        = 05
              no_meinh             = 06
              output_invalid       = 07
              overflow             = 08.
     if sy-subrc = 8.
       raise overflow.
     endif.
*   Umrechnung auf neue Alternativmengeneinheit
    call function 'MATERIAL_UNIT_CONVERSION'
         exporting
              matnr                = matnr_imp
              input                = value_meins_tmp
              meinh                = unit_new_imp
              kzmeinh              = space
              meins                = meins_imp
         importing
              output               = value_new_exp
         exceptions
              conversion_not_found = 01
              input_invalid        = 02
              material_not_found   = 03
              meinh_not_found      = 04
              meins_missing        = 05
              no_meinh             = 06
              output_invalid       = 07
              overflow             = 08.
     if sy-subrc = 8.
       raise overflow.
     endif.
  endif.
endfunction.
   form frm_changeunit  changing value(p_1) value(p_2) value(p_3) .
  data : ls_mgvgw type menge_d."plfh-mgvgw.
  data : ls_meins type mara-meins.
  data : ls_value_new_exp type menge_d."LIKE plfh-mgvgw.
  clear : ls_meins,ls_value_new_exp.
  select single meins
  into ls_meins
  from mara
  where matnr = p_1.
  ls_mgvgw = p_2.
  call function 'ZCF_UT_UNIT_CONVERSION'
    exporting
      matnr_imp     = p_1
      meins_imp     = ls_meins
      unit_new_imp  = ls_meins
      unit_old_imp  = p_3
      value_old_imp = ls_mgvgw
    importing
      value_new_exp = ls_value_new_exp
    exceptions
      overflow      = 1
      others        = 2.
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.
  if not ls_value_new_exp is initial.
    p_2 = ls_value_new_exp.
  endif.
  p_3 = ls_meins.
endform.
  
   perform frm_changeunit changing wa_mseg-matnr wa_mseg-menge wa_mseg-meins .

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-115135-1-1.html 上篇帖子: SAP SMARTFORMS技术之我见(二): 下篇帖子: SAP ABAP 它已被释放TR(或任务),减少的变化TR(任务),删除释放TR(任务)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表