ServiceNow Agent Workspace - block an agent from creating a ticket from interaction if another user already has
UI Action conditions:
'create incident' button
add this to the condition field:
&& (new InteractionUtils().intHasRelatedInc(current.sys_id) == 'false')
'create request' button
add this to the condition field:
&& (new InteractionUtils().intHasRelatedReq(current.sys_id) == 'false')
'create case' button
add this to the condition field:
&& (new InteractionUtils().intHasRelatedCase(current.sys_id) == 'false')
script include "InteractionUtils" functions:
intHasRelatedInc: function(current_sys_id) {
var table_name = 'incident';
var field_name = 'u_interaction';
if (current_sys_id == undefined) current_sys_id = this.getParameter('sysparm_current_sys_id');
var record = this.getGlideRecord(table_name, field_name, current_sys_id);
if (record == null)
return 'false';
return 'true';
},
intHasRelatedReq: function(current_sys_id) {
var table_name = 'sc_request';
var field_name = 'parent_interaction';
if (current_sys_id == undefined) current_sys_id = this.getParameter('sysparm_current_sys_id');
var record = this.getGlideRecord(table_name, field_name, current_sys_id);
if (record == null)
return 'false';
return 'true';
},
intHasRelatedCase: function(current_sys_id) {
var table_name = 'interaction_related_record';
var rel_rec_table_name = 'sn_customerservice_case';
if (current_sys_id == undefined) current_sys_id = this.getParameter('sysparm_current_sys_id');
var record = new GlideRecord(table_name);
record.addQuery('interaction', current_sys_id);
record.addQuery('document_table', rel_rec_table_name);
record.query();
if (record.hasNext())
return 'true';
return 'false';
},
getGlideRecord: function(table_name, field_name, field_value) { // Returns a glide record object, which has a specified value in a specified field.
if (field_name == undefined) field_name = this.getParameter('sysparm_field_name');
if (field_value == undefined) field_value = this.getParameter('sysparm_user_value');
var user = new GlideRecord(table_name);
user.addQuery(field_name, field_value);
user.query();
if (user.next())
return user;
return null;
},
Comments
Post a Comment