Проблемы с обновлением крайнего срока задания в конкретном потоке работ через 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);
Другие вопросы по тегам