When Change Planned End Date field then Attachment should be mandatory in change request form

Suresh KSB
Giga Expert

Requirement :

When change the Planned End Date field in change request form then Attachment should be mandatory.

SureshKSB_0-1712303232115.png

 

Pls help me on this requirement.

1 ACCEPTED SOLUTION

Suresh KSB
Giga Expert

The below code is working for me

 

Onchange client script

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

    if (newValue != oldValue && g_form.getValue('state') != '-5') {
       
            var catalogItemID = g_form.getUniqueValue();
            //alert('test123' + catalogItemID);
            var demo = new GlideAjax('CheckAttachmentChangeReq');
            demo.addParam('sysparm_name', 'checkAttachment');
            demo.addParam('sysparm_catalog_id', catalogItemID);
            demo.getXML(attr);
       
    }

function attr(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");

    if (answer == 'yes') {

        alert("Attachment is available now. Thanks!! : " + answer);
        return true;
    } else{

        alert("Attachment is not available!! Please proceed saving the form with the attachment : ");

        //return false;
        g_form.clearValue('end_date');
     
    }
}
}
 
Script Include :
 
var CheckAttachmentChangeReq = Class.create();
CheckAttachmentChangeReq.prototype = Object.extendsObject(AbstractAjaxProcessor, {
 checkAttachment: function() {
       
        var x = this.getParameter('sysparm_catalog_id');
        gs.log("AG formID"+ x);
        var gr = new GlideRecord("sys_attachment");
        gr.addQuery('table_sys_id', x);
        gr.addQuery('table_name', 'change_request');
        //gr.addQuery('table_sys_id', this.getParameter('sysparm_catalog_id'));
        gr.query();

        if (gr.next()) {
         //   gs.log("Kudos to you!! You have added attachment ");
            return 'yes';
        } else {
         //   gs.log("You must attach document before submitting the form.");
            return 'no';
        }
       
    },

    type: 'CheckAttachmentChangeReq'
});

View solution in original post

2 REPLIES 2

Dr Atul G- LNG
Tera Patron
Tera Patron

Hi @Suresh KSB 

 

Need to write client script or in UI policy (Script) for this

 

https://www.servicenow.com/community/developer-forum/how-to-make-attachment-mandatory-using-on-chang...

 

https://www.servicenow.com/community/developer-forum/client-script-to-make-attachment-mandatory/m-p/...

 

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************

Suresh KSB
Giga Expert

The below code is working for me

 

Onchange client script

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

    if (newValue != oldValue && g_form.getValue('state') != '-5') {
       
            var catalogItemID = g_form.getUniqueValue();
            //alert('test123' + catalogItemID);
            var demo = new GlideAjax('CheckAttachmentChangeReq');
            demo.addParam('sysparm_name', 'checkAttachment');
            demo.addParam('sysparm_catalog_id', catalogItemID);
            demo.getXML(attr);
       
    }

function attr(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");

    if (answer == 'yes') {

        alert("Attachment is available now. Thanks!! : " + answer);
        return true;
    } else{

        alert("Attachment is not available!! Please proceed saving the form with the attachment : ");

        //return false;
        g_form.clearValue('end_date');
     
    }
}
}
 
Script Include :
 
var CheckAttachmentChangeReq = Class.create();
CheckAttachmentChangeReq.prototype = Object.extendsObject(AbstractAjaxProcessor, {
 checkAttachment: function() {
       
        var x = this.getParameter('sysparm_catalog_id');
        gs.log("AG formID"+ x);
        var gr = new GlideRecord("sys_attachment");
        gr.addQuery('table_sys_id', x);
        gr.addQuery('table_name', 'change_request');
        //gr.addQuery('table_sys_id', this.getParameter('sysparm_catalog_id'));
        gr.query();

        if (gr.next()) {
         //   gs.log("Kudos to you!! You have added attachment ");
            return 'yes';
        } else {
         //   gs.log("You must attach document before submitting the form.");
            return 'no';
        }
       
    },

    type: 'CheckAttachmentChangeReq'
});