Code not working
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2024 03:10 AM
Hi All ,
My requirement is if affected ci was selected then in the related list the selected affected ci will display in that there was one field called swapped ci. This swapped ci is a reference field. my requirement is if members click on the swapped ci field. then the reference field should display only the cis which have same model id present in configuration item field.
So i have written script include and called that script include in advanced reference qualifier. but it seems it was not working. so i am pasting the code below. so kindly someone help what the mistake in the code and assist me in this. Thank you for your help!
script include :
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2024 03:40 AM
Hi,
Use this
var TaskCISwappedCIQualifier = Class.create();
TaskCISwappedCIQualifier.prototype = {
initialize: function() {
},
getQualifier: function(taskSysId)
{
var qualifier = '';
var taskGr = new GlideRecord('task_ci');
taskGr.addQuery('task', taskSysId);
taskGr.query();
if(taskGr.next())
{
if(taskGR.Asset.sys_class_name =='hardware')
{
var taskNumber = taskGr.task.number;
if(taskNumber && taskNumber.indexOf(INC) !==-1)
{
var affectedCI =taskGr.getValue('ci_item');
if(affectedCI)
{
var affectedCIGr = new GlideRecord('cmdb_ci');
if(affectedCIGr.get(affectedCI))
{
var modelId =affectedCIGr.getValue('model_id');
if(modelId)
{
qualifier = 'model_id=' +modelId;
}
}
}
}
}
}
return qualifier;
},
type: 'TaskCISwappedCIQualifier'
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2024 03:42 AM
I've not validated the Script Include but there could well be an issue with how you're calling it in the reference qualifier.
Did you try using
javascript:new TaskCISwappedCIQualifier().getQualifier(current.sys_id);
Instead of what you're currently using?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2024 03:42 AM
hi @suresh kaliappa ,
i found few issue in your script like
- taskGR.Asset.sys_class_name you are using taskGr original
- vartaskNumber = taskGr.getValue('task'); it will give sysid but you need number INCxxx so that you need to update taskGr.getDisplayValue('task');
- instead of this taskNumber && taskNumber.indexOf(INC) use taskNumber.indexOf('INC')
Please update the code as follows
var TaskCISwappedCIQualifier = Class.create();
TaskCISwappedCIQualifier.prototype = {
initialize: function() {
},
getQualifier: function(taskSysId)
{
var qualifier = '';
var taskGr = new GlideRecord('task_ci');
if(taskGr.get(taskSysId))
{
if(taskGr.ci_item.sys_class_name =='hardware')
{
var taskNumber = taskGr.getDisplayValue('task');
if(taskNumber && taskNumber.indexOf('INC') !==-1)
{
var affectedCI =taskGr.getValue('ci_item');
if(affectedCI)
{
var affectedCIGr = new GlideRecord('cmdb_ci');
if(affectedCIGr.get(affectedCI))
{
var modelId =affectedCIGr.getValue('model_id');
if(modelId)
{
qualifier = 'model_id=' +modelId;
}
}
}
}
}
}
return qualifier;
},
type: 'TaskCISwappedCIQualifier'
};
javascript : new TaskCISwappedCIQualifier().getQualifier(current.sys_id);
Please mark helpful & correct answer if it's really worthy for you.
Thanks,
BK