Page 1 of 1

Пример скрипта: запрещаем закрывать задачу, если...

PostPosted: Tue Nov 06, 2007 5:44 pm
by admin
Этот Add message / BEFORE триггер запрещает закрывать задачу, если на нее ссылаются (через кастом-поле типа Task) незакрытые задачи.

Пример условия: нельзя закрывать задачи, соответствующие исправлениям по багу, пока сам баг не закрыт:

Code: Select all
    SecuredStatusBean ssb = AdapterManager.getInstance().getSecuredStepAdapterManager().getNextStatus(message.getSecure(),message.getTaskId(), message.getMstatusId());
if(ssb != null && ssb.isFinish()) {
Map refs = AdapterManager.getInstance().getSecuredIndexAdapterManager().getReferencedTasksForTask(sc, message.getTaskId());
for (Iterator it = refs.keySet().iterator(); it.hasNext(); ) {
            SecuredUDFValueBean udf = (SecuredUDFValueBean)it.next();
            HashSet hs = (HashSet)refs.get(udf);
            for (Iterator internal = hs.iterator(); internal.hasNext();){
                SecuredTaskBean bean = (SecuredTaskBean)internal.next();
                 if (bean.canView() && !bean.getId().equals(message.getTaskId()) && !bean.getStatus().isFinish()){
                     throw new UserMessageException("You can close feedback/bug/training only if all the related tasks are finished!");
                 }
            }
        }
}
return message;