ScriptLoader - Client

  • Release version: Yokohama
  • Updated January 30, 2025
  • 1 minute to read
  • 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
    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

    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);
    }