热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

bapisap创建物料_BAPI案例分享

BAPI实例分享BAPI业务应用程序接口(BusinessApplicationProgrammingInterface,简称BAPI)是面向对象程序设
58c0c99fd2305a46170286e592563d27.png

BAPI实例分享

BAPI业务应用程序接口(Business Application Programming Interface,简称BAPI)是面向对象程序设计方法中的一组程序接口。

本期分享通过BAPI批量修改采购订单数量和净价

1.选择屏幕画面导入文件目录

4c1db04cb27a25e6102dfa16c15d1424.png

2.执行验证文件是否正确

99e07df48692abd98fce21650b3834e3.png

保存后提示物料被更改或提示错误信息

(1)数据正确并保存成功

9d0a08027bbb5ef51273e854c597353b.png
  1. 数据错误并提示错误信息
b51be937d4a6064c5b569a18b72f348c.png

数据更新前后展示

(1)更新前数据展示

ecf1c9f49b38c9bc50060cad3b530d5c.png
ff60da4201178cdc29b1aa7f69421d0a.png

(2)更新后数据展示

284e43e98e2eb5b105da0043932c185a.png
4a0508932a2e1cc12027ab5a03159b6a.png

功能实现

选择屏幕上传文件目录

  1. 通过AT SELECTION-SCREEN ON VALUE-REQUEST FOR 事件为屏幕控件P_FILE添加搜索帮助
  2. 创建并调用子程序FRM_GET_FILENAME
3bca3cfe507647b8d7e9267a6e45f67b.png
  1. 子程序FRM_GET_FILENAME内

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG 选择文件目录

4568381f43ba65ff28e54886efe29e45.png
  1. 导入文件目录效果展示
ae8058ad1ca93762d93652dd3aea3b7b.png

导入Excel数据

  1. 主处理事件(START-OF-SELECTION)内判断P_FILE 是否为空
cb9c5df68db1a367d6e3bbfa58f4fbeb.png
  1. 创建并调用子程序FRM_FILE_UPLOAD
0fb692c8f36f4a210ca09f4dec241f29.png
  1. 子程序FRM_FILE_UPLOAD内

CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'读取Excel文件内容

eff63caf389d0087a0e09b797643bfc8.png
  1. 编辑Excel文件(IT_INTERN)内容放到内表GT_DATA中
47e72c99cb6f1de07889402175a72baa.png

检查导入数据(GT_DATA)

  1. 主处理事件(START-OF-SELECTION)内创建并调用子程序FRM_EDIT_DATA
b8503455aeb4596aad6409cdc3882615.png
  1. 检查数据是否为空
c10643332152cc3cf3a1dec6ed3af6ab.png
  1. 将红绿灯提示放到内表GT_DATA中

MODIFY GT_DATA FROM LS_DATA. 通过结构对内表进行修改

8a465dd65ccf8f6ffd922afc7e3aae3d.png
  1. 效果展示
99e07df48692abd98fce21650b3834e3.png

保存ALV内数据

  1. 当触发保存按钮‘SAVE’时,调用BAPI 'BAPI_PO_CHANGE'

SAP系统提供的BAPI的参数结构有个特点:一般会将类似的字段放在同一个结构中,同时,还会存在一个与该结构名类似(后面以X结尾)标识结构,该标识结构中的字段名与赋值的结构中的字段名一致,但是其字段类型只是一个长度为1的字符,用于标识某个字段的数据是否需要通过BAPI来变更。

41368d55f63291d3230ae1402778c2e0.png
  1. 将错误的message信息拼接并更新到内表GT_ALV中

将错误信息拼接到变量LV_MESSAGE

CONCATENATE LV_MESSAGE LS_I_PO_CHANGERETURN-MESSAGE LV_C INTO LV_MESSAGE.

35b8108fb4193136bff5a4c003643c71.png

如果有错误消息则要用BAPI_TRANSACTION_ROLLBACK取消所做的操作

32c6979350614c488d52300599b88de5.png
  1. 提交BAPI操作,并将message更新到内表

对于BAPI的操作都要用BAPI_TRANSACTION_COMMIT来提交

87f59bc53eabcf76722eaf737b685179.png
  1. 更新ALV内表数据
9a68d2bbca4c2048aca9485b38771fc7.png
  1. 错误信息效果展示
b51be937d4a6064c5b569a18b72f348c.png
  1. 更新后效果展示
9d0a08027bbb5ef51273e854c597353b.png

(7)更新前数据展示

ecf1c9f49b38c9bc50060cad3b530d5c.png
ff60da4201178cdc29b1aa7f69421d0a.png

(8)更新后数据展示

284e43e98e2eb5b105da0043932c185a.png
4a0508932a2e1cc12027ab5a03159b6a.png

谢谢观看




推荐阅读
  • ExcelApp#启动excel程序ExcelAppCreateOleObject(“Excel.Application”);#加载文件但不显示文件内容(true表 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 我尝试使用Vue.js在Laravel中实现imageupload吗?但是,我不知道为什么图像 ... [详细]
  • 校园表白墙微信小程序,校园小情书、告白墙、论坛,大学表白墙搭建教程
    小程序的名字必须和你微信注册的名称一模一样在后台注册好小程序。mp.wx-union.cn后台域名https。mp.wx-union.cn ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • 本篇文章笔者在上海吃饭的时候突然想到的这段时间就有想写几篇关于返回系统的笔记,所以回家到之后就奋笔疾书的写出来发布了事先在网上找了很多方法,发现有 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
蔡少暖_171
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有