Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Issues loading multiple UI scripts in configurable workspaces

The SN Nerd
Giga Sage
Giga Sage

I am running into some challenges trying to load multiple UI scripts (all set to UI Type ALL) in via an onLoad Client Script in a configurable workspace such as Service Operations Workspace.

Take the following onLoad Client Script set to run on Mobile / Service Portal:

 

 

function onLoad() {
    g_ui_scripts.getUIScript('VariableStateChecker').then(function(script) {
        console.log('!VariableStateChecker loaded');
    });
	
    g_ui_scripts.getUIScript('ServiceCatalogForm17_v2').then(function(script) {
        console.log('!ServiceCatalogForm17v2 loaded');
    });
    g_ui_scripts.getUIScript('GlideFormUI16').then(function(script) {
        console.log('!GlideFormUI16 loaded');
    });
    g_ui_scripts.getUIScript('GlideFormWEP').then(function(script) {
        console.log('!GlideFormWEP loaded');
    });
    g_ui_scripts.getUIScript('FieldStateChecker').then(function(script) {
        console.log('!FieldStateChecker loaded');
    });
}

 

 

Sometimes all the scripts load. Sometimes none of the scripts load. Sometimes a few of the scripts load.
The error message can be seen in the console. Screenshots below of different scripts failing on different occasions.

TheSNNerd_0-1700278503404.png

TheSNNerd_1-1700278680561.png

 


I am using Incognito mode in Google Chrome with cache disabled. I have observed the same behaviour in other browsers, so the issue seems to be with ServiceNow.

 

I have tried clearing the browser cache, running cache.do, gs.invalidateCache() and updating the UI scripts to no avail. Some UI scripts i have previously created load every time with no issue. I have also tried chaining the script loads to come in one at a time and still face the same issue.

 

The same UI scripts load consistently in the classic interface using the ScriptLoader.getScripts API. All UI Scripts are a Self Invoking function that return the API via public functions, and work for both interfaces when they are loaded successfully.

I am facing this issue in my PDI, both in Utah and post-upgrade to Vancouver.

Are UI scripts not supported in configurable workspaces? Is there another way I should be doing this, that will work for all workspaces? I am keen to re-use my code across the relevant UI.

Thanks.


ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022
0 REPLIES 0