Inventor и промышленное производство – Русский – только для чтения
Делитесь знаниями, задавайте вопросы, читайте самые популярные темы по Inventor.
отмена
Отображаются результаты для 
Показать  только  | Вместо этого искать 
Вы имели в виду: 

Некорректные внешние ссылки в Autodesk Vault 2015 R2

2 ОТВЕТ 2
РЕШЕНО
Ответить
Сообщение 1 из 3
GeorgeLGT
618 просмотров, 2 ответов

Некорректные внешние ссылки в Autodesk Vault 2015 R2

Имеется проект, размещенный в Autodesk Vault. Файлы проекта соединены внешними ссылками.

При возврате некоторых файлов проекта в хранилище Vault, выдается следующая ошибка:

Ошибка

 

Были проверены все связи внешних ссылок, следующим образом:

  1. Утилита Autodesk Reference Repair Utility. Были исправлены несколько файлов, которые загружены в хранилище через клиент Vault, и, соответственно, имели оборванные связи;
  2. Выгрузка проекта + Проверка каждого файла вручную. Были обнаружены еще 2 файла с «битыми» ссылками, которые не обнаружила утилита восстановления внешних ссылок;
  3. Сравнение количества и имён внешних ссылок в палитре внешних ссылок чертежа в AutoCAD и вкладке применения окна дополнительных свойств Autodesk Vault. Был обнаружен чертеж, в котором количество внешних ссылок в палитре AutoCAD было меньше, чем в окне дополнительных свойств Vault (утилита не находит такие отличия – ПРОВЕРЕНО НА ДРУГОМ ПРОЕКТЕ, где такая ошибка была сделана намеренно).

Перед выполнением каждого из вышеперечисленных пунктов проверки, старые данные удалялись из локальной папки и загружались из хранилища заново.

Тем не менее, после проведения описанных выше процедур – ОШИБКА ОСТАЕТСЯ!

 

Используемые версии ПО:

  • Autodesk Vault 2015 (серверная и клиентские части);
  • Autodesk AutoCAD 2015.

Количество файлов в проекте 54.

2 ОТВЕТ 2
Сообщение 2 из 3
dogadin
в ответ: GeorgeLGT

Нашли решение (все-таки пост давно был написан)?


Есть идея, что слишком длинный путь + длинное имя файла (более 255 символов в сумме). 

Сообщение 3 из 3
GeorgeLGT
в ответ: dogadin

Да, нашли решение:

 

Причина в том, что к одному файлу подключено n-ное количество внешних ссылок, в которые, в свою очередь, также подлючены ссылки и т.д. Мало того, они все могут быть соединены между собой. Таким образом формируется огромное дерево ссылок (у нас доходило до 92 файлов). Так вот при возврате какого-либо файла в Vault, он рекурсивно проверяет количество всех внешних ссылок - т.е. не только подгруженные в Ваш чертеж, но и все нижележащие (потому я и написал "рекурсивно"). Проверяются ссылки в файлах, которые выгрузились в папку, при открытии рабочего файла, и информация о внешних ссылках на сервере.

 

Ну проверяет и ладно... Если количество ссылок, и информация о их имена совпадают, то никаких ошибок не будет. НО! Как только какой-либо пользователь подключит новую внешнюю ссылку, и вернет файл в хранилище через клиент Vault'а - она не зафиксируется в базе (все ссылки в клиенте можно посмотреть в окне "Дополнительных свойств" - на вкладке "Применения"), и не будет отображаться в Vault'е. Это происходит потому, что при возвращении файла через надстройку AutoCAD'а, в хранилище поступает информация о возвращаемом файле, а также объект, предоставляющий данные о внешних ссылках (в этом можно убедиться, если открыть SDK Vault'а).
А вот, при возврате файла через клиент - такая информация в хранилище не поступает, т.к. ему просто не поступают такие данные (для этого нужно вытащить информацию из файла, что клиент не делает). И тут возникает момент, когда формируется ОШИБКА! Т.к. при рекурсивной проверке внешних ссылок оказывается, что в одной из них есть некая ссылка "x", а в списке ссылок в Vault'е ее нет, именно тогда Vault выдает сообщение, скриншот которого я приводил в сообщении. Обычно пользователи в этот момент сохраняют файл и возвращают его через клиент, не говоря об ошибке, а возможно формируя еще одну! Так начинается эта "эпидемия".

 

Есть несколько решений:

1. Отключить возврат файлов в хранилище через клиент Vault'а, тогда все внешние ссылки будут фиксироваться, при возврате файлов через надстройку приложения. Нам этот вариант не подошел, т.к. периодически возникает необходимость положить в хранилище большой объем документов. Индивидуально - очень долго. (Хотя для этого тоже есть специальная утилита, поставляемая с Vault'ом, но пользоваться кучей дополнительных приложений пользователей не устраивает, что, я считаю, правильно).

2. Второй вариант - более сложный, но именно им мы и воспользовались. Мы написали приложение, которое, выгружает все файлы из дерева внешних ссылок, о котором я писал выше, вместе с информацией о внешних ссылках, хранящейся в БД Vault'а. Затем формирует информацию о внешних ссылках каждого файла, из тех что были выгружены (используя AutoCAD в консольном режиме). А затем информация сравнивается (тут важно хорошо разбираться во "внешних ссылках"). В итоге получилось приложение, наподобие Autodesk Reference Repair Utility, но работающее с деревом внешних ссылок, и находящего ВСЕ ОШИБКИ, в т.ч. те, которые эта утилита не находит. (Это, кстати, позволяет подключить дополнительные проверки файлов).
3. Третий вариант - ненамного сложнее. К Vault'у можно написать модуль, который при возврате .dwg файлов через клиент, будет формировать информацию о подключенных ссылках, т.е. своего рода новую команду "Вернуть", как в надстройке AutoCAD. Это позволит класть в хранилище большое количество не .dwg документов, и информировать Vault о внешних ссылках для чертежей.

4. Ну, и последний вариант - в кратце "Серверная служба, которая будет следить за такими ошибками". Если интересно - расскажу подробнее.

 

Проще всего, конечно, отключить возврат файлов через клиент, т.к. не у всех есть возможность использовать программные средства. Но лучше, все-таки, написать дополнительные модули, т.к. они реально облегчают жизнь, и мне очень понравилось хорошо документированное SDK Vault'а, чего не могу сказать о самом приложении.

 

Кстати, стоит учитывать, что все это я пишу для 2015 Vault'а R2.

А еще, на предприятии не мешает иметь документ, регламентирующий работу отделов в Autodesk Vault (т.е. кто кого подключает по внешней ссылке и т.д.)

 

Удачи!

Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.

Новая тема  

Autodesk Design & Make Report