We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Now Assist Close Button

Jeff16
Tera Contributor

How do I create a Close Button (UI Action) so that the Now Assist box pops-up like the Resolution button does in the Service Operations Workspace?  I've copied the UI Action, script and Workspace Client Script and modified it so that the State gets changed to 7 (Closed) instead of 6 (Resolved), but the pop-up doesn't appear when I click the Close Button.

 

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