Client script in scoped application is not executing the script include

harika26
Tera Contributor

The requirement is to create the pop up dialog box with all the attachments that the HR case form has when ever the handover checkbox is checked.

I have written the on change client script and called the script include using glide ajax. It is showing all the alerts from client script but not giving any logs from the script include.

Any help is appreciated. 

client script

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    // var confirm_box = confirm("Confirm Box");
    if (newValue.toString() == 'true') {
        alert("HJ newValue---" + newValue);

        var recordSysId = g_form.getUniqueValue();
        alert("HJ recordSysId---" + recordSysId);
        var tableName = g_form.getTableName();
        alert("HJ  tableName---" + tableName);

        //Initialize and open the Dialog Window

       // var dialog = new GlideDialogWindow("confirm_dialog");
        // dialog.setTitle("Add Attachment to handover"); //Set the dialog title
       //var attach = new GlideAjax('sys_attachments');
        var attach = new GlideAjax('BICheckAttachment'); //BICheckAttachment
        alert("HJ Attach");
        attach.addParam('sysparm_name', 'getAttachmentsFromForm');
       attach.addParam('sysparm_id', recordSysId);
        attach.addParam('sysparm_table', tableName);
        attach.getXML(fill);
       
        function fill(response) {
          alert("HJ Response-" + response);
			 var answer = response.responseXML.documentElement.getAttribute("answer");
			 var dialog = new GlideDialogWindow("confirm_dialog");
            dialog.setTitle("Add Attachment to handover"); //Set the dialog title
            dialog.setPreference("target_sys_id", answer);
            dialog.setPreference("target_table", tableName);
            dialog.setSize(500, 500);
            dialog.render(); //Open the dialog

        }
    }
}

script include - accessible from all application scopes is selected.

var BICheckAttachment = Class.create();
BICheckAttachment.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
	getAttachmentsFromForm: function()
	{
		gs.info("HJ CHECK IN SCRIPT INCLUDE");
		var answer= [];
		var id = this.getParameter('sysparm_id');
		gs.info("HJ ID--"+id);
		var value = this.getParameter('sysparm_table');
		gs.info("HJ value--"+value);
		var grat= new GlideRecord('sys_attachment');
		grat.addQuery("table_sys_id",id);
		grat.addQuery("target_table", value);
		grat.query();
		while(grat.next())
			{				
				gs.info("HJ--grat"+grat.next());
            answer.push(grat.sys_id.toString());
            }
		gs.info("HJ Answer"+answer);
            return 'sys_idIN' + answer.join(",");
		
    },
				
    type: 'BICheckAttachment'
});

End result should be as below - I achieved it once but without changing anything it is not working again. Dont know how it worked earlier

image

 

28 REPLIES 28

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Hi Harika, Is the same script working in global scope?

I didn't try the script In Global scope

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

your dialog box will show when you change something in field on which onchange is written

can you explain what is not working?

Regards
Ankur

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

It is not gliding to the attachments table to copy the attachments from the form.

I am not able to get the sys_id's of attachments in the response from script include

response is coming as httpobject

currently the end is coming as

find_real_file.png