【问题标题】:Data gets truncated in SAP RFCSAP RFC 中的数据被截断
【发布时间】:2019-04-25 13:38:56
【问题描述】:

我在 rfc 函数模块中有一个包含 400 MByte JSON 数据的大字符串。

查看调试器:

不幸的是,我的 pyRFC 客户端仅接收大约 34 MByte。

我的数据在哪里以及为什么会被截断?

这是众所周知的 sap-rfc 限制吗?

奇怪但真实,我已经成功传输了 77 MByte 的 json 字符串。

github 上的相关问题:https://github.com/SAP/PyRFC/issues/97

【问题讨论】:

  • 如果可以的话,请尝试通过 RFC 从另一个 SAP 系统调用此功能模块,看看这是否与您的环境设置有某种联系。

标签: abap saprfc pyrfc


【解决方案1】:

这不是 SAP RFC 的限制。我做了一个简单的测试。我在其中一个系统中创建了一个 RFC 功能模块(让我们将 RFC 目标命名为 DEV000)。看起来像这样。

FUNCTION Z_TEST .
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  EXPORTING
*"     VALUE(E_STRING) TYPE  STRING
*"----------------------------------------------------------------------

e_string = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`.

DO 23 TIMES.
  e_string = e_string && e_string.
ENDDO.

ENDFUNCTION.

然后我在另一个系统中写了一个简单的程序来调用这个功能模块。

REPORT ZZZ.

DATA: g_string TYPE string.

CALL FUNCTION `Z_TEST`
  DESTINATION `DEV000`
  IMPORTING
    e_string = g_string.

BREAK-POINT.

字符串被完整传输,因此它不能成为 SAP RFC 的限制。我猜你必须在你的 pyRFC 库或 Python 的客户端代码中搜索原因。

【讨论】:

  • 我使用 SAP 的官方 pyRFC 库:github.com/SAP/PyRFC
  • 嗯,这并不一定意味着它没有任何错误,不是吗?
  • 您的 52*23 字符字符串样本证明不了,因为 OP 讲了大约 400Mb 的文本。这是无与伦比的......
  • @Suncatcher Wellllllll,绝对不是 52*23,因为它在示例中呈指数增长。在发表评论之前,您是否运行过这个示例?
  • it raises exponentially 它显示了什么?只是出于好奇。该示例至少应具有问题代表性(倾向于 2Gb RFC 限制),而不仅仅是指数级增长
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 2021-09-21
  • 2011-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多