public void getSMONJob()

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