首页 > 其他分享 >用ME_CONFIRMATION_UPDATE处理采购订单行项目确认视图

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

时间:2023-09-18 12:38:34浏览次数:37  
标签:ME yuekes xuekes ekes 视图 lt CONFIRMATION ls EXPORTING


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

 

CALL FUNCTION 'ME_CONFIRMATION_UPDATE'
         EXPORTING
           I_EBELN =    " 采购订单号        TABLES
           XEKES   =    "对应新增和修改
           YEKES   =    "对应删除

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

 

CALL FUNCTION 'ZPP142_GET_EKES'
       EXPORTING
         I_EBELN =    " 采购订单号= '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.

data: lt_xuekes type table of UEKES,
       ls_xuekes type UEKES.


data: lt_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.
       clear: ls_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.

     data: lt_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.
       clear: ls_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,yuekes,xuekes,ekes,视图,lt,CONFIRMATION,ls,EXPORTING
From: https://blog.51cto.com/u_8215601/7508963

相关文章

  • 应用moment.js辅助计算工作时间
    <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title></title>......
  • 采购订单确认视图维护
    data:lt_xuekestypetableofUEKES,ls_xuekestypeUEKES.data:lt_ekestypetableofekes,ls_ekestypeekes.dataoptypec.op='U'."修改*op='D'."新增*op='I'."删除caseop.......
  • element ui 多选框(是否可以勾选)
    #1.添加属性 selectable     <el-table-column width="50"type="selection"align="center":selectable="handleSelectable"/>#2. 编写函数  handleSelectable(row){   if(row.text===1){#改行不允许勾选   ......
  • element ui 禁止全选(隐藏全选按钮)
    #1.给table添加一个类型''all-select<el-tableheader-cell-class-name="all-select"/>#2.修改全选按钮的样式<stylelang="scss"scoped>::v-deep.selectAllbtnDis.cell.el-checkbox__inner{ display:none;}&......
  • Verdi 覆盖率文件的打开、merge、存储
    转载:Verdi覆盖率文件的打开、merge、存储_verdi查看覆盖率-CSDN博客Verdi覆盖率文件的打开、merge、存储 当一次回归任务结束,会看到【xxx.vdb】文件夹的生成, 每一次回归任务都是提交很多用例(test),每一个用例(test)的代码覆盖率都是单独列出,总的代码覆盖率需要把所有用例......
  • 如何计算n-frame(导航坐标系)下的定位误差?
     这里介绍2种计算n-frame(导航坐标系)下的定位误差方法,两种方法计算结果一致,可根据自己定位结果是XYZ,还是BLH进行选择。假设定位结果为:ECEF下的XYZ。方法1:先让自己的定位结果与参考定位结果做差,得到ECEF下的误差矢量dXYZ,然后根据此历元的位置计算出e-frameton-frame的旋转矩......
  • 从零开始使用vue2+element搭建后台管理系统(动态表单实现(含富文本框))[待完善]
    在后台项目的实际开发过程中,涉及到表单的部分通常会使用动态渲染的方案进行实现,由后端接口返回表单配置,前端进行遍历渲染。考虑到通用后台需要具备的功能,除了基础的表单项如输入、下拉、多选、开关、时间、日期等,还需要具备上传、富文本框等功能。首先导入一个百度来的富文本框插......
  • Google Chrome 自动更新 关闭
    更新日期:SatSep03202220:20:00GMT+0800,阅读量:10847请访问原文链接:如何禁用GoogleChrome自动更新(macOS,Linux,Windows),查看最新版。原创作品,转载请保留出处。作者主页:sysin.org禁用浏览器自动更新系列文章:如何禁用Firefox自动更新(macOS,Linux,Windows)......
  • element plus
    https://element-plus.org/zh-CN/guide/design.html设计控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。用户决策:根据场景可给......
  • 用iframe把Grafana Dashboard嵌入第三方系统
    用Grafana可以很容易地创建Dashboard,并且后期修改和更新很方便,由于它的易用性和灵活性很适合用来做系统和生产的监控。但是Grafana的UI设计似乎对普通用户不是很友好,如果让用户直接登录Grafana去搜索浏览Dashboad不是很合适。由此自然就产生了把Grafana嵌入第三方系统的需求。重......