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; }