Конвейеризация спецификаций в Vault
Давайте рассмотрим, каким образом спецификация материалов работает в Vault. Глядя на API, это не очень понятно. Я также попытаюсь ответить на вопрос: "Почему они делают это таким образом?"
Первичный рабочий процесс
Позвольте описать "первичный процесс", который определяем, как наиболее ответственный за архитектуру. Есть много других действующих жизненных циклов, но не будем сосредотачиваться на них здесь.
Опишем последовательность событий в первичном процессе:
- Пользователь САПР добавляет файл в хранилище.
- Плагин САПР загружает объект спецификации вместе с файлом. Будем называть этот объект "файл спецификации".
- Объект "файл спецификации" хранится в базе данных и в основном остается в спящем состоянии.
- Пользователь Vault выбирает файл и запускает команду "Назначить элемент".
- Внутренне, "файла спецификации" прочитывается и становится шаблоном для создания или обновления элементов Vault. Другими словами, "файл спецификации" заполняет большинство информации в мастере назначения элементов.
- Когда мастер назначения элементов завершен, объекты элементов созданы и связаны вместе чтобы сформировать "Спецификацию элементов". Спецификация элементов - это то, что пользователь видит и с чем взаимодействует мастере элементов.
- "Файл спецификации" по-прежнему в базе данных, но он опять "впадает в спячку". Он будет снова использован, только если производится обновление спецификации элементов, или необходимо пересоздать спецификацию элементов.
Воздействие
Есть некоторые интересные последствия в результате этого процесса.
- Структура элементов не имеет ничего общего со структурой файла сборки. Файл спецификации - это единственным фактором.
- Файл спецификации загружается, даже если продукт Vault Basic. Идея заключается в том, что продукт может обновится в Vault Professional в будущем. Если обновление никогда не произойдет, данные спецификации останутся навсегда бездействующими.
- Файл спецификации не является статическими данными. Они могут быть изменены на сервере. Например, данные "заполняются" во время операции назначения элемента. Таким образом, которым вещи оптимизированы на тот случай, если детали когда-либо будут нуждаться в обновлении.
- Не гарантируется, что результат вызова GetBOMByFileId будет одинаковым, даже при вызове той же версии файла. См. предыдущий пункт.
- GetBOMByFileId фактически не используется нигде в этом процессе. Это особенность API предназначена только для тестирования и устранения неисправностей. И да, я хорошо знаю, что многие люди используют эту функцию за пределами этой области.
Сравнение файла спецификации и спецификации элементов
Вот краткий список из двух различных представлений спецификации.
|
Файл спецификации |
Спецификация элементов |
Цели |
Шаблон для спецификации элементов |
Представляют собой точную спецификацию |
Видна конечному пользователю |
Нет |
Да |
Сфера файла |
Приложена к одному и только одному файлу. |
Могут быть связаны с 0 и больше файлами. |
Можно сразу редактировать |
Нет |
Да |
Источник: http://justonesandzeros.typepad.com/blog/2012/11/the-bom-pipeline.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=1696
Опубликовано 13.12.2014