If Incident ticket has an attachment, make a field true.

prabhmeet
Giga Expert

Hi,

I want that if incident has an attachment attached the field should show as true, otherwise false.

I am new to servicenow and not good at coding but I have written the following before business rule code on incident table.

Please also let me know Client Script is better or Business Rule.

Below mentioned code is not working. Can someone please help me with the mistake?

 var rec = new GlideRecord('incident');
rec.addQuery('sys_id', current.incident_sys_id);
rec.query();
if(rec.next()){
if(rec.hasAttachments()){
rec.u_attachment= true;
}
}

 

Thanks

1 ACCEPTED SOLUTION

Hi ,

I tried the following code in a before insert, update BR in my dev instance, which is working fine,

(function executeRule(current, previous /*null when async*/) {

	if(current.hasAttachments()){		
	current.setValue("u_has_attachment","true");
					 gs.addInfoMessage("Attachment Present");
	}
	else if(!current.hasAttachments())
		{
	        current.setValue("u_has_attachment","false");
					 gs.addInfoMessage("Attachment Absent");
			
		}
	
	

Regards,
Ajay

View solution in original post

28 REPLIES 28

Hi Ravi T, I am trying it right now, I should create the business rule on sys_attachment table or Incident table?

 

 

incident

it did not work. I have mentioned the below code


var sys_id = gel('sys_uniqueValue').value;
var attachment = new GlideRecord('sys_attachment');
attachment.addQuery('table_name','incident');
attachment.addQuery('table_sys_id',sys_id);
attachment.query();
if (attachment.next()) {
alert ('There is an attachment.');
attachment.u_attachment = true ;// Here you can return true
}


else {

alert ('There is no attachment.');// Here you can return false
attachment.u_attachment = false ;

}

are the alerts populating?

in which table the u_attachment field is stored

Hi, the alerts are also not populating. The u_attachments field I have made on the Incident form.