Я хотел бы хранить созданные файлы (например, PDF-документы в двоичном формате) через ArchiveLink непосредственно в базе данных, а не на каком-либо сервере содержимого.
Я успешно настроил репозиторий содержимого ArchiveLink и даже сохранил первый файл в этом репозитории с помощью простого отчета. В этом отчете я использовал функциональный модуль ARCHIVOBJECT_CREATE_FILE
и передал ему путь к файлу, хранящемуся локально на моем компьютере, репозиторий контента и тип документа.
Поскольку я, однако, хотел бы использовать свой репозиторий контента для хранения созданных двоичных файлов, я хотел бы использовать функциональный модуль ARCHIVOBJECT_CREATE_TABLE
. Но реализация этого вызывает у меня некоторые проблемы.
Я попытался загрузить тот же файл, который использовал для тестирования раньше, с помощью GUI_UPLOAD
FM (тип файла «BIN»), а затем попытался заархивировать полученный BINARCHIVOBJECT
через модуль Create Table Function. Это работает без каких-либо ошибок, давая мне sy-subrc
0 и даже генерируя ARC_DOC_ID
.
Однако в моей базе данных, используемой для ArchiveLink, нет записей, и когда я пытаюсь отобразить ARC_DOC_ID
через ARCHIVOBJECT_DISPLAY
FM он сообщает мне, что не может загрузить соответствующий файл из моего хранилища базы данных (потому что, конечно, нет записи для этого ARC_DOC_ID).
Я был бы очень признателен за любые предложения, как я бы заставить это работать.
Работает (для лучшего чтения без исключений):
PARAMETERS filename TYPE sapb-sappfad LOWER CASE.
PARAMETERS contrep TYPE toaar-archiv_id.
PARAMETERS doctyp TYPE toadd-doc_type.
Call Function 'ARCHIVOBJECT_CREATE_FILE'
Exporting
ARCHIV_ID = ContRep
DOCUMENT_TYPE = DocTyp
PATH = FileName
Importing
ARCHIV_DOC_ID = ArcDocID.
Не работает:
DATA: lt_binary TYPE STANDARD TABLE OF tbl1024,
lv_filename TYPE string,
lv_length TYPE i,
lv_length2 TYPE SAPB-LENGTH.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_filename
filetype = 'BIN'
IMPORTING
FILELENGTH = lv_length
TABLES
data_tab = lt_binary.
CALL FUNCTION 'ARCHIVOBJECT_CREATE_TABLE'
EXPORTING
archiv_id = ContRep
document_type = DocTyp
LENGTH = lv_length2
IMPORTING
ARCHIV_DOC_ID = ArcDocID
TABLES
BINARCHIVOBJECT = lt_binary.
Заранее спасибо,
Мориц