Как обновить заблокированную запись в Documentum с помощью DQL?

Я не могу обновить запись с DQL из-за блокировки. Можно ли разблокировать запись, обновить ее и снова заблокировать?

Я запускаю следующий код в idql64.exe на сервере содержимого.

UPDATE dm_document objects SET keywords = 'D' WHERE r_object_id = '90000000000000001'
GO 

Сообщение об ошибке:

[DM_SYSOBJECT_E_LOCKED]ошибка:
"Операция над системным объектом не удалась, так как он заблокирован пользователем


person aduguid    schedule 31.05.2018    source источник


Ответы (3)


Вы должны либо разблокировать его через API, пользовательский интерфейс, либо сбросить атрибуты r_lock_owner и r_lock_machine. Я бы предпочел использовать API или пользовательский интерфейс. Команда API

unlock,c,{object id}

и это может быть легко заскриптовано.

Проблема вызвана проверкой — пользователем, который указан в свойстве выше.

dqMan от FME — ваш друг!

Бр, Хеннинг

person Henning Winter    schedule 31.05.2018
comment
Я проголосовал за ваш ответ, но мне нужно было использовать idql64.exe - person aduguid; 03.06.2018
comment
Только что проголосовал за этот ответ, и я также говорю, что это возможно не только из DqMan, но и из DA, в Инструменты › API Tester. - person Andrea; 17.07.2019

Да, вам нужно быть участником группы dm_escalated_allow_save_on_lock, в в этом случае Documentum сделает все автоматически.

person Andrey B. Panfilov    schedule 02.06.2018
comment
Ух ты, знаменитый Панфилов! И снова полезный совет! ;) - person Miki; 29.03.2019

Я смог добиться этого, обновив столбец r_immutable_flag.

UPDATE dm_document(all) objects SET r_immutable_flag = 0 WHERE r_object_id = '90000000000000001'
GO 
UPDATE dm_document(all) objects SET keywords = 'D' WHERE r_object_id = '90000000000000001'
GO 
UPDATE dm_document(all) objects SET r_immutable_flag = 1 WHERE r_object_id = '90000000000000001'
GO
person aduguid    schedule 03.06.2018