Skip to main content

SuiteScript Updates in NetSuite 2025.1

2025.1 SuiteScript |

Refer to the following sections for details on SuiteScript updates for NetSuite 2025.1:

  • Removal of the Ext JS Library in 2025.1
  • Changes to Audience Settings in Script Deployments and Single Page Applications
  • Removal of Request Process for Single Page Applications
  • SuiteScript Generative AI API: New Methods in the N/llm Module
  • Additional Changes to Hidden Files

Removal of the Ext JS Library in 2025.1

As of NetSuite 2025.1, the unsupported Ext JS library is no longer available in NetSuite. The removal of the Ext JS library may break external references to it after your account is upgraded to 2025.1. If your customizations rely on the Ext JS library’s API despite its lack of support, you must do one of the following to ensure that your customizations will continue to work after your account is upgraded to 2025.1:

  • Adjust your code to work without the use of the Ext JS library.
  • To continue using the Ext JS library, you must replace it with your own external instance of the library. After you have made script updates, you can test these updates by requesting a change to your account that will remove the Ext JS library before your account is upgraded to 2025.1. To test your changes and preview the upcoming removal of the Ext JS library, contact NetSuite Customer Support for assistance. Change Changes to Audience Settings in Script Deployments and

Single Page Applications

Important: This feature is targeted to be available in February 2025. Previously, selecting all roles on the audience setting for scripts and single page applications (SPAs) meant that any role (internal and external) had access to the script or SPA. Starting 2025.1, when you select all roles on the audience setting for SuiteScript scripts and SPAs, only internal roles are selected. Additionally, internal and external roles are now shown in two separate multiselect fields. When your account is upgraded to 2025.1, expect the following changes to the UI and SDF XML reference for script deployments and SPAs:

  • Changes to Script Audience Settings
  • Changes to SPA Audience Settings

Changes to Script Audience Settings

The Audience subtab on the script deployment record now includes separate lists for internal roles and external roles:

  • Internal Roles – Includes a multiselect field with a list of internal roles. You can select individual roles from the list or check the Select All box to make the script available to all internal roles.
  • External Roles – Includes a multiselect field with a list of external roles, which you can select individually. For the scriptdeployment structured field within each script type SDF custom object, the behavior of the following fields has changed:
  • allroles – Setting this field to T (true) means that all internal roles are selected.
  • audslctrole – You can use this field to specify roles individually, including any external roles, in the script audience. If the allroles is set to T, any internal roles listed in the audslctrole field will be ignored.

These changes apply to the following custom objects for script types:

  • clientscript
  • massupdatescript
  • portlet
  • restlet
  • suitelet
  • usereventscript
  • workflowactionscript

Changes to SPA Audience Settings

The Audience Setup window on the SPA Management page now includes separate lists for internal roles and external roles:

Change

  • Internal Roles – Includes a multiselect field with a list of internal roles. You can select individual roles from the list or check the All Internal Roles box to make the SPA available to all internal roles.
  • External Roles – Includes a multiselect field with a list of external roles, which you can select individually.

For the singlepageapp SDF custom object, the behavior of the following fields have changed:

  • audienceallroles – Setting this field to T (true) means that all internal roles are selected.
  • audienceroles – You can use this field to specify roles individually, including any external roles, in the SPA audience. If the audienceallroles is set to T, any internal roles listed in the audienceroles field will be ignored.

Removal of Request Process for Single Page Applications

Starting January 2025, the request process for the Single Page Applications (SPA) feature has been removed. You can now develop SPAs if you meet the following minimum requirements:

  • Must use SuiteCloud Development Framework (SDF) SuiteApp projects
  • Must use SuiteScript 2.1

SPAs are web applications that load a single HTML page and dynamically update that page when the user

interacts with it. In NetSuite, you can create SPAs with NetSuite look and feel using the NetSuite User Interface Framework (UIF), and with full SuiteScript support and SDF deployment capabilities. For more information, see the help topic Single Page Applications. SuiteScript Generative AI API: New Methods in the N/llm Module

Two new methods are available in the N/llm module:

  • llm.evaluatePrompt(options) – Takes the ID of an existing prompt and values for variables used in the prompt and returns the response from the large language model (LLM). You can use this method to evaluate a prompt by providing values for any variables that the prompt uses. The resulting prompt is sent to the LLM, and this method returns the LLM response, similar to the llm.generateText(options) method. When unlimited usage mode is used, this method accepts the OCI configuration parameters. For more information, see the help topic Using Your Own OCI Configuration for SuiteScript Generative AI APIs.
  • llm.evaluatePrompt.promise(options) – Provides an asynchronous version of the llm.evaluatePrompt(options) method.

These new methods provide more options to interact with LLMs using SuiteScript Generative AI APIs. For

more information about these APIs, see the help topic SuiteScript 2.x Generative AI APIs.

Additional Changes to Hidden Files

The stack property of Error instances and the .toString()method on functions will be functionally discontinued in hidden files. The following changes will take place in NetSuite 2025.1, with an estimated date of June 2025:

  • Usage of functionName.toString() where functionName is part of a hidden file will result in an error.
  • The stack property of an Error instance (i.e., Error.stack) will no longer show the trace of a function if it is a part of a hidden file. Change

Files are considered hidden if any of the following is true:

  • The file record in the File Cabinet has the Hide in SuiteBundle preference enabled.
  • Your SuiteApp has a hiding.xml file in the InstallationPreferences folder with the “HIDING” defaultAction set to “HIDE.”
  • Your SuiteApp has attribute files under FileCabinet > SuiteApps > com.netsuite.project > .attributes where the hideinbundle field is set to ‘T’. As a script owner, if you use functionName.toString()or Error instances’ stack property in a hidden file, you must remove such usages to prevent the script functionality from breaking in target accounts.