Атрибут DOORS не работает должным образом

Я нашел этот код, который хорошо работал в SHAREABLE EDIT:

// Attribute DXL for locked objects
if (isLockedByUser(obj))
{
obj.attrDXLName = "LOCKED"
}

и добавил:

else
{
obj.attrDXLName = "unlocked"
}

но условие else не работает (часть if работает так же). Что мне не хватает? Первый раз программирую в DXL, но у меня есть опыт C. РЕДАКТИРОВАТЬ: я понял, что условие else, вероятно, не может быть обновлено в разблокированном предмете, поэтому оно никогда не появится.

Остается вопрос: почему это не работает для Exclusive Edit? Должен ли я вместо этого проверять модуль на isLockedByUser, потому что он заблокирован на этом уровне?

// Attribute DXL for locked objects
if (isLockedByUser(obj) or isLockedByUser(current))
{
obj.attrDXLName = "LOCKED"
}

... что тоже не работает. Опять же, это работает для совместного редактирования, но не для монопольного редактирования.

Предложения о том, как заставить это поле работать для монопольного редактирования?


person Joe Marfice    schedule 26.08.2016    source источник


Ответы (1)


В Справочном руководстве по DXL (Глава 36: Общие функции › Блокировка) функция isLockedByUser описана следующим образом:

bool isLockedByUser (объект o)

Возвращает значение true, если указанный объект заблокирован текущим пользователем в режиме редактирования общего доступа. В противном случае возвращает ложь.

Эта функция не эквивалентна проверке того, может ли текущий пользователь изменять данный объект.

Я предполагаю (я сам не имел дело с блокировкой через DXL), что isLockedByUser имеет значение только тогда, когда модуль находится в режиме общего редактирования, поэтому вам, возможно, придется найти другой способ сделать то, что вы пытаетесь сделать.

person Kirk Kittell    schedule 08.09.2016