一个客户想要通过RFC访问SAP报告。
步骤:
这如何在SAP内部实现该部分?
我正在使用PyRFC作为客户端库。但这对这个问题根本不重要。这个问题仅与SAP内部的服务器部分有关。
在这种情况下,应通过RFC来提供报告RM07MLBS。
答案 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功能模块的权限。