Service Operations Workspace - Close Button with Generative AI

Jeff16
Tera Contributor

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