Esempio n. 1
0
  public List<ActiveJob> getJobHistory(Jobs job, String path, int level) {
    List<ActiveJob> list = new ArrayList<ActiveJob>();

    if (isConnected) {
      Com4jObject objJob = jobScheduler.getAbatObjectLite(path);
      Com4jObject abatJob = null;
      Com4jObject abatPlan = null;

      abatJob = objJob.queryInterface(IAbatJobLite.class);
      boolean isJob = true;

      if (abatJob == null) {
        abatPlan = objJob.queryInterface(IAbatPlanLite.class);
        isJob = false;
      }

      IAbatObjectsLite jobHistoryList;

      if (isJob) {
        jobHistoryList =
            ((IAbatJobLite) abatJob)
                .getInstances(
                    AppSettings.getCountHistory(),
                    com4j.Variant.getMissing(),
                    com4j.Variant.getMissing(),
                    com4j.Variant.getMissing(),
                    com4j.Variant.getMissing());
      } else {
        jobHistoryList =
            ((IAbatPlanLite) abatPlan)
                .getInstances(
                    AppSettings.getCountHistory(),
                    com4j.Variant.getMissing(),
                    com4j.Variant.getMissing(),
                    com4j.Variant.getMissing(),
                    com4j.Variant.getMissing());
      }

      for (int i = 1; i <= jobHistoryList.count(); i++) {
        Com4jObject obj = jobHistoryList.item(i);

        IAbatJobHistory abatObj = obj.queryInterface(IAbatJobHistory.class);

        ActiveJob aj = new ActiveJob();
        aj.setId(abatObj.id());
        aj.setName(abatObj.name());
        aj.setJob(job);
        aj.setState(abatObj.instanceState());
        aj.setExecutionTime(abatObj.executionDateTime());
        aj.setExitCode(abatObj.jobReturnCode());
        aj.setExitCodeDescription(abatObj.exitCodeDescription());
        IAbatVariables vars = abatObj.getVariables();

        aj.setUser(abatObj.executionUser());

        aj.setLevel(level);

        String param = "";

        for (Com4jObject varObj : vars) {
          IAbatVariable var = varObj.queryInterface(IAbatVariable.class);
          if (var != null) {
            param = param + var.name() + "=" + var.value() + ";";

            if (var.name().equals("Company")) {
              aj.setCompany(var.value().toString());
            } else if (var.name().equals("DateStart")) {
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
              try {
                aj.setStartDate(sdf.parse(var.value().toString()));
              } catch (ParseException e) {
                e.printStackTrace();
              }
            } else if (var.name().equals("DateEnd")) {
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
              try {
                aj.setEndDate(sdf.parse(var.value().toString()));
              } catch (ParseException e) {
                e.printStackTrace();
              }
            } else if (var.name().equals("User")) {
              aj.setUser(var.value().toString());
            }
          }
        }

        aj.setParameters(param);

        list.add(aj);

        if (!isJob) {

          List<ActiveJob> histList = new ArrayList<ActiveJob>();

          IAbatObjectsLite planHist = jobScheduler.getBatchRun(abatObj.id());
          for (Com4jObject varHistObj : planHist) {
            IAbatJobHistory abatHistObj = varHistObj.queryInterface(IAbatJobHistory.class);
            if (abatHistObj != null) {
              ActiveJob ahj = new ActiveJob();
              ahj.setId(abatHistObj.id());
              ahj.setName(abatHistObj.name());
              ahj.setJob(job);
              ahj.setState(abatHistObj.instanceState());
              ahj.setExecutionTime(abatHistObj.executionDateTime());
              ahj.setExitCode(abatHistObj.jobReturnCode());
              ahj.setExitCodeDescription(abatHistObj.exitCodeDescription());

              ahj.setLevel(level + 1);

              histList.add(ahj);
            }
          }

          if (!histList.isEmpty()) {
            aj.setChildren(histList);
          }
        }
      }

      // IAbatObjectsLite aol = jobScheduler.search(path, "*",
      // enumObjectLiteFilter., "AllFields", false);
      // for (int i = 1; i <= aol.count(); i++) {
      // Com4jObject obj = aol.item(i);
      // IAbatObjectLite abatObj =
      // obj.queryInterface(IAbatObjectLite.class);
      // System.out.println(abatObj.id());
      // }

      // jobScheduler.getInstances(AppSettings.getCountHistory(),
      // instanceStateFilter, showOldestFirst, startDateTime, endDateTime)
    }

    return list;
  }