Posted: Tue May 11, 2010 3:47 pm Post subject: Загрузка фотографий сотрудников из ftp в sap
Здравствуйте.
Мне нужно загружать фотографии сотрудников c ftp сервера, в том числе и в фоновом режиме.
Раньше над этим работали мои коллеги, и они реализовали загрузку фотографий вызовом двух функций:
SCMS_HTTP_CREATE_FILES – фотография размещается в репозитории
ARCHIV_CONNECTION_INSERT – фотография привязывается к табельному номеру
У меня пока что есть только одна идея: создать где-нибудь папку, через ftp загружать файл с фотографией в эту папку, а потом из нее копировать файл уже через SCMS_HTTP_CREATE_FILES в репозиторий. Но тогда к этой папке придется открывать доступ всем пользователям, которые будут работать с программой, а по требованиям безопасности нужно как раз запретить такой доступ к фотографиям, чтобы их не могли, например, изменить.
Подскажите, пожалуйста, можно ли тут обойтись без вспомогательной папки? Можно ли сразу скопировать фотографию с ftp сервера в репозиторий?
PS: На всякий случай уточню, что фотографии – это файлы с расширением bmp.
Сейчас уже есть функция, загружающая фотографии. Но она работает, только если ее запускает сотрудник (в фоновом режиме она не работала и раньше). В этой функции указывается сетевое имя файла. Но SAP установлен на UNIX, а у клиентов – Windows, и, видимо, поэтому в фоновом режиме возникала ошибка, т.к. при чтении файла путь указывался так: “\\111.111.111.111\Folder\File.bmp”, и UNIX, в отличие от Windows, эту запись не понимает (а в фоновом режиме, наверное, программа выполняется на UNIX, там же, где установлен SAP). Функция SCMS_HTTP_CREATE_FILES возвращает ошибку - SY-SUBR =1 (Bad request).
Но теперь мне нужно загружать фотографии, читая их через FTP (а не напрямую, через сетевое имя, как это делалось раньше). Пока пытаюсь разобраться, как сделать это вручную, а потом, если получится, попробую добавить и фоновый режим.
Вот то, что я пытался сделать:
Сначала я попытался использовать ту же функцию, которая загружает фотографии сейчас, и просто заменил путь с “\\111.111.111.111\Folder\File.bmp” на “ftp://ftp:[email protected]/File.bmp”. Но тогда функция SCMS_HTTP_CREATE_FILES опять возвращает ошибку - SY-SUBR =1 (Bad request).
Можно сначала считать файл из FTP в какую-нибудь папку и уже оттуда записать в хранилище объектов, но мне нужно делать эту операцию напрямую, чтобы файл нельзя было, например, изменить.
На всякий случай я скинул код функции, загружающей фотографии сюда: http://paste.org.ru/?vw883t
На вход поступают табельный номер (PERNR), путь к папке с фотографиями (PATH) и имя файла (FILENAME).
Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed May 12, 2010 10:26 am Post subject:
Программа как в фоновом, так и не в фоновом режиме все равно выполняется на сервере приложений (то есть в UNIX), а проблема тогда скорей всего в том, что для работы используемой вами функции требуется доступ к локальной машине клиента, с которой выполняется чтение из windows папок. При выполнении в фоне нет доступа к локальной машине. Если это так, то в фоне она работать никак не будет, какой бы сетевой путь вы не указали.
Я не смотрел код ФМ SCMS_HTTP_CREATE_FILES, но почему Вы решили, что она будет работать по протоколу FTP? Это же не навороченный Internet Explorer, поддерживающий несколько протоколов. Скорей всего она поддерживает только HTTP, как указано в ее названии.
Поэтому если нужна реализация ftp, используйте специальные функции для работы по ftp, примеров на этом форуме достаточно.
Uploading data using the ftp server
По ftp данные читаются сначал во внутреннюю таблицу, поэтому в промежуточных папках не хранятся.
С юних тоже можно добраться до Windows папок, только нужно настроить соотвествующии сервисы: Samba, NFS или подобное. _________________ Молитва - это запрос разработчику на изменение кода программы.
vga
Большое спасибо.
Кажется, начал разбираться. Если кому-нибудь пригодиться – из ftp можно считать файл во временную таблицу, используя функцию FTP_SERVER_TO_R3.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.