Страница 1 из 1

Как импортировать то - не знаю что ..... ;-)

Добавлено: 18 июн 2008, 10:51
Александр
Вопрос такой
Как используя только средства Лоции импортировать один/все файлы (не зная их названий) из определённого каталога в электронный архив

Ситуация простая
1. делаю отчёт (Lotsia)
2. после него скриптом формирую файл (WHS Windows Script Host)
3. формирую его название (WHS)
4. укладываю в каталог (каталог всегда один локальный у клиента)(WHS)
теперь то что получилось - нужно в архив

И получается
1. Лоция на этом этапе не знает точного имени файла но может положить в архив :wink:
2. Скрипт знает точное имя файла но не может положить в архив :wink:

до текущего момента мы формировали идентичные названия в действии и в скрипте - и проблем не было
но в связи с резким увеличением количества и типов документов - в действии формировать название (даже имея все исходные данные) - не получается - неохота просто чего там говорить то :wink: (в действиях же нет до сих пор WHS чьерт побери...)

подкиньте идею а?... :wink:
какую нибудь хитрую ... :wink: :wink:

ps
каталог всегда 'чистый' и в нем всегда лежит 'то что нужно' из имени знаю только расширение файла и пару фрагментов названия

Добавлено: 18 июн 2008, 12:02
Disillusioned
Отчеты выполняются асинхронно относительно выполнения действия над объектами. Т.е. неизвестно когда закончится формирование файла.
И неизвестно что и неизвестно когда...

Единственный известный мне способ решить данную задачу - запустить из отчетного скрипта приложеньице содержащее функцию импорта PartyAPI, где в параметрах командной строки передаются код объекта и имя файла.

Импортировать все подряд из папки возможно, если это папка общедоступного сетевого ресурса. Что-то наподобие в Sybase я делал следующим образом:
1. Кидал файлы в общедоcтупную папку (в имени файла зашивал код объекта и прочее, что нужно для импорта).
2. Периодически запускал процедуру которая при помощи:

Код: Выделить всё

call xp_cmdshell( 'dir \\\\shara\\*.doc > \\\\shara\\kc.dir /B' )
формировала файл содержащий имена файлов.
3. Содержимое файла возвращал при помощи xp_read_file (если в именах есть кириллица, надо конвертить текст с 866 на 1251 кодовую страницу).
4. В цикле действия осуществлял импорт.

Но это все не очень удобная вещь для импорта документов, зато потом здорово пригодилось для загрузки данных из текстовых файлов.

Добавлено: 18 июн 2008, 12:14
Александр
Отчеты выполняются асинхронно относительно выполнения действия над объектами. Т.е. неизвестно когда закончится формирование файла.
известно :wink: :wink: :wink:
1. в действии на шаге N запускаем отчет
2. отчет запускает скрипт заканчивающийся строчкой

Код: Выделить всё

     MsgBox "Формирование документа завершено" , 0, "Заказ"
3. в этот момент действие 'висит' скрипт закончен - нажимаем в скрипте Ок и действие продолжается со следующей строки/шага
т.е. на этот момент готовый файл уже лежит где нужно и в том же действии на следующем шаге его можно импортировать... если бы знать полное имя :wink: :wink:

ps
папка с файлом локальная и доступная юзеру (файлы формируются на местах по сетевым шаблонам)

Добавлено: 18 июн 2008, 12:21
Александр
не совсем понял на счет
Содержимое файла возвращал при помощи xp_read_file
- файл я именами я бы сформировал уже в скрипте отчета - а передать его в виде строки в переменную Лоции??

можно чуть чуть поподробнее об этом?

Добавлено: 18 июн 2008, 12:23
Disillusioned
MsgBox "Формирование документа завершено" , 0, "Заказ"
А без мессейджбокса никак нельзя?
Мне нужно импортировать множество автоматически сформированных отчетов, всякий раз подтверждать завершение будет неудобно, экспорт в Ворд медленно работает...

Добавлено: 18 июн 2008, 12:27
Disillusioned
файл я именами я бы сформировал уже в скрипте отчета - а передать его в виде строки в переменную Лоции??
В том, то и загвоздка, что из скрипта в Лоцию ничего не передашь без API.

Добавлено: 18 июн 2008, 12:37
Александр
не - можно
SQL'ем точно можно прочесть внешний файл.....
нужно посмотреть - но мысль файл с перечнем файлов - интересная :wink: :wink:

а MsgBox нам нужен был именно в ситуации с экспортом Одного файла - и совет СК нам очень тогда помог

Добавлено: 18 июн 2008, 12:41
Disillusioned
SQL'ем точно можно прочесть файл каким то Selectom - по моему
Про то и пишу (Sybase)

Для бинарного файла:
select xp_read_file(@file_name)

Для текстового файла:
select cast(xp_read_file(@file_name)as text)

Добавлено: 18 июн 2008, 12:45
Александр
понял :wink:
Спасибо-щас чего нибудь нарисуем
типа

Код: Выделить всё

действие
  отчет
     скрипт
        файлы
           файл с перечнем файлов
             MsgBox
  sql файл - в переменную действия
  импорт 

Добавлено: 19 июн 2008, 10:38
Александр
> Disillusioned

Слушай придумал :wink: :wink:
Список фалов для импорта можно хранить в своем ini файле создаваемом в конце скрипта отчета.
допустим в какую нибудь секцию бросить количество файлов а в другую пути

Код: Выделить всё

[Count]
Count=1
[Path]
Path='c:\Program Files\LotsiaSoft\PartY\Template\Temp\'
[File]
File01='CH_XXXX-35 Васенева Елена Заказ № 001-00 НОУ РПК-Наука и Образование.xls'
и работать стандартными функциями Party ProfileInt/ProfileString - другими словами передать в Лоцию значения извне

т.е. вопрос исчерпан! :wink: оказывается действительно можно импортировать то не знаю что :wink: и что характерно только средствами Лоции! :wink: :wink: Круто
Форум - то что надо

Добавлено: 19 июн 2008, 11:05
Disillusioned
Да теперь и без сетевого ресурса можно обойтись и работать с локальными дисками.
Приятно участвовать в таком обоюдополезном общении!!!

Добавлено: 25 июн 2008, 07:54
Александр
Слушай :wink: :wink: все получилось настолько элегантно (файл хранящий пути) что тащусь уже все утро, переписал под это дело все свои процедуры!!!!!
Все стало намного Прозрачней/Проще и Универсальней :wink: