Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [Ensemble] FTP.InboundAdapter / 8 сообщений из 8, страница 1 из 1
22.05.2015, 15:21
    #38966472
AlexShiryaev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
Добрый день!

Подскажите, пожалуйста, как настроить FTP.InboundAdapter на сканирование файлов с разными расширениями?
Например, нужно, чтобы он искал файлы с расширением *.XML или *.TXT.
Задал в FileSpec: *.XML,*.TXT - не работает.
Может кто подскажет какой шаблон должен быть?
...
Рейтинг: 0 / 0
22.05.2015, 16:22
    #38966573
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
AlexShiryaevЗадал в FileSpec: *.XML,*.TXT - не работает.
Может кто подскажет какой шаблон должен быть?Попробуйте ";" ( EnsLib.File.InboundAdapter:FileSpec ) (проверить не могу)

PS:EnsLib.FTP.InboundAdapter:FileSpecFor the wildcard specification, use the convention that is appropriate for the operating system on the FTP server machine.

источник
...
Рейтинг: 0 / 0
22.05.2015, 17:05
    #38966628
AlexShiryaev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
авторПопробуйте ";"
Не работает.

Тогда поставлю вопрос немного по другому.
Допустим поставим шаблон *.*.
Но в папке могут быть файлы и какого-то третьего типа. Ну, например, *.exe.
Как избежать их обработки в OnProcessInput бизнес-сервиса и не допустить удаления с ftp и переноса их в архив?
Например, будем делать так:Method OnProcessInput(pInput As %Library.FileCharacterStream, pOutput As %RegisteredObject) As %Status
{
   set FileName=pInput.Attributes("Filename")
   if $E(FileName,$L(FileName)-3,$L(FileName))="XML"
   {
     // какой-то код
   }
   elseif $E(FileName,$L(FileName)-3,$L(FileName))="TXT"
   {
     // какой-то код
   }
   else
   {
    // что тут должно быть, чтобы адаптер не удалил данные файл с ftp и не перенес в архив, если у адаптера выполнены соответвующие настройки?
    }
}
...
Рейтинг: 0 / 0
22.05.2015, 20:16
    #38966814
eduard93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
AlexShiryaev,

Предлагаю 2 варианта:
1. Установите свойство DeleteFromServer на 0.
В конце обработки вызывайте: ..delete(pFilename As %String, pFileDir As %String) As %Boolean

2. Попробуйте установить FileSpec = *.XML на одно расширение согласно спецификации ос. Проверьте - работает ли. Если да, то уже смотреть как несколько сделать.
...
Рейтинг: 0 / 0
23.05.2015, 00:00
    #38966878
AlexShiryaev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
eduard93 1. Установите свойство DeleteFromServer на 0.
В конце обработки вызывайте: ..delete(pFilename As %String, pFileDir As %String) As %Boolean

Спасибо, не подумал. Это может быть выход из ситуации.
eduard932. Попробуйте установить FileSpec = *.XML на одно расширение согласно спецификации ос. Проверьте - работает ли.

Это работает без проблем. Проблема в двух масках.

Кстати, в логах ftp сервера наблюдаю:
2015-05-22 13:41:56 192.168.60.101 ScanXML 192.168.205.65 2121 LIST *.XML;*.TXT 226 0 0 1656c4bb-547a-4f2d-8843-2e6599f45649 /v_9999/Input/*.XML;*.TXT
Но OnProcessInput не вызывается. Сужу по тому, что в первой строке стоит:
$$$TRACE("FileName="_pInput.Attributes("Filename")_";FileDir="_pInput.Attributes("FTPDir"))
При этом на ftp сервере:
C:\inetpub\ftproot\LocalUser>dir v_9999\Input\*.XML;*.TXT
Volume in drive C has no label.
Volume Serial Number is 6CBB-EEBC

Directory of C:\inetpub\ftproot\LocalUser\v_9999\Input

09.04.2015 14:18 1 349 999955566932.xml
21.04.2015 23:20 1 713 999955588.xml
09.04.2015 14:18 1 438 999955632.xml
3 File(s) 4 500 bytes

Directory of C:\inetpub\ftproot\LocalUser

File Not Found

C:\inetpub\ftproot\LocalUser>
...
Рейтинг: 0 / 0
23.05.2015, 01:24
    #38966905
eduard93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
AlexShiryaev, ещё можно в первом адаптере настроить всё как надо (с 1м расширением), а потом от него отнаследоваться и переопределить только расширение.
...
Рейтинг: 0 / 0
23.05.2015, 01:27
    #38966906
eduard93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
AlexShiryaev, а как выглядит корректный запрос в ftp сервере на получение 2х масок? Можно попробовать передать его.
Код: sql
1.
find -name *.xml -o -name *.txt
...
Рейтинг: 0 / 0
23.05.2015, 08:02
    #38966932
Petr0vi4444
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Ensemble] FTP.InboundAdapter
AlexShiryaev,

Если FTP установлен на linux, то маска будет такой:

\( *.XML -o *.TXT \)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [Ensemble] FTP.InboundAdapter / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]