无法通过tws Java API更新特定作业流中的作业截止日期

时间:2017-08-28 15:47:03

标签: java java-api workload-scheduler tivoli-work-scheduler

我想使用Java-API更改特定作业流中作业的截止日期。 更新作业流本身的截止日期本身不会产生任何问题。在jobstream-level上使用queryfilter我得到jobstreamheader-id(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();
  }

但是,在编辑作业对象后,我似乎无法再次更新jobstream-object; jobstream-object没有setJobs函数。

有人知道我怎么能意识到这一点吗?

2 个答案:

答案 0 :(得分:0)

原来并没有必要再次明确设置JobStream的作业。编辑作业,然后只设置JobStream对象时,编辑的Job-properties也包含在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);

答案 1 :(得分:0)

为了更新作业流内的作业,您应该更改作业中的值,然后再次设置作业流

在你的例子中:

        List<Job> joblist = js.getJobs();
          for (Job j : joblist) {
            j.getTimeRestrictions().setDeadlineOffset(Long.parseLong(newDlineOffset));              
          }

        model.setTWSObject(js, false, false, context);

我希望这可以提供帮助。

洛伦佐