Как сделать динамический список возможных значений дополнительного поля

Для того, чтобы сделать возможным выбор значений дополнительного поля из выпадающего списка, вам потребуется создать само поле типа "Строка" и соединить его со скриптом, соответствующим интерфейсу com.trackstudio.external.TaskUDFLookupScript.
Ниже приведен пример скрипта, который выводит список спринтов, в которые можно поместить историю (Подробнее о SCRUM в TrackStudio)

package scripts.task_custom_field_lookup;

import com.trackstudio.external.TaskUDFLookupScript;
import com.trackstudio.secured.SecuredTaskBean;
import com.trackstudio.exception.GranException;
import com.trackstudio.app.adapter.AdapterManager;
import java.util.List;
import java.util.ArrayList;
import scripts.CommonScrum;

/**
 * Выводит список спринтов для выбора
 */
public class SprintList extends CommonScrum implements TaskUDFLookupScript{

    public Object calculate(SecuredTaskBean task) throws GranException {
        List<String> list = new ArrayList<String>();
        list.add("");
        String category  = SCRUM_SRINT_CATEGORY;
        List<SecuredTaskBean> sprints = AdapterManager.getInstance().getSecuredTaskAdapterManager().getTaskListByQuery(task.getSecure(),
        "SELECT t.id FROM com.trackstudio.model.Task as t WHERE t.category.id = \'"+category+"\'");
        for (SecuredTaskBean t: sprints){
            if (t.canView() && !t.getStatus().isFinish()){
                list.add(t.getName()+" [#"+t.getNumber()+"]");
            }
        }
        return list;
    }
}