从其他公司的SAP导出数据的最佳方法

问题描述

我需要从客户的SAP ECC(SUIM->按复杂选择标准的用户-程序RSUSR002)中提取一些数据

通常我给他们一张值表,他们必须填写一些字段来提取我需要的值。

他们必须从他们的SAP进行63种不同的提取(例如,具有不同的对象值-但在同一笔交易中-您可以在打印件中看到),然后将所有提取文件发送给我。

They have to fill these fields

您知道是否存在自动提取方法,因此他们不必进行63次提取吗? 我最大的问题是他们每次犯错。有很多东西要填补。

我可以创建一个变体并将其发送给他们吗?是否可以导出我的变体,以便他们可以导入它而无需填写63倍不同的数据?

谢谢。

解决方法

您可以在事务SM35中创建记录。 您在此处填写一个tcode(SUIM),开始记录,在事务SUIM中进行一些输入,然后按“ Execute”。然后,您可以返回记录(多次F3),系统将使用命令生成一些表(结构为BDCDATA)。您可以删除不需要的部分(即单击“返回”按钮)并将其保存以用作“宏”。然后,您可以重播此录音,它将完全按照您的操作进行。 也可以将记录导出/导入到文本文件中,因此您可以探索其结构,编写一些VBA脚本以根据您的参数创建此类记录并将其发送给用户。但是请记住,空白是有意义的。

这是一个标准工具,因此系统中没有任何编码。

,

您可以将选择内容另存为变量。 填写选择标准,然后按保存。 可以重复使用。 如果变体有特殊名称,您也可以运输变体 enter image description here

,

如果这项任务每年需要多个人的大量努力,那么它可能值得自动化。

首先,您需要找出该事务从何处获取其数据。如果您花费一些时间来分析和调试事务背后的程序,那么您肯定会找到哪个SELECT在哪个数据库表上提供该数据。如果幸运的话,甚至可能有一个功能模块。

然后,您只需要编写一个自己的ABAP程序即可执行相同的选择。

现在介绍有趣的部分:如何获取数据。这里有几种方法。最好的选择取决于您的要求和您的技术基础架构。一些可能性是:

  • 让用户在前台运行该程序,使用方法cl_gui_frontend_services=>gui_download将数据保存到用户PC上的文件中,并要求他们通过电子邮件将其发送给您
  • 在后台运行程序,然后将文件保存在应用程序服务器上。然后询问您的系统管理员如何从他们的应用程序服务器获取该文件。最简单的方法是仅映射一个网络文件服务器,以便它们都写入同一位置,但是在组织方式上可能会遇到一些阻碍。 (如果我提议允许从我们网络外部访问SMB共享,​​我们的安全人员会叫我疯了,但是您的里程可能会有所不同)
  • 让程序直接通过电子邮件将数据发送给您。您可以使用功能模块SO_NEW_DOCUMENT_ATT_SEND_API1从SAP系统发送电子邮件。当然,这需要将系统配置为能够发送电子邮件(您可以使用事务代码SCOT进行发送)。同样,需要考虑安全因素。如果是PII或其他机密数据,则不应以未加密的电子邮件形式发送。
  • 使用RFC调用将数据发送到您自己的SAP系统,该系统会汇总数据
  • 使用网络服务调用将数据发送到您自己的非SAP系统,该系统会汇总数据