in code/src/main/java/DataProviderSMON.java [286:387]
public void getSMONJob() throws JCoException
{
if (config.guid_validity == null || config.guid_validity.getTime() <= System.currentTimeMillis()) { //JOB EXPIRED
System.out.println("/SDF/SMON Job expired!");
config.guid = null;
}
if (config.guid == null) {
System.out.println("Executing RFC '/SDF/SMON_GET_SMON_RUNS'...");
final JCoDestination destination = JCoDestinationManager.getDestination(config.destination_name);
if (function_get == null) {
function_get = destination.getRepository().getFunction("/SDF/SMON_GET_SMON_RUNS");
} else {
System.out.println("Use function definition from cache...");
}
if (function_get == null) {
throw new RuntimeException("RFC '/SDF/SMON_GET_SMON_RUNS' not found! Check the SAP user authorization and required SAP release (ST-PI >= SP08)!");
}
SimpleDateFormat de_formatter = new SimpleDateFormat("dd.MM.yyyy");
System.out.println("-> FROM_DATE: " + de_formatter.format(config.system_date));
System.out.println("-> TO_DATE: " + de_formatter.format(config.system_date));
//START IMPORT PARAMETERS
function_get.getImportParameterList().setValue("FROM_DATE", config.system_date);
function_get.getImportParameterList().setValue("TO_DATE", config.system_date);
//END IMPORT PARAMETERS
try {
function_get.execute(destination);
} catch (final AbapException e) {
System.out.println(e.toString());
return;
}
System.out.println("RFC '/SDF/SMON_GET_SMON_RUNS' finished!");
final JCoTable result = function_get.getTableParameterList().getTable("SMON_RUNS");
System.out.println("Rows: " + result.getNumRows());
if(config.debug)
System.out.println(result.toXML());
for (int i = 0; i < result.getNumRows(); i++) {
result.setRow(i);
java.util.Date mytime = result.getTime("ENDTIM");
java.util.Date mydate = result.getDate("ENDDAT");
//DEBUG
if (config.debug) {
System.out.println("Calc Date ENDTIM " + mytime);
System.out.println("Calc Date ENDDAT " + mydate);
}
java.util.Date tmpdate = Utils.copyTimeToDate(mydate, mytime);
String tmpguid = result.getString("GUID");
String description = result.getString("DESCRIPTION");
//DEBUG
System.out.println("Found Job: " + description + " guid: " + tmpguid + " validity: " + tmpdate + "...");
if (tmpdate.getTime() > config.system_date.getTime()
&& description.contains(config.sdfmon_name)) { //SELECT NOT EXPIRED AND CONTAIN VALID TITLE
config.guid = tmpguid;
config.guid_validity = tmpdate;
System.out.println("...valid!");
} else {
System.out.println("...invalid!");
}
}
} else {
System.out.println("Use guid from cache...");
}
if (config.guid != null) {
System.out.println("Job selected, valid until: " + config.guid_validity);
System.out.println("/SDF/SMON guid: " + config.guid + " job: " + config.sdfmon_name);
System.out.println();
getSMONJobData();
getAppServers();
} else {
if (config.sdfmon_schedule) {
System.out.println("Start /SDF/SMON collector...");
startSMONJob();
} else {
System.out.println("Scheduling /SDF/SMON automatically has been disabled! Please do manually via sm36!");
}
if (config.guid == null) {
//reportUptime(false);
throw new RuntimeException("No active /SDF/SMON job with description " + config.sdfmon_name + " found! Please make sure a valid job is scheduled in transaction /SDF/SMON!");
} else {
//reportUptime(true);
}
}
}