Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

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

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/...

 

*************************************************************************************************************
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/dratulgrover [ 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'
});