SuiteScripts allow developers and administrators to create flexible business logic within NetSuite such as business processes and new applications, all of which can be tailored to specific business needs. SuiteScripts are built on Javascript which enable full-featured application-level scripting capabilities throughout NetSuite. Let’s look at the different types of Suitescripts that are available for development and customization of NetSuite application:

1.Bundle Installation Script Type: Bundle installation scripts perform certain activities in target accounts as part of bundle installation, update, or uninstall. These activities may include setup, configuration, and data management tasks that would otherwise have to be completed by NetSuite account administrators. A bundle installation script can be associated with multiple bundles. 


2.Client Script Type: Client scripts, as the name suggests, are scripts that are executed on the client side. They can validate user-entered data, auto-populate fields or sublists at various form events. These scripts can be run on most standard NetSuite records, custom record types and custom NetSuite pages such as Suitelets. Client scripts execute in the user’s browser by predefined event triggers such as loading a form for editing, entering or changing a value in a field (before and after it is entered), selecting a line item on a sublist, adding a line item (before and after it is entered) and saving a form.


3.Map/Reduce Script Type: Map/reduce scripts provide a structured framework for processing large number of records or huge volume of data. These scripts can be scheduled for submission or submitted on an on-demand basis. Map/Reduce is best suited for situations where the data can be divided into small, independent parts and processed independently. Some of the key features of this script type are:

  • Execute in parallel: Advantage of Map/Reduce is that these jobs can work in parallel. Users can choose the level of parallelism when the script is deployed.
  • Yield automatically: If a map/reduce job exceeds NetSuite governance limit, the Map/Reduce framework automatically causes the job to yield and its work to be rescheduled for later, without disruption to the work done by the script.


4. Mass Update Script Type: Mass update script is a server side script that allows users to programmatically perform custom updates to fields that are not available through general mass updates. Mass update scripts can run complex calculations, as defined in your script, across records. Mass update scripts are started on demand, and users cannot prioritize them or schedule them to run at specific times. 


5. Portlet Script Type: Portlet scripts enable the users to create custom dashboard portlets. For example, users can use SuiteScript to create a portlet that is populated on-the-fly with company messages based on data within the system. The following portlet script types are supported:

  • FORM: A data entry form with up to one submit button embedded into a portlet. This type supports the Portlet module that can refresh and resize the portlet, as well as the use of record-level client-side script to implement validation.
  • HTML: An HTML-based portlet that is used to display free-form HTML. (images, Flash, custom HTML)
  • LINKS: Shows links to pages that NetSuite has defined as related. Unlike other portlets, which are column-oriented and sorted top to bottom, the Links portlet is row-oriented and sorted left to right
  • LIST: A standard list of user-defined column headers and rows.


6. RESTlet Script Type: RESTlets can be used to define custom RESTful integrations to NetSuite. A RESTlet is a SuiteScript that users can make available for other applications to call, either from an external application outside of NetSuite or from within NetSuite. When an application or another script calls a RESTlet, the RESTlet script executes and, in some cases, returns a value to the calling application. RESTlets can be useful when you want to bring data from another system into NetSuite, or if you want to extract data from NetSuite. RESTlets can also be used, in combination with other scripts, to customize the behavior of a page within NetSuite. 


7. Scheduled Script Type: Scheduled scripts can be scheduled for submission or submitted on an on-demand basis. They are server-side scripts and users can deploy scheduled scripts that can be processed on a recurring basis if needed. This script type has extremely large governance limit compared to other script types and so, users can use them for bulk-processing or long-running background processes. The shortest time interval to run a scheduled script is every 15 min. In 2.0 there is no concept of yielding automatically for schedule scripts (this used to be the case in 1.0). Developer should take care of coding the logic to handle yield scenario so that the schedule script resumes its processing from where it stopped due to the huge volume of data or reaching governance limit. 


8. Suitelet Script Type: Suitelets are extensions of the SuiteScript API that allow you to build custom NetSuite pages and backend logic. Suitelets are server-side scripts that operate in a request-response model, and are invoked by HTTP GET or POST requests to system generated URLs. They can be used to implement custom front and backends. Suitelets execute on the server.


9. User Event Script Type: User Event scripts are triggered when users work with records and data changes in NetSuite as they create, open, update, or save records. These scripts can also be used for doing additional processing before records are entered or for validating entries based on other data in the system. User event scripts can be used to perform various tasks such as Implement custom validation on records, enforce user-defined data integrity and business rules, perform user-defined permission checking and record restrictions etc.


10. Workflow Action Script Type: Workflow action scripts allow users to create custom workflow actions that are defined on a record in a workflow. Workflows can be somewhat limited in their functionality and that is where this script type comes into the picture. For example, workflows cannot interact with line items but Workflow action script can help with the same. The Workflow Action script type is intended to be invoked by a Workflow to add scripting functionality to accomplish what the workflow itself cannot.


NetSuite SuiteScript Types


Tvarana’s team of over 70 Certified NetSuite Developers have the solution for your custom development needs. Contact us here.

Please follow and like us: