在一步步实现ABAP后台导入EXCEL到数据库【2】里,我们已经实现计划后台作业将数据导入数据库的功能。但是,这只是针对一个简单的自定义结构的导入程序。在实践应用中,面对不同的表、不同的导入文件,我们将不得不重写程序,以适应它们的结构的不同。其实多数需要上传的EXCEL文件都是行结构的数据,无非字段不同,为什么不把这个功能做成一个具有通用性的函数,以减少工作量呢?
实际上我已经完成了这个函数的大部分内容。
导入的参数:
异常:
代码就不贴了,其实和之前在【1】【2】两篇文中完成的程序是很相似的,需要注意的几点是:
- 从表示层读取ECXCEL和从应用服务器读取TXT时,都要将数据读入动态内表。
- 可以使用DDIF_TABL_GET函数,来获取构建动态内表所需要的信息。(2016.12.30更新:CATSXT_GET_DDIC_FIELDINFO也可以)
- 在写入TXT和读取TXT时,应保证字段的类型、长度不存在问题,否则将导致读取数据错误。
写到这里,我想到这个函数目前只能应付纯导入的工作,如果需要校验数据的话,还是得对程序进行一定的调整才行。下一步,我打算重构代码,在函数中预留相关位置,以方便复用和相关功能的改写。