物料基本视图导入程序
功能描述
从EXCEL文件中读取数据,使用标准bapi将物料基本信息excel中定义的数据导入到MARA表。
处理逻辑
先通过SMW0上传需要的模板。不能修改模板里字段的先后顺序,否则会导入失败。存在为修改,不存在为创建。导入行数默认控制为1000条。
使用bapi
写入修改物料:
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
文本对象函数:
CALL FUNCTION 'SAVE_TEXT'
CALL FUNCTION 'READ_TEXT'
事物提交:
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
RETURN = RETURNMESSAGES.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = RETURNMESSAGES.
总体流程
总体流程:
初始化对象->检查输入数据->获取文件路径->设置屏幕字段必输标识->检查屏幕必输字段->载入ALV需要显示的列->处理导入数据->使用ALV显示数据
1.初始化对象
设置下载按钮图标和文本
2.检查输入数据
下载模版->路径全部转换为大写->检查文件是否存在
3.获取文件路径
4.设置屏幕字段必输标识
5.检查屏幕必输字段
6.载入ALV需要显示的列
使用宏处理,顺序与输入,内表的字段一致
- 处理导入数据
上传文件->将上传文件的内容转换为可处理格式->检查必输字段是否为空->调用BAPI保存数据
遇到的问题
- 没有前置0的数字物料号不能进行传输,前导0也不能直接使用alpha处理,需要去matnr域中查找相关FN。
- 处理长文本需要去mm02查看相关物料的长文本前台操作方式
- 物料基本视图1中的基本数据文本内,选择维护语言下方的笔,在弹出的基本数据文本框上房选择转到->表头,查看文本抬头信息得到文本标识。
- 注意bapi函数return的返回类型,可能是1可能是2,需要去函数的定义中查看。
- 在se09中新增工作台请求,在传输包的请求中输入生成的请求号。
- se93中将事务代码和程序关联。
- 使用语言输入字段为1个字符,'ZH’为‘1’