Изменение жизненных циклов элементов
В 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