通过RFC提供

时间:2018-07-26 09:19:30

标签: sap abap saprfc

一个客户想要通过RFC访问SAP报告。

步骤:

  1. 第三方应用程序通过RFC连接到SAP
  2. RFC呼叫被传输
  3. SAP运行报告
  4. SAP返回报告。

这如何在SAP内部实现该部分?

我正在使用PyRFC作为客户端库。但这对这个问题根本不重要。这个问题仅与SAP内部的服务器部分有关。

在这种情况下,应通过RFC来提供报告RM07MLBS。

4 个答案:

答案 0 :(得分:1)

在理想情况下,您将报表逻辑封装在abap类或专用功能模块中,并将其用作报表和RFC调用的基础。但是,如果这是标准的SAP报告,并且SAP本身还不足以提供所述功能模块,则您可能没有此选项。

我认为这不是满足您要求的最佳解决方案,而只是在其他答案中已经提到的选项中添加另一个选项:商业产品Theobald Xtract Universal可以执行报告并使用几种可用的目标类型返回结果。 Xtract是Windows服务,它提供与几种目标数据库类型以及基于http的结果流的连接。但是它并不便宜,它基本上只能连接到基于SAP Netweaver的系统作为其数据源(至少已经支持S / 4)。目标目的地必须额外购买,但至少不是每个系统都必须购买,而仅是每种目的地类型(Oracle,MySQL,MSSQL ...)。

https://theobald-software.com/en/xtract-universal/

Xtract Universal使用许多客户功能模块来在目标系统中执行报告,捕获输出并返回它,基本上是一堵墙。您必须自己解析该结果,您将无法获得一个很好的预先解析的表,其中包含数据。

只是要确保对可能的利益冲突没有任何误解:我不为Theobald工作,但是我们是付费客户,并且使用Xtract进行自己的数据提取。它非常简单易用,可以在脚本中执行,但是正如所说的,只需完成一项工作即可。

答案 1 :(得分:1)

您需要一个ABAPer才能为您提供功能,我认为没有它是没有办法的。

如果您拥有ABAPer,请执行以下操作:

16

现在您有了ASCII格式的列表,可以将其转换为所需的格式。

另一种方法是将报告结果发送到假脱机,获取假脱机并将其转换为HTML / PDF。

要转换假脱机,可以使用以下功能:

SUBMIT <REPORT_NAME> ... EXPORTING LIST TO MEMORY AND RETURN.

CALL FUNCTION 'LIST_FROM_MEMORY'
  TABLES
    listobject = t_listobj.

CALL FUNCTION 'LIST_TO_ASCI'
  TABLES
    listasci           = t_ascilist
    listobject         = t_listobj.

答案 2 :(得分:0)

据我所知,通过启用rfc的功能模块触发报告的可能性有限。否则,尝试通过功能模块触发交易(基于您的报告)。 还要检查:https://archive.sap.com/discussions/thread/811196

我认为您无法将报告结果回复到您的第三方系统。

从咨询角度来看,我建议定期运行报告,将结果写入表中,通过启用了RFC的功能模块从表中获取数据(从第三方系统中获取)。

答案 3 :(得分:0)

执行此操作的最佳方法是将报表包装到启用RFC的定制功能模块中,然后授予他们运行该RFC功能模块的权限。