Service Operations Workspace - Close Button with Generative AI
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-18-2024 03:51 PM - edited 11-20-2024 09:29 AM
How do I create a Close Button (UI Action) so that the Generative AI box pops-up like the Resolution button does? I've copied the UI Action, script and Workspace Client Script and modified it so that the State gets changed to 7 instead of 6, but the pop-up doesn't appear:
Script:
function resolveIncident() {
var configFields = {
resolution_notes: getConfigField('resolution_notes'),
resolution_code: getConfigField('resolution_code')
};
if (noGenAIResolve() || !hasConfigFields(configFields) || g_form.isNewRecord()) {
// Older resolve behaviour
g_form.setValue('incident_state', 6);
g_form.setValue('state', 6);
g_form.setValue('resolved_by', g_user.userID);
var sysverb = g_form.isNewRecord() ? 'sysverb_insert' : 'sysverb_update';
gsftSubmit(null, g_form.getFormElement(), sysverb);
return;
}
var formValues = {};
formValues[configFields.resolution_code] = g_form.getValue(configFields.resolution_code);
formValues[configFields.resolution_notes] = g_form.getValue(configFields.resolution_notes);
g_scratchpad.originalState = g_form.getValue('state');
g_scratchpad.setValueMap = {
incident_state: 6,
state: 6,
resolved_by: g_user.userID
};
var title = getMessage('Close');
ScriptLoader.getScripts("sn_itsm_gen_ai.GenAIModalHelpers.jsdbx", function() {
new sn_itsm_gen_ai.GenAIModalHelpers.openModal('ui16_incident_resolve_modal', title, '', formValues);
});
}
function getConfigField(field) {
if (!g_scratchpad.resolutionSkillConfig)
return '';
return g_scratchpad.resolutionSkillConfig[field] ? g_scratchpad.resolutionSkillConfig[field] : '';
}
function noGenAIResolve() {
// We do not want to have GenAI resolve for requestor persona.
var roles = g_user.roles;
if (Array.isArray(roles))
return !(roles.indexOf('itil') >=0 || roles.indexOf('sn_incident_write') >=0 || roles.indexOf('admin') >= 0 || roles.indexOf('itil_admin') >=0);
return true;
}
function hasConfigFields(config) {
if (!config.resolution_notes && !config.resolution_code)
return false;
return (!config.resolution_notes || g_form.hasField(config.resolution_notes)) && (!config.resolution_code || g_form.hasField(config.resolution_code));
}
Workspace Client Script:
function onClick() {
//Set the 'Incident state' and 'State' values to 'Closed', and display mandatory fields
g_form.setValue('incident_state', 7);
g_form.setValue('state', 7);
g_form.setValue('closed_by', g_user.userID, g_user.getFullName());
// Call the UI Action and skip the 'onclick' function
g_form.submit(g_form.getActionName());
}
0 REPLIES 0