Очень у меня "свежий" ответ получится
Пример получения бинарников приложений из сообщений по качеству.
Code:
DATA: l_objectid TYPE bapiborid,
lt_relat TYPE TABLE OF bapirellk WITH HEADER LINE,
l_objdisp TYPE sood2,
lt_objcont TYPE TABLE OF soli,
lt_context LIKE sdokpropty OCCURS 0 WITH HEADER LINE,
loio_object LIKE sdokobject,
phio_object LIKE sdokobject,
lt_binary_content TYPE TABLE OF sdokcntbin,
xfile TYPE xstring,
xfilename TYPE string.
DATA: xlen TYPE i.
PARAMETERS: p_qmnum LIKE qmel-qmnum.
START-OF-SELECTION.
l_objectid-objkey = p_qmnum.
l_objectid-objtype = 'BUS2080'.
CALL FUNCTION 'BAPI_REL_GETRELATIONS'
EXPORTING
objectid = l_objectid
TABLES
listofrelations = lt_relat[].
LOOP AT lt_relat.
REFRESH lt_objcont.
CALL FUNCTION 'SO_OBJECT_READ'
EXPORTING
folder_id = lt_relat-objkey_b(17)
object_id = lt_relat-objkey_b+17(17)
IMPORTING
object_hd_display = l_objdisp
TABLES
objcont = lt_objcont
EXCEPTIONS
OTHERS = 15.
TRANSLATE l_objdisp-file_ext TO UPPER CASE.
CALL FUNCTION 'SO_KPRO_DATA_FROM_OBJCONT_GET'
IMPORTING
loio_object = loio_object
TABLES
objcont = lt_objcont
context = lt_context
EXCEPTIONS
missing_kpro_data = 1
OTHERS = 2.
CALL FUNCTION 'SO_LOIO_PHIO_GET'
EXPORTING
loio_object = loio_object
IMPORTING
phio_object = phio_object
EXCEPTIONS
kpro_inconsistency = 1
x_error = 2
OTHERS = 3.
CALL FUNCTION 'SDOK_PHIO_LOAD_CONTENT'
EXPORTING
object_id = phio_object
TABLES
file_content_binary = lt_binary_content
EXCEPTIONS
not_existing = 1
not_authorized = 2
no_content = 3
bad_storage_type = 4
OTHERS = 5.
xlen = l_objdisp-objlen.
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = xlen
IMPORTING
buffer = xfile
TABLES
binary_tab = lt_binary_content
EXCEPTIONS
failed = 1
OTHERS = 2.
ENDLOOP.
Дальше хорошо только на Adobe Forms ложится - бинарник в интерфейс закидывается, а там биндинг на изображение.
Со смартформами простого пути не нашел. Можно попробовать конечно сперва выгружать на клиент, а потом пакетником на SE78 загружать...