码迷,mamicode.com
首页 > 其他好文 > 详细

用ME_CONFIRMATION_UPDATE处理采购订单行项目确认视图

时间:2016-05-13 01:23:36      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

用function module: ME_CONFIRMATION_UPDATE ,可以处理采购订单行项目确认视图,实现增删改操作。

 

      CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘
        EXPORTING
          I_EBELN =    " 采购订单号

        TABLES
          XEKES   =    "对应新增和修改
          YEKES   =    "对应删除

 

因为没有找到读取采购订单行项目确认视图的函数,所以自己写了一个:

 

    CALL FUNCTION ‘ZPP142_GET_EKES‘
      EXPORTING
        I_EBELN    " 采购订单号
     

        I_EBELP ‘00010‘   " 采购订单行项目
      TABLES
         T_ekes  =   "读取的确认视图表

 

 

ZPP142_GET_EKES 的代码:

 

  data t_ebelp type ebelp.
 CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT‘
   EXPORTING
     INPUT         i_ebelp
  IMPORTING
    OUTPUT        t_ebelp
           .

  select from ekes into table t_ekes
       where ebeln i_ebeln
         and ebelp i_ebelp.

 

 

对确认视图做增删改的代码例子如下:

 


REPORT  ZTEST0.

datalt_xuekes type table of UEKES,
      ls_xuekes type UEKES.


datalt_ekes type table of ekes,
      ls_ekes type ekes.

data op type c.

op ‘U‘.    "修改
*op = ‘D‘.   "新增
*op = ‘I‘.   "删除

case op.

  when ‘U‘.


*读取确认
    CALL FUNCTION ‘ZPP142_GET_EKES‘
      EXPORTING
        I_EBELN ‘4900177648‘
        I_EBELP ‘00010‘
      TABLES
        T_ekes  lt_ekes.
    .
*准备修改现有条目
    loop at lt_ekes into ls_ekes.
      MOVE-CORRESPONDING ls_ekes to ls_xuekes.
      ls_xuekes-eindt ‘20180303‘.
      ls_xuekes-kz ‘U‘.
      append ls_xuekes to lt_xuekes.
      clearls_ekes.
    endloop.

    if lt_xuekes is not INITIAL.
      CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘
        EXPORTING
          I_EBELN       ‘4900177648‘
        TABLES
          XEKES         =  lt_xuekes
*    YEKES         =
                .

      if sy-subrc 0.

        commit WORK AND WAIT.
        write ‘update ok‘.
      else.
        write ‘update not ok‘.
      endif.
    endif.

  when ‘I‘.
*准备添加新条目

    clear:ls_xuekes,lt_xuekes.

    ls_xuekes-ebeln ‘4900177648‘.
    ls_xuekes-ebelp ‘00010‘.

    sort lt_ekes DESCENDING by ebeln ebelp etens.
    read table lt_ekes into ls_ekes index 1.

    if sy-subrc 0.
      ls_xuekes-etens ls_ekes-etens + 1.
    else.
      ls_xuekes-etens ‘0001‘.
    endif.

    ls_xuekes-ebtyp ‘LA‘.
    ls_xuekes-eindt ‘20160707‘.
    ls_xuekes-lpein ‘1‘.
    ls_xuekes-erdat sy-datum.
    ls_xuekes-ezeit sy-uzeit.
    ls_xuekes-menge ‘22.222‘.
    ls_xuekes-estkz ‘1‘.
    ls_xuekes-kzdis ‘X‘.
    ls_xuekes-xblnr ‘A-LJC-SB‘.
    ls_xuekes-kz ‘I‘.

    append ls_xuekes to lt_xuekes.

    BREAK-POINT.
    if lt_xuekes is not INITIAL.
      CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘
        EXPORTING
          I_EBELN       ‘4900177648‘
        TABLES
          XEKES         =  lt_xuekes
*    YEKES         =
                .

      if sy-subrc 0.

        commit WORK AND WAIT.
        write ‘insert ok‘.
      else.
        write ‘insert not ok‘.
      endif.
    endif.

  when ‘D‘.
    clear:ls_xuekes,lt_xuekes.

    datalt_yuekes type table of UEKES,
          ls_yuekes type UEKES.
*读取确认
    CALL FUNCTION ‘ZPP142_GET_EKES‘
      EXPORTING
        I_EBELN ‘4900177648‘
        I_EBELP ‘00010‘
      TABLES
        T_ekes  lt_ekes.
    .
*准备删除现有条目
    loop at lt_ekes into ls_ekes.
      MOVE-CORRESPONDING ls_ekes to ls_yuekes.
      ls_yuekes-kz ‘D‘.
      append ls_yuekes to lt_yuekes.
      clearls_ekes.
    endloop.

    if lt_yuekes is not INITIAL.
      CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘
        EXPORTING
          I_EBELN ‘4900177648‘
        TABLES
          XEKES   lt_xuekes
          YEKES   lt_yuekes.

      if sy-subrc 0.

        commit WORK AND WAIT.
        write ‘Delete ok‘.
      else.
        write ‘Delete not ok‘.
      endif.

    endif.
endcase.

用ME_CONFIRMATION_UPDATE处理采购订单行项目确认视图

标签:

原文地址:http://blog.csdn.net/precipitant/article/details/51344554

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!