BAPI实例分享
BAPI业务应用程序接口(Business Application Programming Interface,简称BAPI)是面向对象程序设计方法中的一组程序接口。
本期分享通过BAPI批量修改采购订单数量和净价
1.选择屏幕画面导入文件目录
2.执行验证文件是否正确
保存后提示物料被更改或提示错误信息
(1)数据正确并保存成功
- 数据错误并提示错误信息
数据更新前后展示
(1)更新前数据展示
(2)更新后数据展示
功能实现
选择屏幕上传文件目录
- 通过AT SELECTION-SCREEN ON VALUE-REQUEST FOR 事件为屏幕控件P_FILE添加搜索帮助
- 创建并调用子程序FRM_GET_FILENAME
- 子程序FRM_GET_FILENAME内
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG 选择文件目录
- 导入文件目录效果展示
导入Excel数据
- 主处理事件(START-OF-SELECTION)内判断P_FILE 是否为空
- 创建并调用子程序FRM_FILE_UPLOAD
- 子程序FRM_FILE_UPLOAD内
CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'读取Excel文件内容
- 编辑Excel文件(IT_INTERN)内容放到内表GT_DATA中
检查导入数据(GT_DATA)
- 主处理事件(START-OF-SELECTION)内创建并调用子程序FRM_EDIT_DATA
- 检查数据是否为空
- 将红绿灯提示放到内表GT_DATA中
MODIFY GT_DATA FROM LS_DATA. 通过结构对内表进行修改
- 效果展示
保存ALV内数据
- 当触发保存按钮‘SAVE’时,调用BAPI 'BAPI_PO_CHANGE'
SAP系统提供的BAPI的参数结构有个特点:一般会将类似的字段放在同一个结构中,同时,还会存在一个与该结构名类似(后面以X结尾)标识结构,该标识结构中的字段名与赋值的结构中的字段名一致,但是其字段类型只是一个长度为1的字符,用于标识某个字段的数据是否需要通过BAPI来变更。
- 将错误的message信息拼接并更新到内表GT_ALV中
将错误信息拼接到变量LV_MESSAGE
CONCATENATE LV_MESSAGE LS_I_PO_CHANGERETURN-MESSAGE LV_C INTO LV_MESSAGE.
如果有错误消息则要用BAPI_TRANSACTION_ROLLBACK取消所做的操作
- 提交BAPI操作,并将message更新到内表
对于BAPI的操作都要用BAPI_TRANSACTION_COMMIT来提交
- 更新ALV内表数据
- 错误信息效果展示
- 更新后效果展示
(7)更新前数据展示
(8)更新后数据展示
谢谢观看