Использую TrackStudio 4.0.4
создал before-trigger, проверяющий данные и, в случае чего выбрасывающий ошибку
- Code: Select all
throw new UserException("");
триггер отрабатывает правильно, но вместо сообщения юзеру выводится:
Возникла ошибка ClientBeforeCreateTrigger.class java.lang.reflect.InvocationTargetException
А где мое сообщение?
пробовал также GranException и даже UnsupportedOperationException
Код триггера:
- Code: Select all
package scripts.before_create_task;
import java.util.ArrayList;
import java.util.Iterator;
import com.trackstudio.exception.GranException;
import com.trackstudio.exception.UserException;
import com.trackstudio.secured.SecuredTaskBean;
import com.trackstudio.secured.SecuredTaskTriggerBean;
public class ClientBeforeCreateTrigger {
public SecuredTaskTriggerBean execute(SecuredTaskTriggerBean task) throws GranException {
String name = task.getName();
ArrayList<SecuredTaskBean> bcl = task.getAncestors();
SecuredTaskBean parent = bcl.get(bcl.size()-1);//parent
Iterator<SecuredTaskBean> childIterator = parent.getChildren().iterator();
boolean uniq = true;
while(childIterator.hasNext()){//name search
if(name.equals(childIterator.next().getName())){
uniq = false;
break;
}
}
if(!uniq)//found
throw new UserException("Компания с таким именем уже есть в списке клиентов!");
//TODO check why user see no message
return task;
}
}
