Validation on date/time type variable on catalog item

Sanket Choughul
Tera Contributor

Hi Community,

I have 2 variables named-

Required date and expired date. The requirement is that maximum selectable 'expired date' should be 'required date' + 3 months. Can someone help me with this?

 

1 ACCEPTED SOLUTION

Raghu Ram Y
Kilo Sage

Hi @Sanket Choughule 

Try the below...working..tested..  

Write OnChange client script on Expired Date

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    var getStartDate = g_form.getValue('u_start_date');
    var ga = new GlideAjax('SetEndDate');
    ga.addParam('sysparm_name', 'ED');
    ga.addParam('sysparm_start_date', getStartDate);
    ga.getXML(HelloWorldParse);

    function HelloWorldParse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        if (newValue > answer) {
            g_form.setValue('u_end_date_new', '');
            g_form.addErrorMessage('End Date needs to be within 3 months');
        }
		
    }

}

 

Script Include

var SetEndDate = Class.create();
SetEndDate.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    ED: function() {
        var getNum = this.getParameter('sysparm_start_date');
		var gdt = new GlideDateTime();
		gdt.setDisplayValue(getNum);
                var newDate = gdt.addMonths(3);
		return gdt.getDate();
    },
    type: 'SetEndDate'
});

View solution in original post

6 REPLIES 6

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

you can use UI policy for this or Client Script with GlideAjax

Regards
Ankur

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

Raghu Ram Y
Kilo Sage

Hi @Sanket Choughule 

Try the below...working..tested..  

Write OnChange client script on Expired Date

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    var getStartDate = g_form.getValue('u_start_date');
    var ga = new GlideAjax('SetEndDate');
    ga.addParam('sysparm_name', 'ED');
    ga.addParam('sysparm_start_date', getStartDate);
    ga.getXML(HelloWorldParse);

    function HelloWorldParse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        if (newValue > answer) {
            g_form.setValue('u_end_date_new', '');
            g_form.addErrorMessage('End Date needs to be within 3 months');
        }
		
    }

}

 

Script Include

var SetEndDate = Class.create();
SetEndDate.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    ED: function() {
        var getNum = this.getParameter('sysparm_start_date');
		var gdt = new GlideDateTime();
		gdt.setDisplayValue(getNum);
                var newDate = gdt.addMonths(3);
		return gdt.getDate();
    },
    type: 'SetEndDate'
});