-
Branch Member
Необходимость Lock определенных элементов
Добрый день.
Возникла необходимость блокировать для изменений трубопроводы в ПДМС.
Есть ли такая возможность заблокировать весь Site(или equi или pipe)? При чём заблокировать так, чтобы снять блокировку могли только определенные пользователи.
-
Premium Member
World Level
Можно в синонимах вставить строку
$S UNLOCK = CALLG UNLOCK
если синонимы не используются, эта строка будет единственной в файле msyn
и программа unlock может выглядеть вот так:
-- Get any arguments
-- =================
!arg = '$1'
handle (47,62)
!arg = ''
endhandle
-- Check for MODULE
-- ================
var !mod banner
-- !mod = !mod.after('PDMS ').before(' ').upcase()
!mod = !mod.after('Professional ').before(' ').upcase()
if (!!appcntrl.module eq 'DES' ) then
-- Check for legal USERNAMES
-- =========================
!legalusers = 'IVANOV PETROV SIDOROV'
var !currentuser EVAR username
!currentuser = !currentuser.upcase()
if (!legalusers.match(!currentuser) gt 0 ) then
$sunlock=
if (!arg.upcase().match('ALL') gt 0 ) then
unlock all
else
unlock ce
endif
$sunlock=$M/%PDMSUI%\DES\GEN\UNLOCK
else
-- !!ALERT ERROR '(2,25) Read only db'
!!ALERT ERROR 'Объект заблокирован'
endif
elseif (!!appcntrl.module eq 'DRA' ) then
-- Check for legal USERNAMES
-- =========================
!legalusers = 'IVANOV PETROV SIDOROV'
var !currentuser EVAR username
!currentuser = !currentuser.upcase()
if (!legalusers.match(!currentuser) gt 0 ) then
$sunlock=
if (!arg.upcase().match('ALL') gt 0 ) then
unlock all
else
unlock ce
endif
$sunlock=$M/%PDMSUI%\DES\GEN\UNLOCK
else
-- !!ALERT ERROR '(2,25) Read only db'
!!ALERT ERROR 'Объект заблокирован'
endif
-- if not in DESIGN or DRAFT
else
$sunlock=
if (!arg.upcase().match('ALL') gt 0 ) then
unlock all
else
unlock ce
endif
$sunlock=$M/%PDMSUI%\DES\GEN\UNLOCK
endif
return
В файле init нужно вставить строку
$m/%pdmsui%\des\gen\msyn
Фамилии - это логины пользователей, которым разрешено разлокировать. Локировать может любой юзер.
-
Branch Member
Спасибо за подсказку. Сделали и все работает. Кнопки сделали скрытыми кроме тех, чьи логины указаны. Т.е ведущий специалист лочит объект,а проектировщику выдается сообщение о том, что заблокированно тем-то. Вот только остался вопрос-особо «одарённые» сотрудники имеют возможность отключить/включить работу синонимов командами $s+ и $s- . Возможно ли это обойти?
-
Premium Member
у вас прямо как на войне...
-
Branch Member
Это не война, а суровая реальность. Необходимо отслеживать изменения в уже готовой проектной части. Поэтому главспецы и попросили о такой возможности. Сдали например какую-то часть РД, "заморозили" трубы и всё. Изменения только через служебку и руководство
-
Premium Member
World Level
А кнопки мы не делаем, чтобы не было возможномти полдсмотреть через $r6. просто набирайте в командной строке unlock all, а все остальные будут получать оттвет DB read only. Полная иллюзия правильности.
-
Branch Member
Захотелось человеку кнопочку, вот и сделали. %-)
-
Zone Level
а не лучше ли будет тогда через dac все это прописать? тогда проблем с кнопками и командами меню не возникнет
-
Branch Member
IIyx тут нужно было именно кнопки,сегодня заморозил, завтра разморозил. Непривлекая администратора проекта. Я сейчас пытаюсь разобраться с администрированием, вот там если я правильно понимаю и описаны DAC? Подскажите где почитать.
-
Pipe Level
В инструкции "Administrator user guide" глава 11.