Как получить значения дополнительных полей
Получить значение дополнительного поля, если известен id поля, можно через HashMap
Object result = task.getUDFValues().get("udfid").getValue();
Object result = message.getUDFValues().get("udfid").getValue();
Если id поля нет, можно получить значение через список
Object result; for(SecuredUDFValueBean valueBean:task.getUdfValuesList()) { if(valueBean.getCaption().equals("udf name")) result = valueBean.getValue(); }
Object result; for(SecuredUDFValueBean valueBean:message.getUdfValuesList()) { if(valueBean.getCaption().equals("udf name")) result = valueBean.getValue(); }
Чтобы использовать такой результат в скрипте, его необходимо привести к нужному типу данных.
Тип поля | Тип результата | Примечание |
---|---|---|
Строка | String | |
Целое | Integer | |
Дата | Calendar | |
Список | com.trackstudio.tools.Pair | Содержится в trackstudio.jar. Конструктор Pair(String key, String value) |
Дробное | Double | |
Текст | String | |
Множественный список | List<Pair> | |
Задача | ArrayList<SecuredTaskBean> | |
Пользователь | ArrayList<SecuredUserBean> | |
URL | com.trackstudio.containers.Link | Содержится в trackstudio.jar. Конструктор Link(String link, String description) |
Ниже приведен пример скрипта, который возвращает список имен задач, которые являются значениями поля типа задача.
package scripts.task_custom_field_value; import com.trackstudio.exception.GranException; import com.trackstudio.external.TaskUDFValueScript; import com.trackstudio.secured.SecuredTaskBean; import com.trackstudio.secured.SecuredUDFValueBean; import java.util.ArrayList; class Example implements TaskUDFValueScript { public Object calculate(SecuredTaskBean task) throws GranException { String udfid = "4028808a1947f52201194818b51900ad"; /*ID поля, из которого нужно получить значение*/ ArrayList<String> names = new ArrayList<String>(); SecuredUDFValueBean result = task.getUDFValues().get(udfid); if(result!= null) { for(SecuredTaskBean securedTaskBean:(ArrayList<SecuredTaskBean>)result.getValue()) { names.add(securedTaskBean.getName()); } } return names; } }