繁体   English   中英

如何从 SAP ABAP 系统中提取数据?

[英]How to extract data from a SAP ABAP system?

我需要以一种格式从 SAP ABAP 系统中提取数据,然后可以将其加载到 Oracle 数据库中(xlsx、csv、dmp 等)

提取数据后,我将使用 Pentaho 将其上传到 Oracle 数据库中。

有没有办法从SAP中提取数据? 我还需要自动化它(提取),但现在这不是什么大问题,我以后可以考虑/担心那部分。

如果不可能这样做,解释为什么会有所帮助!

您有多种选择来执行此操作。

如果您正在运行 SAP BW,则有许多标准工具可帮助您进行提取和自动化流程。

否则,您可以编写一个简单的 ABAP 程序(类型 1)来从表中读取数据并将其放入一个平面文件中。

否则,您可以编写支持远程功能的功能模块 (RFC) 并使用 SAP 的 RFC 库调用它。

您还可以使用 Web 服务包装您的 RFC 函数并通过 SOAP/HTTP 调用它。

最后,如果您有权访问数据库,您甚至可以编写脚本来提取您需要的数据。

从数据库表中提取内容的程序的简单示例:

report ZEXTRACT_EXAMPLE.

data: lt_t001 type table of t001.
data: ls_t001 type t001.
data: lv_filename type string value '/tmp/outfile.txt'.

select * from t001 into table lt_t001.

open dataset lv_filename for output in text mode encoding default.

loop at lt_t001 into ls_t001.
  transfer ls_t001-bukrs to lv_filename.
endloop.

close dataset lv_filename.

这真的很原始,但你明白了。 它从数据库表中选择数据到内部表(在内存中)并将其写入服务器上名为/tmp/outfile.txt的文件,您可以从那里获取它。 (您必须将输出更改为您所需的格式)。

然后,您可以使用 SM36 安排您的程序作为后台作业定期运行。

您还可以使用远程启用功能模块“RFC_READ_TABLE”,您可以为其指定任何表名和分隔符,它将为您返回格式良好的内部表。

解决此问题的一种方法是查找 SAP ERP 数据的 JDBC 驱动程序,该驱动程序通过查看 SAP 逻辑表级别来收集表。

一旦您拥有正确的 JDBC 驱动程序,您就可以从 Pentaho 使用它。

我已经在 Talend 上尝试过这种基于 SAP ERP 解决方案的 JDBC 并且效果很好。

正如之前的评论所指出的,RFC_READ_TABLE 在表字段数量和记录数量方面非常有限,更不用说转换问题了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM