维护BOM CSAP_MAT_BOM_MAINTAIN

CSAP_MAT_BOM_MAINTAIN问题:

1.exception不一定是e,比如“计量单位 ROL 不支持十进制小数”是个W,却出现在exception里了。原因是别的地方raise了error,然后程序继续执行,返回的消息是最后一条可能是非E的消息。比如删除BOM组件时,返回的是I 29 862 项目 & & & 被删除,这不是错误消息,但是如果此时修改了抬头,检查抬头字段是否可以修改时会报错E 29 282BOM 抬头仅能被显示。输入被忽略,表示部分字段不能修改,raise了error,但是返回的消息是删除项目的消息,最终不会提交。检查head处代码

2.“BOM 抬头仅能被显示。输入被忽略”,没有修改bom,如果此时传入了新的变更号,就会报错。29 031

 

demo

form frm_bom_create

  using

    pv_matnr

    pv_werks

    pv_stlan

扫描二维码关注公众号,回复: 12509704 查看本文章

    pv_stlal

    pv_zjdbs "add by cuijunhu for lucky 20160811

    pv_stktx

  changing

    pv_rc

    pv_msg

  .

 

  data: o_stko type stko_api02.

  data: lt_stpo type table of stpo_api02 with header line.

  data: lt_item type table of stpo_api03 with header line.

  data: stko like stko_api01.

  data: datuv(10),

        stlalr type stalt, "展开用可选BOM号

        stlalm type stalt. "修改用可选BOM号

 

  perform cunit_output changing mara-meins.

  stko-base_unit  = mara-meins.

*  stko-base_quan  = '1' .

  stko-bom_status = '01' .

  stko-alt_text   = pv_stktx .

  stko-zjdbs   =  pv_zjdbs. "add by cuijunhu for lucky 20160811

*  stko-bom_text   = pv_stktx .

 

  loop at it_upload into wa_upload

    where matnr = pv_matnr

      and werks = pv_werks.

    clear:lt_item .

 

    check wa_upload-idnrk is not initial.

 

    perform matn1_input changing wa_upload-idnrk.

*校验

 

    select single * from marc

      where matnr = wa_upload-idnrk and

            werks = wa_upload-werks.

    if sy-subrc <> 0.

      shift wa_upload-idnrk left deleting leading '0'.

 

      pv_msg = '物料' && wa_upload-idnrk && '未在工厂' && wa_upload-werks && '维护'.

      pv_rc = 'E'.

 

      exit.

    endif.

 

    perform numcv_input changing wa_upload-posnr.

 

    lt_item-item_no    = wa_upload-posnr.

    lt_item-item_categ = wa_upload-postp.

    lt_item-component  = wa_upload-idnrk.

    lt_item-comp_qty   = wa_upload-menge.

    lt_item-comp_unit  = wa_upload-meins.

    lt_item-item_text1 = wa_upload-potx1.

    lt_item-item_text2 = wa_upload-potx2.

    lt_item-sortstring = wa_upload-sortf."add by cuijunhu for lucky 20160811

    lt_item-rel_engin  = ' '. "标志: 与工程相关项目

    lt_item-rel_cost   = 'X'. "标志: 与成本核算相关项目

    lt_item-rel_prod   = 'X'. "标志: 与生产相关项目

    append lt_item.

  endloop.

 

 

  check pv_rc ne 'E'.

 

  write sy-datum to datuv.

  call function 'CSAP_MAT_BOM_MAINTAIN'

    exporting

      material           = pv_matnr

      plant              = pv_werks

      bom_usage          = pv_stlan

      alternative        = pv_stlal

      valid_from         = datuv

      i_stko             = stko

      fl_bom_create      = 'X'

      fl_new_item        = 'X'

      fl_complete        = 'X'

      fl_commit_and_wait = 'X'

      fl_default_values  = 'X'

    importing

      o_stko             = o_stko

    tables

      t_stpo             = lt_item

    exceptions

      error_message      = 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 into pv_msg.

    pv_rc = 'E'.

  else.

    pv_rc = 'S'.

  endif.

 

 

 

endform.                    " FRM_BOM_CREATE

 

猜你喜欢

转载自blog.csdn.net/cylcylcylcylwo/article/details/114014954
bom
今日推荐