ADN Open CIS
Сообщество программистов Autodesk в СНГ

21/02/2015

Изменение жизненных циклов элементов

В Vault 2015 R2, старый механизм жизненного цикла был заменен основанным на сущностях механизмом лица, использованного файлами и папками. Хорошей новостью является то, что основанный на сущностях механизм наполнен удивительными особенностями, которые сделать ваши элементы более удобными. Плохая новость заключается в том, что вам теперь необходимо обновить свой код.

Если вы уже знаете, как изменять жизненный цикл файла, то вы в значительной степени знаете, как изменить жизненный цикл элемента. Эта статья ориентирована главным образом на тех, кто используют элементы, но не знакомы с механизмами жизненных циклов файлов/папок.

Шаг 1: Что такое состояния и переходы

В Vault 2015 и ранее, было легко узнать возможные состояния элементов и транзакций, потому что они задавались жестко. Были только 4 состояния и все они были связаны. В 2015 R2, администратор может определить свои собственные состояния и переходы. Они могут даже определить несколько определений жизненного цикла.   Например, один элемент может быть в "Технологическом процессе выпуска", а другой находится в «Процессе утверждения документа".  

Так что ваше приложение должно определять, какие есть состояния и переходы. Сам элемент знает, в каком состоянии он находится. Но чтобы получить больше контекста об окружающих состояниях, вы должны перейти к LifeCycleService. Вы можете не только узнать о всех состояниях и переходах, вы также можете обновить их, если у вас есть права администратора.

Шаг 2: Обновление объекта элемента

LifeCycleService делает все на уровне Сущности. Если вы хотите изменить сам деталь, вы должны пойти к ItemService. При изменении состояния на элемента, вы будете использовать одну из двух функций ...

UpdateItemLifeCycleStates является функцией для использования при перемещении элемента из одного состояния в другое в пределах определения жизненного цикла. Например, при переходе от "Завершен" к "Быстрое изменение".

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

Хорошим в об обеих функциях является то, что они являются функциями одного выстрела. Нет необходимости вызывать перед этим EditItems или UpdateAndCommitItems после. Все происходит в одном вызове.

Пример кода:

Вот быстрый пример приложения, которое вы можете использовать, чтобы увидеть, как все это вместе работает.  И в C # и VB.NET код включены.

Нажмите здесь, чтобы скачать

Источник: http://justonesandzeros.typepad.com/blog/2015/01/changing-the-item-lifecycle-state.html

 

Обсуждение: http://adn-cis.org/forum/index.php?topic=1885

Опубликовано 21.02.2015