ABAP data extract 数据抽取总结
2011-10-31 09:58
134 查看
这一个星期做得最多的工作就是Dataextract,以下是我这一个星期以来对data extract的工作总结。
所谓Data extract就是通过SAP ABAP代码对数据库数据进行抽取的操作,然后导出并保存为DAT文件。
在Commscope中,有SAP的ERP系统和BI的数据系统(貌似叫dataStage),由于两个系统的数据有时会出现不一致的现象,一般情况下是BI系统的数据较少,这时就需要Dataextract。
当BI team 所需要的数据不存在与 BI的系统中时, 此时就需要对SAP系统的数据进行抽取,并且导入到BI的系统中。
Data Extract 的操作是在SAP ABAPWorkbench下完成的,通过ABAP代码将数据以DAT的文件格式保存到Aplicationserver上。然后BI人员会通过他们的工具对DAT文件进行解析处理,这个过程需要SAP ABAP编程人员以及BI的编程人员共同完成。
以下是如何进行Data extract
首先,要在SAP 系统中建立一个用于抽取的程序,并且要符合以下的命名规则
程序名:ZBI_XXX(数据库表名)
Title: BI:CommScope program for XXX extract (SAP 1)
BI:Legacy Andrew program for XXX extract (SAP 2)
Develp class ( ECC6-Package ):ZBI
Authorization group:Z_XXXX(first four letters of the tablename)
CTS ( Request ): [issue number] – ABAP extract for tableXXXX(table name)
在符合的规范的情况下,要进行ABAP编程以实现数据库数据抽取。
1. 使用Tables关键字对所要抽取的表进行声明
2. 建立存放数据的内表,命名规范为IT_XXX(数据库表名)
3. 建立存放数据的structure,命名规范ST_1.
4. structure的组建要符合命名规范F_1(字段长度) TYPE C, “ For [数据库表名]-[字段名]
5. 声明i类型变量以记录数据的数量
6. 声明 文件名称DATA: DSN LIKERLGRAP-FILENAME. 并声明用来储存DAT文件名称的变量DATA: V_PARAM(255) TYPE C.
7. 生成DAT文件的名称,
8. 调用 Function module ‘FILE_GET_NAME’ 获取文件路径并传递给DSN。
9. 打开文件进行数据抽取,OPEN DATASET DSN FOR OUTPUT IN TEXT MODE.
10. 用Select循环对数据库表内的数据进行查询,并放到IT_XXX内表中。
11. 将IT_XXX中的数据按照对应关系复制到IT_1中的字段中
12. 将结构体 IT_1传到指定的文件中TRANSFER IT_1 TO DSN LENGTH nn(结构体所有字段的长度之和)。
13. 把记录行数的变量叠加。
14. endselect以后,将记录行数的变量打印出来
15. 关闭文件传输CLOSE DATASETDSN.
注: 也正是在写总结的时候,发现了自己程序中的大BUG!在使用move-corresponding IT_XXX to IT_1的时候,IT_1里根本没有数据,因为这两个结构体的字段名根本就不一样!!
好危险。。。 幸亏发现。。。
由于data extract程序都使用的是固定模板,只需要更改数据库表名和字段名即可,但是当数据库表中存在大量字段时,比如说BSAD数据库表,里面就有160多个字段,如果你每一个字段都查数据库,并且计算所有字段的长度之和的话,工作量将会非常庞大,而且抽取的数据还不一定准确,所以我自己开发了一个专门打印 extract data program code的程序,只需要输入数据库表名就可以自动打印出代码,不仅节省了时间,而且还可以降低手动编码的错误几率。
所谓Data extract就是通过SAP ABAP代码对数据库数据进行抽取的操作,然后导出并保存为DAT文件。
在Commscope中,有SAP的ERP系统和BI的数据系统(貌似叫dataStage),由于两个系统的数据有时会出现不一致的现象,一般情况下是BI系统的数据较少,这时就需要Dataextract。
当BI team 所需要的数据不存在与 BI的系统中时, 此时就需要对SAP系统的数据进行抽取,并且导入到BI的系统中。
Data Extract 的操作是在SAP ABAPWorkbench下完成的,通过ABAP代码将数据以DAT的文件格式保存到Aplicationserver上。然后BI人员会通过他们的工具对DAT文件进行解析处理,这个过程需要SAP ABAP编程人员以及BI的编程人员共同完成。
以下是如何进行Data extract
首先,要在SAP 系统中建立一个用于抽取的程序,并且要符合以下的命名规则
程序名:ZBI_XXX(数据库表名)
Title: BI:CommScope program for XXX extract (SAP 1)
BI:Legacy Andrew program for XXX extract (SAP 2)
Develp class ( ECC6-Package ):ZBI
Authorization group:Z_XXXX(first four letters of the tablename)
CTS ( Request ): [issue number] – ABAP extract for tableXXXX(table name)
在符合的规范的情况下,要进行ABAP编程以实现数据库数据抽取。
1. 使用Tables关键字对所要抽取的表进行声明
2. 建立存放数据的内表,命名规范为IT_XXX(数据库表名)
3. 建立存放数据的structure,命名规范ST_1.
4. structure的组建要符合命名规范F_1(字段长度) TYPE C, “ For [数据库表名]-[字段名]
5. 声明i类型变量以记录数据的数量
6. 声明 文件名称DATA: DSN LIKERLGRAP-FILENAME. 并声明用来储存DAT文件名称的变量DATA: V_PARAM(255) TYPE C.
7. 生成DAT文件的名称,
8. 调用 Function module ‘FILE_GET_NAME’ 获取文件路径并传递给DSN。
9. 打开文件进行数据抽取,OPEN DATASET DSN FOR OUTPUT IN TEXT MODE.
10. 用Select循环对数据库表内的数据进行查询,并放到IT_XXX内表中。
11. 将IT_XXX中的数据按照对应关系复制到IT_1中的字段中
12. 将结构体 IT_1传到指定的文件中TRANSFER IT_1 TO DSN LENGTH nn(结构体所有字段的长度之和)。
13. 把记录行数的变量叠加。
14. endselect以后,将记录行数的变量打印出来
15. 关闭文件传输CLOSE DATASETDSN.
注: 也正是在写总结的时候,发现了自己程序中的大BUG!在使用move-corresponding IT_XXX to IT_1的时候,IT_1里根本没有数据,因为这两个结构体的字段名根本就不一样!!
好危险。。。 幸亏发现。。。
由于data extract程序都使用的是固定模板,只需要更改数据库表名和字段名即可,但是当数据库表中存在大量字段时,比如说BSAD数据库表,里面就有160多个字段,如果你每一个字段都查数据库,并且计算所有字段的长度之和的话,工作量将会非常庞大,而且抽取的数据还不一定准确,所以我自己开发了一个专门打印 extract data program code的程序,只需要输入数据库表名就可以自动打印出代码,不仅节省了时间,而且还可以降低手动编码的错误几率。
相关文章推荐
- R语言中的matrix(矩阵),list(列表),data.frame(数据框)总结
- 获取web服务器xml数据总结
- 数据类型总结c++的应用,转换
- Hibernate核心接口和数据类型总结
- wpf学习笔记-数据绑定功能总结
- 大数据——海量数据处理的基本方法总结
- C++ 中两个数据交换总结
- 关于BaseAdapter的数据混乱的分析与解决总结
- JavaScript的数据类型、null 和undefined、原始数据类型和引用数据类型等JavaScript基础知识总结
- Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型
- MySQL数据类型和常用字段属性总结
- 数据抽取工具——DMCTextFilter V4.2(纯文本抽出通用程序库)
- MySQL数据类型和常用字段属性总结
- 关于数据库容灾之数据容灾的总结
- android使用httppost向c# wcf发送数据总结
- R语言中常用的数据变量名修改方法总结
- jQuery数据类型总结
- 【数据结构与算法】内部排序总结(附各种排序算法源码)
- 随机数,时间生成以及规格化数据(小总结)
- 数据挖掘总结之书籍篇