Создать файл в памяти, добавить контент и конвертировать в Base64 - PullRequest
0 голосов
/ 19 февраля 2020

Существует веб-служба, работающая во внешней системе. Веб-служба ожидает файл XML, закодированный в Base64 .

. В моей программе ABAP у меня есть XML, который я хочу опубликовать в веб-службе в переменной XSTRING. .

Проблема здесь в том, что версия строки Base64 и файл, содержащий одну и ту же строку, по своей сути различны.

Самое прямое решение, которое я знаю, - записать строку в файл, а затем преобразовать файл в Base64 и опубликовать его в веб-службе. Проблема здесь в том, что строка XML, которая мне слишком чувствительна, чтобы даже временно хранить в файловой системе.

Поэтому мой вопрос:

Есть ли способ создать файл во время выполнения в памяти добавьте XML, который у меня есть, в этот файл в памяти и, наконец, преобразуйте его в строку Base64, все в течение времени выполнения, даже не используя реальную файловую систему.

DATA: lv_xstring TYPE xstring.
xstring = '<document>some xml data</document>'.

xstring -> в файл в памяти -> преобразовать в строку Base64

1 Ответ

2 голосов
/ 19 февраля 2020

Вы можете напрямую преобразовать строку или xstring в base64 в ABAP. Проверьте FM-файл SCMS_BASE64_ENCODE_STR на предмет наличия строки xtsring to base64.

С другой стороны, как правило, двоичные данные (xstring) транспортируются как строка в кодировке base64 в теле SOAP. Поэтому, возможно, вам не нужно преобразовывать его в base64, просто преобразуйте xml в xstring, а затем назначьте его параметру метода.

...