display banner message on change form when selecting the planned start date

satya1995
Tera Contributor

var BlackoutCheckAJAX = Class.create();
BlackoutCheckAJAX.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    checkBlackout: function() {
        var date = this.getParameter('sysparm_date');
        if (!date) {
            return '';
        }

 

        var gr = new GlideRecord('cmn_schedule_blackout');
        gr.addQuery('start_date_time', '<=', date);
        gr.addQuery('end_date_time', '>=', date);
        gr.query();
        if (gr.next()) {
            return gr.name.toString();
        }
        return '';
    }
});

 

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

 

    var ga = new GlideAjax('BlackoutCheckAJAX');
    ga.addParam('sysparm_name', 'checkBlackout');
    ga.addParam('sysparm_date', newValue);
    ga.getXMLAnswer(function(response) {
        g_form.clearMessages(); // clear old banners
        if (response) {
            g_form.addErrorMessage("The selected time falls within the " + response + " change peak restriction calendar.");
        }
    });
}

 

function onLoad() {
    var plannedDate = g_form.getValue('planned_start_date');
    if (plannedDate) {
        var ga = new GlideAjax('BlackoutCheckAJAX');
        ga.addParam('sysparm_name', 'checkBlackout');
        ga.addParam('sysparm_date', plannedDate);
        ga.getXMLAnswer(function(response) {
            if (response) {
                g_form.addErrorMessage("The selected time falls within the " + response + " change peak restriction calendar.");
            }
        });
    }
}
this is displaying incorrect blackout name when selecting planned date as 28-04-4026 it is displaying mother date blackout name,, but mother date blackout start date time - 09-05-2026 how to fix this so that it displays correct blackout schedule name when selecting the planned date

 

 

2 REPLIES 2

SP22
Giga Sage

Hello @satya1995,

Script Include:
var BlackoutCheckAJAX = Class.create();
BlackoutCheckAJAX.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    checkBlackout: function() {
        var dateStr = this.getParameter('sysparm_date');
        if (!dateStr) {
            return '';
        }

        // Convert the input string to a GlideDateTime object to ensure 
        // correct format comparison (YYYY-MM-DD HH:MM:SS)
        var gdt = new GlideDateTime();
        gdt.setDisplayValue(dateStr); 
        var systemDate = gdt.getValue();

        var gr = new GlideRecord('cmn_schedule_blackout');
        gr.addQuery('start_date_time', '<=', systemDate);
        gr.addQuery('end_date_time', '>=', systemDate);
        // Ensure we don't pick up inactive or retired blackout records
        gr.addActiveQuery(); 
        // Order by start date so you get the most specific/recent match
        gr.orderBy('start_date_time'); 
        gr.query();

        if (gr.next()) {
            return gr.getValue('name');
        }
        return '';
    },

    type: 'BlackoutCheckAJAX'
});​


Client Script (onChange):

 
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var ga = new GlideAjax('BlackoutCheckAJAX');
    ga.addParam('sysparm_name', 'checkBlackout');
    ga.addParam('sysparm_date', newValue);
    ga.getXMLAnswer(function(response) {
        g_form.clearMessages(); // Remove previous error banners
        if (response) {
            g_form.addErrorMessage("The selected time falls within the '" + response + "' change peak restriction calendar.");
        }
    });
}

Client Script (onLoad):

function onLoad() {
    var plannedDate = g_form.getValue('planned_start_date');
    if (plannedDate) {
        var ga = new GlideAjax('BlackoutCheckAJAX');
        ga.addParam('sysparm_name', 'checkBlackout');
        ga.addParam('sysparm_date', plannedDate);
        ga.getXMLAnswer(function(response) {
            if (response) {
                // We don't clear messages here to avoid removing system notifications
                g_form.addErrorMessage("The selected time falls within the '" + response + "' change peak restriction calendar.");
            }
        });
    }
}

 

Thanks
SP

Ankur Bawiskar
Tera Patron

@satya1995 

so what debugging did you do?

what are your findings?

 

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader