ABAP 开发外挂报表批量创建和更改 采购 info record/采购信息记录 (RFC:ME_INFORECORD_MAINTAIN)

本文介绍如何通过RFC ZALSM_EXCEL_TO_INTERNAL_TABLE和BAPI ME_INFORECORD_MAINTAIN功能,上传包含物料、供应商等信息的Excel表格,实现采购信息记录的创建和修改。详细步骤包括数据验证、单位转换及处理测试与正式运行流程。

笔者在网上搜了很多文章,发现批量做这个修改的都是用的BDC录屏,虽然录屏很简单,但是既然要作为教程写在这里,我想还是BAPI或者RFC好一点,这部,刚好让笔者找到了.
具体功能:
上传一个excel文档,文档里是要创建或者修改的数据,点击执行则执行完毕了
在这里插入图片描述
上传的格式如下
在这里插入图片描述
在这里插入图片描述

也可以写成在选择屏幕上给个按钮,下载模板的形式,这里只为了演示,所以不做(甚至连ALV输出都没写)。
程序提供了正式运行和测试运行两种方式,在代码里用一个标识 ZMARK 来判断.
具体代码如下,仅供参考:

*&---------------------------------------------------------------------*
*& Report ZCYCLE11
*&---------------------------------------------------------------------*
*& 测试 ME_INFORECORD_MAINTAIN
*1.因为函数ME_INFORECORD_MAINTAIN不允许同时有净价和条件,所以需要分两次调用来实现创建/修改;
*2.因为函数ME_INFORECORD_MAINTAIN报错不明显,返回的报错信息仅当参考,因为需要自己debug去看具体的报错原因,
*  比如:如果单位错了,函数会报一个不相干的错误;
*3.RFC ZALSM_EXCEL_TO_INTERNAL_TABLE 来获取上传的excel文件
*&---------------------------------------------------------------------*
REPORT zcycle11.

DATA : BEGIN OF it_tab OCCURS 0,
         zkey2 TYPE n,          "行项目号
         zmark TYPE c,          "是否测试标志 , X 标识测试
         matnr LIKE eina-matnr, "物料编码
         werks LIKE eine-werks, "工厂
         lifnr LIKE eina-lifnr, "供应商
         ekorg LIKE eine-ekorg, "采购组织
         esokz LIKE eine-esokz, "采购信息记录分类
         ekgrp LIKE eine-ekgrp, "采购组
         waers LIKE eine-waers, "货币码
         mwskz LIKE eine-mwskz, "税码
         aplfz LIKE eine-aplfz, "计划交货时间(天)
         netpr LIKE eine-netpr, "净价
         bprme LIKE eine-bprme, "采购单位
         peinh LIKE eine-peinh, "价格单位
         datab LIKE konh-datab, "有效期起始日
         datbi LIKE konh-datbi, "有效期截至日
         umrez LIKE eina-umrez, "单位转换分子
         umren LIKE eina-umren, "单位转换分母
       END OF it_tab.

DATA : BEGIN OF et_tab OCCURS 0, "结果记录表
         zresult TYPE c,
         message TYPE char100,
         zkey    TYPE n,
         infnr   LIKE eine-infnr, "采购信息记录号
       END OF et_tab.

DATA : st_tab LIKE TABLE OF et_tab.

DATA:lv_mode TYPE c.   " I 为新增 , M 为修改
DATA:ls_eina TYPE eina,
     ls_eine TYPE eine.
DATA:ls_mara TYPE mara.

*-----------BAPI数据定义--------------------------
DATA:i_eina  TYPE mewieina,
     i_einax TYPE mewieinax,
     i_eine  TYPE mewieine,
     i_einex TYPE mewieinex.
DATA:lv_test TYPE bapiflag-bapiflag.
DATA:lt_return2 TYPE mewi_t_return,
     ls_return2 LIKE LINE OF lt_return2.
DATA:lt_con_vali TYPE TABLE OF mewivalidity,
     ls_con_vali TYPE mewivalidity.
DATA:lt_condition 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值