У меня возникла подобная проблема.
Cначала при помощи ФМ 'SO_DOCUMENT_READ_API1' получила таблицы OBJECT_HEADER и OBJECT_CONTENT с данными аттачмента GOS.
После этого мне надо сохранить аттачмент в файл на локальный компьютер в указанную папку. Файлы могут быть Excel, Word, PDF. Имя файла и имя папки должно формироваться программно, но проблема не в этом.
Для проверки, как это работает, написала простейшую программу.
Использую ФМ 'GUI_DOWNLOAD' для сохранения аттачмента на компьютер. Файл test.pdf создается, но не открывается.
При попытке открыть его возникает ошибка "Произошла ошибка при открытии данного документа. Файл поврежден и не может быть восстановлен".
Прообовала передавать в ФМ 'GUI_DOWNLOAD' параметр BIN_FILESIZE = l_DOCUMENT-DOC_SIZE, все равно при открытии ошибка.
Что я делаю не так?
Может есть другой способ сохранять файлы аттачмента GOS на компьютер?
Code:
REPORT ZTEST_DOWNLOAD_GOS.
DATA: lt_HEADER type table of SOLISTI1,
lt_CONTENT type table of SOLISTI1 WITH HEADER LINE,
lt_DOCUMENT type table of SOFOLENTI1 WITH HEADER LINE,
l_DOCUMENT LIKE SOFOLENTI1,
DOC_id TYPE SOFOLENTI1-DOC_ID.
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
DOCUMENT_ID = 'FOL32000000000004EXT42000000000008'
IMPORTING
DOCUMENT_DATA = l_DOCUMENT
TABLES
OBJECT_HEADER = lt_HEADER
OBJECT_CONTENT = lt_CONTENT
EXCEPTIONS
DOCUMENT_ID_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
X_ERROR = 3
OTHERS = 4
.
* Выгрузка на локальный компьютер файла
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE = 000000851613
filename = 'C:\test.pdf'
filetype = 'BIN'
confirm_overwrite = 'X'
TABLES
data_tab = lt_CONTENT.