The ScriptLoader API provides methods to load scripts asynchronously.

You can use this API in client-side scripts for a platform/desktop UI using ListV2 and ListV3 APIs. It isn't available for Service Portal, Mobile, or Agent Workspace.

You access ScriptLoader methods by using the global object ScriptLoader.

ScriptLoader - getScripts(Array scripts, Function callback)

Loads scripts asynchronously.

Table 1. Parameters
Name Type Description
scripts Array Array of scripts to load.
callback Function Function to call when the scripts have been loaded. The callback function must not have any arguments.
Table 2. Returns
Type Description
void

Example

var scriptFiles=[
'scripts/classes/providers/ProviderUI.js',
'scripts/classes/providers/wf_provider_client_script.js'
];

ScriptLoader.getScripts(scriptFiles, function() {
  ProviderUI.setFields(['input_transform']);
  ProviderUI.apply();
  ProviderUI.removeDisabledAttribute("sys_readonly.wf_element_activity.access");
}

ScriptLoader - getScripts(String filePath, Function callback)

Gets scripts asynchronously.

Table 3. Parameters
Name Type Description
filePath String Path, including the file name, that contains one or more scripts.
callback Function Function to call after the scripts have been loaded. This callback function should not have arguments.
Table 4. Returns
Type Description
void

Example

This example shows how load a utility script and then run the getDepartment() function.

// Client script to load a utility script and run the getDepartment callback function
ScriptLoader.getScripts('sn_ui_script_util.Utilities.jsdbx', getDepartment);

function getDepartment() {
  var req = sn_ui_script_util.Utilities.rest('json');
  req.addParam("sysparm_query", "sys_id=" + newValue);
  req.addParam("sysparm_fields", "department");
  req.addParam("sysparm_display_value", true);
  req.success(updateNotes);
  req.get("/api/now/table/sys_user");
}

function updateNotes(data) {
  g_form.setValue("work_notes", data.result[0].department.display_value);
}