Данные усекаются в SAP RFC

У меня есть большая строка, содержащая 400 МБ данных JSON в функциональном модуле rfc.

См. Отладчик:

sap-debugger

К сожалению, мой клиент pyRFC получает только 34 МБ.

Где и почему урезаются мои данные?

Это хорошо известное ограничение sap-rfc?

Странно, но факт, я уже успешно перенес json-строки размером 77 МБ.

Связанная проблема на github: https://github.com/SAP/PyRFC/issues/97


person guettli    schedule 25.04.2019    source источник
comment
Попробуйте вызвать этот функциональный модуль через RFC из другой системы SAP, если вы можете увидеть, связано ли это каким-либо образом с настройками вашей среды.   -  person Jagger    schedule 25.04.2019


Ответы (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.

person Jagger    schedule 25.04.2019
comment
Я использую официальную библиотеку pyRFC от SAP: github.com/SAP/PyRFC - person guettli; 26.04.2019
comment
Что ж, это не обязательно означает, что в нем нет ошибок, не так ли? - person Jagger; 26.04.2019
comment
Ваш образец со строкой 52 * 23 символов ничего не доказывает, поскольку OP говорит о 400 МБ текста. Это несравненно ... - person Suncatcher; 02.06.2019
comment
@Suncatcher Welllllll, это определенно не так, 52 * 23, потому что в этом примере он растет экспоненциально. Вы даже запускали этот пример перед тем, как опубликовать комментарий? - person Jagger; 03.06.2019
comment
it raises exponentially и что это показывает? Просто из любопытства. Пример должен быть, по крайней мере, проблемно-представимым (стремясь к ограничению RFC 2 ГБ), а не просто экспоненциально повышать - person Suncatcher; 03.06.2019
comment
O-M-G, в этом примере около 400 МБ, если не больше. Что ты не понимаешь? - person Jagger; 03.06.2019
comment
@Suncatcher: 52 * 2 ^ 23 = 416 МБ, так что этого должно быть более чем достаточно для воспроизведения проблемы, если guettli говорит, что не работает около 400 МБ ?! - person Lanzelot; 17.09.2019