EMC Documentum: получить предыдущую версию IDfSysObject

Если мы используем метод IDfId checkin(boolean keepLock, String versionLabels) throws DfException, мы получаем новую версию IDfSysObject. Как я могу удалить последнюю версию и вернуться к предыдущей версии?


person Yegoshin Maxim    schedule 17.05.2012    source источник


Ответы (2)


Чтобы вернуться к предыдущей основной версии, вам необходимо сделать следующее:

  1. получить любую предыдущую основную версию объекта, которую вам нужно сделать текущей как IDfPersistentObject.
  2. Добавьте «CURRENT» к индексу [0] в атрибуте R_VERSION_LABEL.
  3. сохранить измененный IDfPersistentObject

  4. получить все IDfPersistentObject с R_VERSION_LABEL>, чем ваша новая текущая версия

  5. удалить «CURRENT» из индекса [0] в R_VERSION_LABEL, если он существует.
  6. сохранить IDfPersistentObject
  7. вызовите IDfPersistentObject.destroy(). Это не подведет.
person vdmitrienko    schedule 22.05.2012

Если вы хотите сохранить последнюю версию, вы можете проверить последнюю версию, прочитать содержимое предыдущей версии в ByteArrayOutputStream, используя метод getContent(), и установить для этого содержимого последнюю версию, используя setContent().

Или, если вы не хотите сохранять последнюю версию, вы используете метод IDfPersistentObject.destroy() для объекта, чтобы удалить единственную последнюю версию, чтобы предыдущая версия стала текущей.

person yiannis    schedule 17.05.2012
comment
destroy() не работает. Выбрасывается исключение. Есть некоторые зависимости, которые не позволяют уничтожить последнюю версию. Я до сих пор не могу найти эти зависимости. И мне не нужна текущая последняя версия, ага. Так что уничтожать нормально. - person Yegoshin Maxim; 18.05.2012