Форумы Интермех
 ° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° RSS ° Wiki °

Форумы Интермех / Search, ImProject / Работа с дополнительными файлами через API
Автор Сообщение
Katenok-13
Участник
ОАО "Бийский котельный завод"

Дата: 16 Май 2013 12:12:54


Мне нужно из дополнительных файлов документа (в частности - техпроцесса) получить определённый файл (эскизы), затем его открыть/сохранить, чтобы потом применить функцию экспорта в другую систему. Сделать это нужно программно, без участия пользователя. Как это сделать?

LLirik
Участник
НПО "Автоматика"

Дата: 20 Май 2013 10:01:13


День добрый.
Если это именно доп. файлы из карточки документа, то ничего особенно сложного.

Работаем через TS4App. Малый пример на C#:

//подключаемся к Search
var s_4=new S4.TS4App();//не проверяю есть ли Search вообще
s_4.Login();//не проверяю залогинился ли пользователь

//Открываем документ
s_4.OpenDocument(5);//не проверяю есть ли такой документ вобще

//если нужна архивная версия
s_4.CopyVersionToDir(@"C:\Temp");//не проверяю есть ли у документа вообще файл
//если нужна рабочая версия
s_4.WorkCopyToDir2(@"C:\Temp");//не проверяю находится ли чообще документ на редактировании

//получаем список имен дополнительных файлов
var advanfile=s_4.GetAdvanFilesList();//

Теперь у вас есть файлы в директории и имена дополнительных файлов, делайте с ними что хотите.

poseur
Участник
Барнаул

Дата: 30 Авг 2013 12:12:45


при таком подходе, помимо самого файла документа и всех его доп. файлов, происходит выгрузка также всех связанных документов, в случае когда у вас разработка ведется в 3D (Inventor). А если еще добавить пару десятков исполнений самого документа... процесс выгрузки занимает существенное количество времени и все ради одного доп. файла.
Но другого варианте я так понял нет. Хотя логичным было-бы расширить API в эту сторону.

Jk
Участник
НПП Интермех

Дата: 30 Авг 2013 14:20:31


poseur Есть функция CopyVersionToDir_NoRefs которая не извлекает связанные документы

LLirik
Участник
НПО "Автоматика"

Дата: 2 Сен 2013 08:30:48


Угу. Интермех верно отметил есть такая функция.
Можно совсем жестоко. Работать с хранилищем файлов не через API.

poseur
Участник
Барнаул

Дата: 4 Сен 2013 10:22:22


Ну вот хоть что-то.
А как быть с +100500 доп. файлов? Ждать пока все выгрузятся?
В итоге, отклик системы с ощутимым запаздыванием.

ЗЫ. Но за информацию про функцию - спасибо.

LLirik
Участник
НПО "Автоматика"

Дата: 4 Сен 2013 12:57:55


Если вам совсем критично время, и не объязателен запуск самого Search.
То, получаем данные напрямую из файлового хранилища.
При этом появляется несколько отдельных вариантов развития. Например: на чем работает ваше файловое хранилище, как настроено сжатие данных для файлов...
К примеру если файловое хранилище в СУБД, то из соответствующей таблицы получаем строку о файле. Просим у интермех информацию по упаковке и распаковке данных. Анализируем использованный тип сжатия для файла, распаковываем и получаем требуемый файл.

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL 
...



Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 

На форуме сейчас: гостей - 1
пользователей - 0
Наибольшее количество посетителей: 87 [1 Янв 2017 02:23:26]
гостей - 87 / пользователей - 0


miniВВ © 2001-2022