Проблемы с обновлением крайнего срока задания в конкретном потоке работ через API Java tws
Я хотел бы изменить крайний срок выполнения задания в конкретном потоке работ с использованием Java-API. Обновление срока самого потока работ не дает никаких проблем. Используя фильтр запросов на уровне потока работ, я получаю идентификатор потока работ (jsh) и создаю экземпляр объекта JobStream. Это может быть изменено и отложено.
JobStream js = (JobStream) model.getTWSObject(JobStream.class, jsh.getId(), false, context);
TimeRestrictions t = js.getTimeRestrictions();
t.setDeadlineOffset(Long.parseLong(newDlineOffset));
js.setTimeRestrictions(t);
model.setTWSObject(js, false, false, context);
Однако я не вижу, как я могу обновить временные ограничения для заданий в JobStream. Я могу получить список рабочих мест в рабочем потоке и найти временные ограничения для этих рабочих мест:
List<Job> joblist = js.getJobs();
for (Job j : joblist) {
j.getTimeRestrictions().getDeadlineOffset();
}
Тем не менее, после редактирования объекта задания я не могу снова обновить объект задания; нет функции setJobs для объекта задания потока.
У кого-нибудь есть идея, как я могу это реализовать?
2 ответа
Чтобы обновить задание в потоке заданий, вы должны изменить значение задания, а затем снова установить задание.
В вашем примере:
List<Job> joblist = js.getJobs();
for (Job j : joblist) {
j.getTimeRestrictions().setDeadlineOffset(Long.parseLong(newDlineOffset));
}
model.setTWSObject(js, false, false, context);
Я надеюсь, что это может помочь.
Lorenzo
Оказалось, что нет необходимости явно устанавливать снова Job of JobStream. При редактировании Job и последующей установке объекта JobStream отредактированные свойства Job также включались в объект JobStream.
JobStream js = (JobStream) model.getTWSObject(JobStream.class, jsh.getId(), false, context);
List<Job> joblist = js.getJobs();
for (Job j : joblist) {
TimeRestrictions t = j.getTimeRestrictions();
t.setDeadLineOffset(offset);
j.setTimeRestrictions(t);
}
model.setTWSObject(js, false, false, context);