The Zurich release has arrived! Interested in new features and functionalities? Click here for more

GlideAjax blocked from Script Include in same scope despite Isolate Script enabled

DeeMendoza
Tera Contributor

Hi all,

I'm working within the Security Incident Response (SIR) application scope (sn_si) and trying to trigger a Script Include via a client-side UI Action using GlideAjax.

The setup:

  •  The UI Action and Script Include are both in the sn_si scope
  • The Script Include is Client Callable as per the enabled field.
  • The UI Action has Isolate Script enabled
  • UI Action spits out a warning with:
    "Access to Script Include sn_si.SIR_to_CSIS_conversion_UI_Action blocked from scope: sn_si"
    UI Action Help - 1.png

I understand that GlideAjax requires the Script Include to be client-callable, but since both components are in the same scope, I expected this to work, especially with Isolate Script enabled.

Further, the Accessible Fromfield cannot be changed for application Security Incident Response
UI Action Help - 2.png

 

My Script Include:
var SIR_to_CSIS_conversion_UI_Action = Class.create();
SIR_to_CSIS_conversion_UI_Action.prototype = {
    initialize: function() {},

    createFromSIR: function() {
        var sirSysId = this.getParameter('sysparm_sirSysId');
        var result = { success: false, message: '', newRequestId: '' };

        var sourceGR = new GlideRecord('table_a');
        if (!sourceGR.get(sirSysId)) {
            result.message = 'Source record not found.';
            return JSON.stringify(result);
        }

        if (!gs.nil(sourceGR.u_linked_record)) {
            result.message = 'A related record has already been created.';
            return JSON.stringify(result);
        }

        var targetGR = new GlideRecord('table_b');
        targetGR.initialize();
        targetGR.description = 'Created from source ' + sourceGR.getDisplayValue('number');
       targetGR.setValue('u_field_1', 'value_1');
        targetGR.setValue('u_field_2', 'value_2');
        targetGR.setValue('u_field_3', 'value_3');


        var newId = targetGR.insert();
        if (!newId) {
            result.message = 'Failed to create the new record.';
            return JSON.stringify(result);
        }

        // Copy latest work note
        var journalGR = new GlideRecord('sys_journal_field');
        journalGR.addQuery('element_id', sourceGR.getUniqueValue());
        journalGR.addQuery('element', 'work_notes');
        journalGR.orderByDesc('sys_created_on');
        journalGR.setLimit(1);
        journalGR.query();
        if (journalGR.next()) {
            var latestNote = journalGR.getValue('value');
            var noteUpdateGR = new GlideRecord('table_b');
            if (noteUpdateGR.get(newId)) {
                noteUpdateGR.work_notes = latestNote;
                noteUpdateGR.update();
            }
        }

        // Update assigned_to
        var finalUpdateGR = new GlideRecord('table_b');
        if (finalUpdateGR.get(newId)) {
            finalUpdateGR.setValue('assigned_to', sourceGR.getValue('assigned_to'));
            finalUpdateGR.update();
        }

        // Link source to new record
        sourceGR.u_linked_record = newId;
        sourceGR.update();

        result.success = true;
        result.newRequestId = newId;
        return JSON.stringify(result);
    },

    type: 'SIR_to_CSIS_conversion_UI_Action'
};

My UI Action:

function createCSISRequestFromSIR() {
    var ga = new GlideAjax('sn_si.SIR_to_CSIS_conversion_UI_Action');
    ga.addParam('sysparm_name', 'createFromSIR');
    ga.addParam('sysparm_sirSysId', g_form.getUniqueValue());

    ga.getXMLAnswer(function(response) {
        try {
            var result = JSON.parse(response);
            if (result.success) {
                window.location.href = '/table_b.do?sys_id=' + result.newRequestId;
            } else {
                g_form.addErrorMessage(result.message || 'An error occurred while creating the CSIS request.');
            }
        } catch (e) {
            g_form.addErrorMessage('Unexpected error occurred.');
        }
    });
}
​
 

 

8 REPLIES 8

@DeeMendoza 

make the new script include as Accessible from "Application scopes" and then try calling

https://www.servicenow.com/community/queensland-snug/servicenow-scripting-101-glideajax-and-applicat...

AnkurBawiskar_0-1758174207074.jpeg

 

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Ankur Bawiskar This is already the case for the script include I newly created UI Action Help - 3.png

@DeeMendoza 

Please raise a case with ServiceNow.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Thank you for giving your time to take a look