将数据从SAP导出到SQL Server

Cra*_*son 13 sql-server sap web-services

我有一个应用程序,它使用SQL Server 2008来存储需要从SAP提供大量财务信息的数据(在该公司中使用Oracle 11作为后端).

我要求SAP人员阅读表格,他们说没办法.我让他们直接连接到我的数据库来填充我的表,他们说没办法.(我有来自Oracle数据库的提要,其他应用程序与SAP不同,使用透明网关没有问题,所以这就是为什么问这个)

他们说与SAP交互的唯一方法是使用Web服务.但由于数据量巨大,我认为这不是道路.

有没有人在SAP和SQL Server之间创建接口的经验?

我要扩展我的解释.我当前的应用程序已经由其他三个应用程序(这是一个大型企业)提供,所有应用程序都会转到我收到数据以进一步处理的相同表.所有其他应用程序(1个Oracle,2个SQL Server)执行直接更新或保存数据的存储过程.其他3个应用程序由不同的团队管理,彼此无关.所有人都在开始时抱怨,但最后都接受了将他们的数据导出到这个应用程序.

因此,理想的情况是说服SAP人员这样做:打开与SQL Server的连接并执行一些插入或运行存储过程.

vwe*_*ert 11

基本问题是 - 推或拉?您可以使用某种设置使SAP R/3系统定期导出您随后获取的某些数据,或者您可以让某些外部系统伸出并获取数据.至于"与SAP互动的唯一需要是通过使用Web服务" - 从技术上讲,这与牛的合作伙伴的粪便一样接近.可能涉及非技术问题 - 奇怪的政策或不情愿的系统管理员 - 但让我们关注细节.

至于"推送"解决方案,您可以定期运行其中一个现有报告,并将输出保存到文件或邮寄到某处.这样做相对容易,但它需要有报告为您提供所需的数据.如果它们不在那里,请记下规格并对它们进行编程或让某人对它们进行编程.这不是魔术,只是另一种编程语言.

如果你想拉,你可以直接去数据库,但我强烈反对它.一旦你点击你的第一个集群表,你就会达到死胡同.如果您正在考虑大量数据,那么提取它们的最佳方式可能是建立RFC连接(专有协议,请参见此处的许多其他问题),如果存在BAPI,则使用BAPI(这是一个编程接口,发布供官方使用并由SAP维护或用于RFC_READ_TABLE访问数据.请注意,后者不适用于所有表,它取决于表的结构(总大小和字段类型).Web服务只是添加了另一个级别的编码,而且噪声很大 - 不太适合大容量ETL过程.