Submit an Advanced Customer Support Case Through
SuiteAnswers
You can now raise an Advanced Customer Support (ACS) case directly from SuiteAnswers. You can submit a case by clicking the Contact ACS Support Online button on the right of the home page under Submit a Case. When you submit a case, you can select one of the following product areas:
- SuiteCloud
- SuiteCommerce
- POS | SCIS
- ERP
- CRM | SFA
- OpenAir
Change
After you fill in all of the required fields and provide a detailed description, you can review and update your created case in the NetSuite Account Center. For more information about contacting ACS, see the SuiteAnswers article Submitting an Advanced Customer Support Case (ID 89362).
Help Center Available in Chinese
In addition to German, English (U.S.), Japanese, and Spanish (Latinoamérica), the Help Center is now also available in Chinese. To change the Help Center language, click the current language in the upper right corner of the Help Center page and select a language from the list of available languages. Note: The language preference for the Help Center is independent of the language preference specified for the NetSuite user interface. Advance Notice: Microsoft Internet Explorer 11 End of
Support
As of 2020.2, the NetSuite application will no longer support Microsoft Internet Explorer 11 or its rendering engine embedded in other browsers. Users will still be able to log in to NetSuite using Internet Explorer 11. However, support will not be offered for defects specific to this browser or its rendering engine. If you are using Microsoft Internet Explorer 11, you should switch to another supported browser. Users relying on enterprise features of the browser are encouraged to discuss options with their respective vendors. For more information, see the help topic Supported Browsers for NetSuite.
Commerce Applications
Release notes for the 2020.1 release of SuiteCommerce and SuiteCommerce Advanced will be published
at a future date. See the help topic 2019.2 Release of SuiteCommerce and SuiteCommerce Advanced for release notes on the current release. Commerce Extensions Commerce Extensions provide additional functionality to your Commerce web store. Complete release notes are available here: Commerce Extensions Release Notes. Important: Commerce Extensions are only available if they are provisioned and set up in your account. For more information, see the help topic Commerce Extensions. Site Management Tools
Change
- Sass Pre-Processor Enhancements
SMT UX Sustainability
This release enables browser bar navigation when you are logged in to Site Management Tools. This lets the forward and backward buttons of the browser function properly so you can browse your own history in the SMT screens. The SMT admin URL is always visible and editable. With the switch to route-based screens, you can now share URLs to direct screens in SMT instead of being taken to the home page immediately after you log in. The base markup for the frame, sidebar, and toolbar are updated to reduce the overall amount of code used.
Sass Pre-Processor Enhancements
The Sass precompiler enables server-side Sass compiling for extension activation. This lets
SuiteCommerce display previews of the theme skin variables while you are logged in to Site Management
Tools. You can view the changes to the theme skin variables as you make the changes. The edits you see
are a preview only and a full rebuild is done to the site when requested or after an idle timeout. Commerce Merchandising Improved Process for Applying Merchandise Hierarchy
Attributes to Items
In NetSuite 2020.1 we have improved the process for applying attributes to items in a merchandise hierarchy. Now users can apply attributes directly to a selected item in the Hierarchy Manager without using a mass update. For more information, see the help topic Applying Attributes to Items in a Merchandise Hierarchy.
Merchandise Hierarchy Visual Layout Enhancements
We have introduced navigation improvements to the visual hierarchy tree in the Hierarchy Manager for
NetSuite 2020.1. The new navigation features make it easier for users to view and move around their entire hierarchy tree structure.
Users can now:
- Collapse and expand branches of the hierarchy tree
- Activate an overview map that displays their location within the hierarchy tree
- Retain their point of reference in the tree after performing an update to the hierarchy structure For more information, see the help topic The Hierarchy Manager. Change
Standard Merchandise Hierarchy SuiteAnalytics Workbook
From NetSute 2020.1 we have provided a new preconfigured standard Merchandise Hierarchy workbook
in SuiteAnalytics. This workbook lets you analyze sales and inventory performance at both product category and attribute level. Furthermore, it can be accessed directly from the Hierarchy Manager. For more information, see the help topic Using Merchandise Hierarchy to Analyze Sales and Item Performance.
Commerce Platform
Commerce Platform includes platform capabilities that you can use to build and deploy a more interactive
New Domains Setup Procedure
The Domains Setup form has been redesigned to simplify setting up domains for web stores. The new process lets you select the type of domain you want to set up and then displays a form with the essential fields required for that domain type. Advanced domain setup options are also available. For information on how to set up different types of domains, see the help topic Set Up a Web Store Domain.
Redirect URL Domain Enhancements
The following enhancements have been made to the Redirect URL domain type:
- Secure Redirect URL Domains - Prior to 2020.1, if a redirect domain was set up for a secure domain, visitors to the secure domain were redirected to an unsecure domain. From 2020.1 onwards, the
Redirect URL domain type can be set to be a secure domain. For example:
Prior to 2020.1:https://www.olddomain.com would redirect to http://www.newdomain.com 2020.1 onward:https://www.olddomain.com redirects to https://www.newdomain.com
- Option to preserve file path and parameters - The second enhancement to Redirect URL domains is that it is now possible to preserve the original path requested by the website visitor when redirecting them to the Redirect URL domain. Prior to 2020.1, regardless of the original path requested, redirection was done to the main Redirect URL domain. For example: Change Prior to 2020.1:https://www.olddomain.com/product-a would redirect to http:// www.newdomain.com 2020.1 onward:https://www.olddomain.com/product-a?param=1 can redirect to https:// www.newdomain.com/product-a?param=1 or http://www.newdomain.com, depending on the selected option Preservation of the file path and parameters is an optional feature activated using the Include File Path and Parameters in the Redirect checkbox on the domain setup form.
Creating and Editing Web Sites by Type
This new 20.1 feature enables you to to filter and to create sites based on the selected type or Commerce web store product offering. Each web site record is now associated to a specific type, and can be filtered accordingly. As a result, only the specific filtered sites are displayed across the system in lists, dropdown menus, etc. Previously, Commerce web sites could only be filtered as either belonging to Site Builder or to SuiteCommerce Advanced. With the introduction of this new feature, you can create, edit, and update your site based on the selected Edition:
- Site Builder
- Advanced (this includes SuiteCommerce, SuiteCommerce Advanced, SuiteCommerce My
Account, SuiteCommerce InStore)
To use this feature, you must have the relevant Commerce product enabled for your account. Once the feature is enabled, you can use it by going to Setup > Site Builder / SuiteCommerce Advanced > Web Site Set Up. For information on the available site types, see Commerce Web Site Types.
Adding Items to Item Collections using Saved Searches
From 2020.1 onwards, you can create dynamic item collections and assign items to them using saved
searches. Every time an item meets the saved search criteria, it is automatically added to the item collection.
For example, you can set search criteria to create an item collection of all items manufactured by a
particular company. When a new item manufactured by the company is added to the item catalog, the item automatically becomes a member of the dynamic item collection. If the manufacturer discontinues an item and the item is removed from the item catalog, that item is removed from the item collection automatically. Another change to item collections is that creating an item collection and adding items to it is now a single step process. For more information on creating dynamic item collections, see the help topic Creating Item Collections.
Creating Item Collections using CSV Import
CSV imports are now available for static item collections. Creating a static item collection using CSV
Import is a two step process because you must import item collections and the item collection members
separately. Item Collection records and Item Collection-Item Map records are linked together using the Item Collection External ID which ensures that the correct items are mapped to the correct item collection.
Change
Note: It is essential that the CSV import file for Item Collection-Item Map contains the related Item Collection External ID in the correct format. For a template and instructions on how to create the file correctly, see the help topic Item Collection Item Map. The following CSV import types are available:
- Item Collection - this creates an Item Collection record for each item collection listed in the CSV import file.
- Item Collection-Item Map - this creates an Item Collection-Item Map record for each item collection. Note: CSV imports are not available for dynamic item collections and their members. For more information on creating item collections using CSV imports, see Item Collections CSV Import.
Introducing Web Store Order Workbook Template
As part of 20.1 release, NetSuite is making a new workbook template available for SuiteAnalytics users. The workbook template is named Web Store Orders, and it helps track and retrieve data regarding the items that were ordered through a web store. Furthermore, workbook users can also analyze which items have been purchased in which site. As such:
- The Web Store Order report provides an overview on the items ordered through the web store. It shows transactions which were submitted from the web store and groups them by item name.
- The Customers Ordering Items report provides visibility into customers and the items they ordered.
- The Items Ordered by Customers report helps visualize the items that were ordered. You can access this workbook template by going to Analytics > Standard Workbooks > Web Store Orders. For more information on how to use this workbook template, see Web Store Order Workbook Template.
Update to Commerce Elevated Permission Framework
Elevated permissions enable .ss and .ssp files to access records that are not normally available for
execution by the Anonymous Shopper role. In 2020.1, the list of records for which elevated permissions are available has been optimized. For more information on elevated permissions, see the help topic Link Website Customizations to User Roles (SuiteScript 1.0) or Link Website Customizations to User Roles (SuiteScript 2.1). For a list of supported records, see Records Supported by Elevated Permissions Framework. Account-Specific Domains for Marketing Campaigns and
Online Forms
In the past, NetSuite domains were always specific to the data center where your account was hosted. Links in online customer, case, and customer forms pointed to these data center-specific domains.
Similarly, links in marketing templates also pointed to the data center-specific domains. These data
center-specific links have made it difficult to seamlessly move NetSuite accounts among different data centers.
Change
Over the past few years, NetSuite has introduced account-specific domains. These domains do not
contain data center-specific identifiers. Instead, they contain your NetSuite account ID. Account-specific
domains remove dependencies on the data center where your account is hosted. An account-specific
domain has the format
System Email Template Customization
In the 20.1 release, System Email Templates (SETs) receive an updated interface that provides a more intuitive way for customizing templates. In previous releases, you were able to customize SETs by clicking Edit on the SETs list. The name of this button has now been updated to Customize. In addition, a Customize button has been added to standard SETs. You can access the SET customization feature by going to Setup > Company > Email > System Email Templates (in administrator mode) and pressing Customize next to the email you want to customize. For more information on how to customize SETs, see the help topic Customizing Templates for System- Automated Email.
Commerce Category Customer Segment Assignment
With Personalized Catalog Views enabled, this feature lets you directly associate a category with a customer segment from the category form. Previously, you had to use the Customer Segment Manager in
NetSuite administration to create the associations. Now there is a tab on the commerce category form in
NetSuite administration that lets you assign the category to one or more customer segments. For more information on using Personalized Catalog views, see the help topic Personalized Catalog Views. For more information on using Customer Segment Assignment, see Commerce Category Customer Segment Assignment.
Commerce Category Multi-Language Support
The 2020.1 release adds the ability to use multiple languages for commerce categories and subcategories. There is a language selector at the top of the edit form that lets you select which language you want to edit. On this form, only the translatable fields display when a language other than the company base language is used.
There is a domain switcher on the toolbar that displays all domains associated with the website, grouped
together by language. If the multi-language features are not in use, the domains are listed in a single, ungrouped list.
Change
For more information, see Commerce Category Multi-Language Support.
SuiteCommerce InStore
SuiteCommerce InStore (SCIS) uses a phased release process to distribute managed-bundle upgrades. Each phase consists of a different group of customers that receive the latest SCIS release. Administrators set up for customers within a phased group receive an email notification listing when their upgrade will occur. Note: Contact your account representative or Customer Support if you have questions about the availability of SCIS 2020.1. This SCIS release provides behind-the-scenes performance improvements and new Application Performance Management (APM) sensors.
New APM Sensors
We added the following sensors to assist you with monitoring and managing performance at the SCIS point of sale.
- Display add customer form — Lists the time used to prepare and display a form for adding a new customer. Begins when sales associate taps option to add new customer. Ends when customer form displays.
- Apply line-item discount, cart ready — Measures the time used to add a discount to an item in the cart. Starts when sales associate applies the discount from the discount form. Ends when the associate can resume interacting with the cart.
- Retrieve transaction from scan — Displays the time spent retrieving transaction information via a NetSuite search initiated by SCIS. Begins when sales associate scans transaction code on receipt. Ends when SCIS receives the information from NetSuite.
- Display retrieved transaction — Shows the time used to display scanned-transaction information retrieved from NetSuite, Begins when information is made available to SCIS. Ends when SCIS displays the information to the sales associate.
- Display store transaction history — Measures the time required to display a transaction from the store’s history option. Begins when sales associate taps option to display history and ends when the transaction list displays.
- Begin return from transaction details — Displays the time spent preparing a return from transaction details. Starts when sales associate initiates return from transaction details. Ends when return form opens and associate can begin selecting return options. Associate can start return via receipt scan, transaction history list, or customer timeline.
SuiteApp Distribution
SuiteApp distribution includes SuiteBundler and SuiteApp Marketplace capabilities that you can use to distribute customizations to accounts. View the SuiteApp Distribution Mechanism 2020.1 New Feature Training.
Change
- SuiteApp Control Center Now Generally Available
- New SuiteApp Marketplace Available for Distributing SuiteApps
- Localization Context Filtering Supported for Scripts in Bundles
- Translatable Field References to Terms in Translation Collections Supported in Bundles
- SuiteBundler Support Updates
Bundle Support During Release Phasing
Bundle support during phasing of 2020.1 is consistent with the support provided during previous
releases. During phasing of 2020.1, some accounts continue to use 2019.2 at the time that other accounts are upgraded to 2020.1. Therefore, you may be using a different version than some of the accounts where your bundles are installed. Review the descriptions below for a reminder of how bundles from different versions are handled during release phasing.
- Bundles developed with 2019.2 can be installed in accounts that are already using 2020.1.
- Bundles developed with 2020.1 can be installed in accounts that are still using 2019.2, but note the
following limitations:
- When a user in a 2019.2 account installs a bundle from a 2020.1 account, the bundle installation stops if there are object types in the bundle that are not supported in 2019.2.
- A bundle with a script that uses a new API available only in 2020.1 can be installed into a 2019.2 account, but the script may not function correctly because 2019.2 does not support the API.
SuiteApp Control Center Now Generally Available
In NetSuite 2020.1, SuiteApp Control Center is now generally available for defining and managing your SDF SuiteApp distribution process in a single location. If you are a SuiteApp release manager, you can deploy SuiteApp projects to the SuiteApp Control Center and distribute them to users as SuiteApp releases in the SuiteApp Marketplace. You can set the SuiteApp Marketplace availability for a SuiteApp to one of the following:
- Public – All NetSuite customers can view and install the SuiteApp.
- Shared – Only specific companies can install the SuiteApp. When the availability is set to Shared, all NetSuite customers can still view the SuiteApp.
- Unlisted – Only specific companies can view and install the SuiteApp. For more information about setting SuiteApp availability, see the help topic Setting SuiteApp Listing Access. The Allowed Accounts list is a single location that is shared between Shared and Unlisted SuiteApps. The Allowed Accounts list specifies which company accounts can install the Shared and Unlisted SuiteApps.
Additionally, upgrades can be pushed only to company accounts that are listed in the Allowed Accounts
list. For information on how to add company accounts to the Allowed Accounts list, see Managing Allowed Accounts for Shared and Unlisted SuiteApps. To make a SuiteApp available to users for installation in the SuiteApps Marketplace, the SuiteApp must have an application ID in the Advanced Partner Center (APC) record and must have completed both a listing review and a Built for NetSuite (BFN) review. For more information about the requirements for distributing SuiteApps in the SuiteApp Marketplace, see the help topic Requirements for SuiteApp Listing Availability. Change New SuiteApp Marketplace Available for Distributing
SuiteApps
As of 2020.1, the SuiteApp Listing page has been replaced with the new SuiteApp Marketplace. You can use the SuiteApp Marketplace to find and install SuiteApps created using SuiteCloud Development Framework. The SuiteApp Marketplace is currently available to Administrators and users with the SuiteApp Marketplace permission. To access the SuiteApp Marketplace, go to Customization > SuiteCloud Development > SuiteApp Marketplace. The following screenshot shows how SuiteApps are listed in the SuiteApp Marketplace: You can view all public and shared SuiteApps in the SuiteApp Marketplace. Each SuiteApp is represented by a SuiteApp tile that contains the SuiteApp name, publisher, and first release date. Users can also sort the SuiteApp tiles by SuiteApp Name, Publisher, or Latest Release Date.
Change
Click a SuiteApp tile to view the details of the SuiteApp. The following screenshot shows the SuiteApp details page for a SuiteApp in the SuiteApp Marketplace: To learn about the information that is available on the SuiteApp details page for each SuiteApp, see the help topic Viewing SuiteApp Listings.
Users can perform the following actions in the SuiteApp Marketplace:
- Install SuiteApps that are shared to their account and support their NetSuite account version. For more information, see the help topic Installing from the SuiteApp Listing Page.
- Upgrade SuiteApps that have been installed in their account when a new SuiteApp version is available. For more information, see the help topic Upgrading from the SuiteApp Listing Page.
- View the status of a SuiteApp after an install, upgrade, or uninstall has initiated. Users can view only some states of the SuiteApp in the SuiteApp Marketplace. For more information on the states that can appear on the SuiteApp details page of the SuiteApp Marketplace, see the help topic Viewing SuiteApp Installation or Uninstallation Status. To view and uninstall SuiteApps obtained from the SuiteApp Marketplace, go to Customization > SuiteCloud Development > Installed SuiteApp List. For the desired SuiteApp, select Uninstall from its action menu. Localization Context Filtering Supported for Scripts in
Bundles
As of 2020.1, localization context filtering is supported for SuiteScript 2.0 user event and client scripts included in bundles. If a script included in a bundle has localization context filtering set up, that filtering works in all target accounts where the bundle is installed.
Change
A record’s localization context represents the country or countries associated with that record.
Localization context filtering is set up in the Localization Context field on the Context Filtering subtab of
the script deployment record. This setting controls the records on which user event and client scripts run, based on the localization context of the records. For example, if a script has the localization context of France set on its deployment record, it runs only on records that have a localization context of France. It does not run on records with other localization contexts. For more information about localization context filtering, see:
- Introducing Localization Context – User Event and Client Script Association
- Determining the Localization Context
- Localization Context Filtering for SuiteScript 2.0 For information about using the Bundle Builder to bundle SuiteScript objects, see the help topic Objects Available in Customization Bundles. Translatable Field References to Terms in Translation
Collections Supported in Bundles
When you bundle custom objects that contain translatable fields with references to terms in Translation
Collections, those translation collections are also included in the bundle. For information about
translatable fields, see Translatable Fields Support and Translation Collections as XML Definitions. SuiteBundler Support Updates Note the following changes to SuiteBundler support in 2020.1: Newly Supported Notes
SuiteBundler Object
Expense Sublist on Expense You can include workflows on the Expense sublist for expense report record in
Report bundles. For more information about the Expense sublist, see Support for Expense Sublist on Expense Report. For information about adding workflow custom objects to bundles, see the help topic Bundling a Workflow. Financial Institution You can include Financial Institution Connectivity plug-in custom objects in bundles. Connectivity Plug-in The plug-in provides a way for NetSuite to use the Financial Institution Connectivity API to directly connect customers to a specific financial institution. For information about customizing and using the Financial Institution Connectivity plug-in, see Financial Institution Connectivity API. For information about adding custom objects to bundles, see the help topic Objects Available in Customization Bundles.
Sales and Purchase Custom You can include sales and purchase custom transaction types in bundles. For
Transactions information about sales and purchase custom transactions in NetSuite, see Sales and Purchase Custom Transactions Available and Sales and Purchase Transaction Types Overview. For information about including custom transaction types in bundles, see the help topic Custom Transaction Types in Bundles. Change SuiteBuilder - Customization
Sales and Purchase Custom Transactions Available
NetSuite 2020.1 extends custom transactions flexibility with the addition of two new custom transactions types: sales and purchase. With sales and purchase transaction types, you can create custom transactions similar to invoices, cash sales, credit memos, vendor credits, bills, and more. You can utilize most of the standard sales and purchase transactions functionality like the Items sublist, taxes (SuiteTax only), and revenue recognition. You can also include your name and define numbering sequences and permissions for your custom transactions. If you have the Custom Transactions feature enabled on your account, the new sales and purchase custom transaction types are available. For more information, see the help topic Enabling the Custom Transactions Feature.
Sales and purchase custom transaction types enable you to:
- Comply with local requirements, such as those in Latin America (e.g. demonstrations and goods for repair) or JAPAC (e.g. adjustment invoices).
- Comply with expectations of specific business verticals, such as not–for–profit (e.g. donations and grants).
- Create solutions designed for specific types of customers.
Sales and Purchase Custom Transactions Support
Sales and purchase custom transaction types provide the functionality of standard sales and purchase transactions. Change
New Accounting Subtab
A new Accounting subtab is available on the Custom Transaction Type page. Use the Accounting subtab to enter all relevant information for defining the GL impact (main line account) of the transaction. You can perform line-level adjustments using the Custom GL Lines plug-in. For more information, see the help topic Custom GL Lines Plug-in.
Sales and Purchase Custom Transaction Instances
When creating sales and purchase custom transaction instances, you can apply promotions, gift certificates, discounts, revenue recognition, amortization schedules, installments and more. System Notes v2 Page Available for Custom Transaction
Configuration and Roles and Permissions
System Notes v2 is available for custom transaction type configuration, and roles and permissions
configuration. System Notes v2 captures details, including changes to sublists, and groups the changes using summary actions. The audit trail enables you to see the types of changes performed on record fields, such as create, update, change, and so on. You can also see the date and time each change was performed and by whom. System Notes v2 also retains information for deleted transactions and records. In System Notes v2, changes are listed in reverse chronological order, with the most recent changes at the top of the page. The System Notes page shows information about the level of actions that have been performed. Details of the action are grouped underneath and can be expanded and collapsed for viewing. This condensed format reduces the amount of data first displayed when you browse the audit trail so that you can track or investigate the history. Note: System Notes v2 and System Notes are separate systems. There is no change to the existing System Notes. As of 2020.1, System Notes v2 captures audit trail information for custom transaction type and roles and permissions configuration pages. To view information about changes made to roles and permissions prior to 2020.1, use the System Notes subtab on the role record.
Viewing System Notes v2
To access System Notes v2, click System Notes located in the top right of the following pages:
- Custom Transaction Type
- Role System Notes v2 groups audit data by action as shown in the following example. Change
Viewing System Notes v2 from a SuiteAnalytics Workbook
You can use the System Notes v2 workbook available in SuiteAnalytics Workbook to view and analyze system notes for custom transaction type and roles and permissions configuration. The System Notes v2 workbook is available in every account. To create a custom SuiteAnalytics workbook, select the System Notes v2 Workbook dataset in SuiteAnalytics Workbook. For more information, see the help topic System Notes v2 (Beta) Workbook. Account–Specific Domains Supported in Custom Fields and
Custom Center Links
NetSuite 2020.1 introduces account-specific domains in custom fields and custom center links. You
should use account–specific domains instead of data center-specific URLs.
Previously, NetSuite domains were specific to the data center where your account was hosted. Links in
custom fields and custom center links used these data center–specific domains. NetSuite domains are no
longer specific to data centers. Instead, they are account–specific domains, which are domain specific to
your account, not to the data center where the accounts are hosted. For more information, see the help
topic URLs for Account-Specific Domains.
The account–specific domains feature automatically translates current data center–specific URLs to
the appropriate account–specific domain URLs. For example, a system.eu2.netsuite.com link in your
custom center automatically becomes
During your active NetSuite sessions, data center–specific URLs are automatically changed to account–
specific domain URLs. Configuration remains unchanged. Links that use the appropriate account–specific domain respond faster than links translated in the current session. When you create custom center links, if you attempt to add a data center–specific URL, a warning message appears that includes an account–specific domain URL that you should use instead. Consider making the suggested change. If you decide not to replace the data center–specific URL with the suggested account–specific domain URL, the URL as you entered it is saved. In the NetSuite center, the link translates to an account-specific domain URL. When you create hyperlink, rich text, long text, free-form text, text area, help, and inline HTML custom fields, if you add a data center-specific URL, the URL automatically translates to an account-specific domain URL. For more information, see the help topic How to Transition from Data Center-Specific Domains New Languages Supported in Advanced Printing
Templates
The following languages are now available to use with Advanced PDF/HTML Templates:
- Hebrew
Change
- Armenian
- Bengali
- Gujarati
- Hindi
- Marathi
- Kannada
- Tamil
- Telugu For more information about languages available for advanced printing, see the help topic Languages for Printed Forms that Use Advanced Templates.
Updates to Third-Party Libraries Used in Advanced Printing
Advanced PDF/HTML templates now use updated versions of the BFO library and CKEditor for additional stability and security.
- The BFO library has been updated to version 1.1.70.
- CKEditor has been updated to version 4.12.1. For more information, see the help topic Third-Party Notices and Licenses. Improvements to Error Messages and Handling of
Corrupted Custom Segments
A custom segment can sometimes become corrupted if any of its required components are missing. A completely defined custom segment must contain one custom record component, and one each of the following five custom field component types: Body, Column, Entity, Event, and Item. For information about the components of a custom segment, see the help topic Creating a Custom Segment. If any components are missing from the custom segment, you receive a segment corrupted error on the Custom Segment configuration page. However, you can continue to use the custom segment configuration page with limited operations available. As of 2020.1 if you installed a custom segment from a bundle and it is damaged, you can reinstall the bundle to correct the error. If you created a custom segment manually and it is damaged, delete the custom segment definition and recreate it. When you edit the definition of a corrupted custom segment, only the Cancel button is available. Depending on your permissions, the Delete button might also be available. If a form or applied record accesses a corrupted custom segment, you can save or view the record without the custom segment value. For more information, see the help topic Adding a Custom Segment to a Bundle. SuiteAnalytics
Change
- Dataset Separation in SuiteAnalytics Workbook
- New Date Filters for SuiteAnalytics Workbook Pivot Tables and Charts
- New Table View Tab in SuiteAnalytics Workbook
- Idle Session Timeout for SuiteAnalytics Connect
- 2020.1 Connect Browser
Dataset Separation in SuiteAnalytics Workbook
Prior to 2020.1, you defined, visualized, and analyzed your workbook source data in a single workbook object. As of 2020.1, workbooks and datasets exist as separate objects, each with their own respective owners and accessibility rights. In a dataset, you define your workbook source data by selecting record types, fields, and criteria for further analysis in a workbook. Conversely, in a workbook you visualize and analyze your data using tables, pivot tables, and charts. Separating workbooks and datasets enables you to connect a single dataset to multiple workbooks, reducing the number of redundant workbooks in your account and preventing data discrepancies. Only dataset owners and users with administrator permissions can edit the datasets in your account. Any changes to a dataset are automatically propagated to the connected workbooks. Furthermore, you can now create workbooks using any of the existing datasets that you have access to in your account. This saves you time during the workbook authoring process and enables less experienced users to create complex workbooks. To support this feature, the following enhancements have been made throughout SuiteAnalytics
Workbook:
- Workbook Accessibility Changes
- Analytics Home Page Updates
- New Authoring Workflows
- New Table View
- Changes to Migrated Workbooks
Workbook Accessibility Changes
Like in previous releases, your access to a workbook depends on the features enabled in your account, the role you use to log in to NetSuite, and the permissions assigned to you. In 2020.1 however, you must also have access to a dataset before you can a workbook that uses the dataset. Only the owner of a dataset or a user with administrator permissions can give you access to a dataset that you did not create. If you are an administrator, or if you have the Analytics Administrator permission, you can access, edit, and delete any workbooks or datasets in your account. For more information about accessing workbooks and datasets, see the help topic Accessing and Sharing Workbooks. For more information about the Analytics Administrator permission, see the help topic The Analytics Administrator Permission.
Analytics Home Page Updates
The Analytics Home page has been redesigned to display both datasets and workbooks.
Change
From this page, you can create new workbooks and datasets, or share, edit, and delete any of the
workbooks or datasets that you own. If you are an administrator or if you have the Analytics Administrator permission, the Analytics Home Page displays all workbooks and datasets in your account. For more information, see the help topic Workbook Listing Page.
New Authoring Workflows
In 2020.1, you can create workbooks based on any of the existing datasets that you have access to. If you are an administrator or if you have the Analytics Administrator permission, you can create workbooks based on all the datasets in your account. Furthermore, although workbooks and datasets now exist as separate objects, you can still make changes to a dataset from within a workbook. Additionally, when you make those changes, you can now preview the effect of your edits throughout the workbook before you save them. For more information, see the help topic Custom Workbooks.
New Table View
If you want to explore your workbook source data without accessing or editing the connected dataset, you can use the new Table View component. For more information, see New Table View Tab in SuiteAnalytics Workbook.
Changes to Migrated Workbooks
Any workbooks you created prior to 2020.1 have been migrated as two separate dataset and workbook
objects. The data and selections you made within your workbooks is unchanged, however the Dataset tab now exists as its own dataset object and as a Table View within the workbook object. For more information, see the help topic Custom Workbooks. New Date Filters for SuiteAnalytics Workbook Pivot Tables and Charts In 2019.2, SuiteAnalytics Workbook introduced new filtering options for pivot tables and charts, such as the ability to filter the top or bottom results based on a specific measure.
Change
In 2020.1, SuiteAnalytics Workbook adds support for filtering results using date conditions. You can base these conditions on specific dates or custom date ranges. For more information, see the help topic Pivot Table and Chart Filters.
New Table View Tab in SuiteAnalytics Workbook
In 2019.2, you could create multiple charts and pivot tables in a workbook, but you were limited to one
Data Grid. This limitation meant that any changes made in the Data Grid would impact all workbook
components. Therefore, you could not use the same dataset to explore different combinations of fields, filters, and sorting options in a single workbook. To do so, you had to re-create the dataset in a new workbook. In 2020.1, you can use the new Table View to explore your datasets without altering the source data of any associated workbooks. You can also add multiple Table Views in a single workbook, which lets you try different combinations of fields, filters, and sorting options. Using the Table View does not require complex customizations. Table Views enable you to view your data without having to set a layout or define fields from joined records or custom formulas. To create a Table
View, drag the fields from the Fields list to the Table Viewer. After you add the fields to the Viewer, you can
filter and sort them as needed. Viewing your data on a Table View can be helpful to decide how to build your charts and pivot tables. As with charts and pivot tables, you can also rename each instance of the Table View in your workbooks. The icons for the three workbook components are as follows:
- Table Views are represented by the icon.
- Pivot Tables are represented by the icon.
- Charts are represented by the icon.
Idle Session Timeout for SuiteAnalytics Connect
As of 2020.1, SuiteAnalytics Connect enforces idle session timeout policies to enhance the security of your connections and optimize system resources. After 90 minutes of inactivity, SuiteAnalytics Connect sessions automatically time out. The idle session timeout change is available for testing in 2020.1 Release Preview accounts when your Release Preview account is ready to use. For details about Release Preview, see the help topic Release Preview Availability. If you exceed the time limit of inactivity, you are logged out of your session. To access the Connect Service, you must log in again. Note: The time during which a query is running is not considered time of inactivity. You should always close all sessions that you are not using. As of 2020.1, sessions automatically time out after 90 minutes of inactivity. The time limit will be set to a lower value in an upcoming release. The idle session timeout applies to ODBC, JDBC, and ADO.NET drivers. Note: The idle session timeout occurs when you query the NetSuite.com and NetSuite2.com data sources. For more information, see the help topics New Connections and Types of NetSuite Sessions. Change 2020.1 Connect Browser The 2020.1 Connect Browser is not yet available. CSV Import Newly Supported Record Types for CSV Import
Record Type Notes
Inbound Shipment The inbound shipment record tracks such key shipment information as expected
delivery dates, items in the shipment, quantity to be received, and links to associated documentation and transactions. To import inbound shipment data, in the Import Assistant, set the Import Type to Transactions, and the Record Type to Inbound Shipment. For more information, see Inventory Details on an Inbound Shipment. Item Collection
Order Release records:
- Item Process Family
- Item Process Group
- Pick Strategy records
- Zone
- Wave Enhanced Size of the Name and Translation Fields in CSV
Import Map Translation
As of 2020.1, the Name and the Translation fields in the CSV Import Map Translation dialog have been enhanced and you can now enter up to 64 characters. This enhancement allows the translation of names and descriptions, even when the translation is longer than the original or when it uses a different alphabet. For more information see the help topic Translating Import Map Name and Description. Sales and Purchase Custom Transactions Available for CSV
Import
As of 2020.1, you can use the CSV Import Assistant to import sales and purchase custom transactions.
Change
Additionally, the following sublists and subrecords are available for sales and purchase custom transactions:
Sublist or Subrecord Availability Related Help Topics
Revenue Recognition Sales custom transactions. Revenue Recognition
Amortization Purchase custom transactions. Amortization Feature Overview
Shipping Sales custom transactions with the option of enabling item Shipping line shipping and shipping to custom addresses.
Promotions Sales custom transactions. Promotions
Landed Costs Purchase custom transactions with the option of enabling Landed Cost landed cost per line or landed cost for the whole transaction. Installments Sales custom transactions and purchase custom Creating Installments for sales. transactions. Vendor Installment Payments for purchases. For more information on how to import custom transactions, see the help topic Custom Transactions Import.
Commerce Category Translation Sublist Import
The 2020.1 release adds the option to import translations for Commerce Categories. Translations are based on Locale and result in the creation of a translation sublist record on the commerce category record. The following fields are available for import:
- External ID
- Addition To
- Description
- Heading
- Locale
- Name
- Page Banner
- Page Title
- Thumbnail Image For more information on importing translations for Commerce Categories see Commerce Category Translation Sublist. Effective Dating for Employee Record Changes Available with CSV Import As of 2020.1, you can import changes to the employee record that are effective as of a past or future date, using the CSV Import Assistant. For more information about the effective dating feature for employee information, see the help topic Effective Dating for Employee Information.
Change
For details about the permission requirements for effective dating, see the help topic Effective Dating Permission Requirements. For more information about importing employee record changes with effective dating, see Import of Employee Record Changes with Effective Dating. SuiteFlow (Workflow Manager)
Support for Expenses Sublists in Workflows
As of 2020.1, sublist actions are now supported on the Expenses sublist on Expense report records. With this change, you can run workflows and create sublist action groups set to execute on the Expenses sublist. Previously, sublist actions were only supported on the Items sublist on Transaction records. The following table shows the workflow actions supported on the Expenses sublist on Expense report records, and indicates whether support is available for different workflow elements: Workflow Actions Server Triggers Client Triggers* Entry/Exit Sublist Action Scheduled
Group
Create Line Yes Yes Yes Create Record Yes Return User Error Yes Yes Set Field Value Yes Yes Set Field Display Yes Yes Yes Label Set Field Mandatory Yes Yes Yes *Supported client triggers vary based on the workflow action. The addition of support for the Expenses sublist on the Expense report record allows you to further customize your workflows to meet your specific business needs. You can use the Expenses sublist to add or update individual expenses on an Expense report record. For more information about the Expenses sublist, see the help topic Expense Report Sublist Fields. For more information about workflow actions, see the help topic Workflow Actions Overview. Change to Default Behavior of Context Selection in
Workflows and Actions
As of NetSuite 2020.1, the default behavior of context selection in workflows and actions is different than earlier versions of NetSuite. Previously, when you created a workflow or added an action to a workflow, all of the contexts were selected by default, including Web Store and Web Application.
Change
Now when you create a workflow or add an action to a workflow, all of the contexts are selected by
default, except for Web Store and Web Application. Additionally, the Context field displays how many contexts you have selected. This change in behavior does not impact existing workflows and actions. The default behavior does not affect how you select contexts, and you can still select the Web Store and Web Application contexts. These contexts are just not selected by default. The change to the default behavior of context selection was made to address performance issues associated with the Web Store and Web Application contexts. In adition, this release includes minor changes to the execution contexts supported for scripts and workflows. For a list of these changes, see Enhancements to Execution Contexts for Scripts and Workflows. For more information about contexts and workflows, see the help topic Workflow Context Types.
SuiteScript
Refer to the following sections for details on SuiteScript updates for NetSuite 2020.1:
- Introducing SuiteQL API
- SuiteScript 2.1 Now Generally Available for Server Scripts
- SuiteScript 2.1 Debugger (Beta)
- Enhancements to Execution Contexts for Scripts and Workflows
- Localization Context Filtering for SuiteScript 2.0
- Sales and Purchase Custom Transactions Available in SuiteScript
- Map/Reduce Concurrency Limit Is Adjusted to Target Account Limit for SDF Projects
- Change to Scripts on the Subsidiary Record Currency Field
- Deprecation of Script Queue Monitor (Beta)
- Method Added to N/redirect Module
- Support for Relative File Paths in the N/file Module
- 2020.1 SuiteScript Macro Exposures
- 2020.1 SuiteScript Record Exposures
Change
- 2020.1 SuiteScript Records Browser
Introducing SuiteQL API
In NetSuite 2020.1, SuiteQL API is available as a new feature in the N/query module. This feature provides another way to use SuiteQL (which was made available in a previous release) in addition to SuiteAnalytics Connect. SuiteQL is a query language based on the SQL-92 revision of the SQL database query language. It provides advanced query capabilities you can use to access your NetSuite records and data. For more information, see SuiteQL. For more information about SuiteQL API in this release, see the following sections:
- New Object and Methods
- SuiteQL Support in Map/Reduce Scripts
- Support for Pagination and Aliasing
New Object and Methods
SuiteQL API provides the following new object and new methods in the N/query module:
- A new object, query.SuiteQL, represents a SuiteQL query. It includes properties that represent the query type, the SuiteQL string representation of the query, result columns to return from the query, and any additional parameters the query requires. You can use SuiteQL.run() to run the query as a non-paged query or SuiteQL.runPaged(options) to run the query as a paged query.
- A new object-level method, Query.toSuiteQL(), converts an existing query (as a query.Query object) to its SuiteQL representation (as a query.SuiteQL object).
- Two new module-level methods, query.runSuiteQL(options) and query.runSuiteQLPaged(options), let you run an arbitrary SuiteQL query. You can specify this query as a SuiteQL string, query.SuiteQL object, or generic JavaScript Object containing a required query property and an optional params property. Here is an example of how to load an existing query, convert it to SuiteQL, and run it: var myLoadedQuery = query.load({ id: ‘custworkbook237’ }); var mySuiteQLQuery = myLoadedQuery.toSuiteQL(); var myResultSet = mySuiteQLQuery.run();
SuiteQL Support in Map/Reduce Scripts
In the getInputData(inputContext) stage of a map/reduce script, you can specify how you want to generate the input data. For example, you can generate the data using an array, a JavaScript Object, a search.Search object, or one of several other data types. In NetSuite 2020.1, you can generate the data using a SuiteQL query. In the getInputData(inputContext) stage, you can return an object that represents a SuiteQL query by including the following properties:
- type — The type of data you are providing. For SuiteQL queries, this type is suiteql.
- query — The SuiteQL query as a string. If the query accepts parameters, you can use question marks (?) as placeholders in the query string. You specify parameter values using the params property.
- params — Values for any parameters the SuiteQL query uses. This property is an array, and the order of values you specify should match the order the parameters appear in the query string.
Change
Here is an example of how to construct a simple query in SuiteQL and return it from the getInputData(inputContext) stage of a map/reduce script: function getInputData() { var mySuiteQLQuery = “SELECT ” + ” “TRANSACTION”.tranid AS tranidRAW, ” + ” “TRANSACTION”.trandate AS trandateRAW, ” + ” “TRANSACTION”.postingperiod AS postingperiodDISPLAY ” + “FROM ” + ” “TRANSACTION” WHERE “TRANSACTION”.”ID” = ? ”; return { type: ‘suiteql’, query: mySuiteQLQuery, params: [271] }; } In this example, the parameter value 271 is the internal ID of a transaction record.
Support for Pagination and Aliasing
SuiteQL API supports paginated query results. Paginated query results help you process large result sets
more efficiently by retrieving a subset (or page) of the full result set at a time. You can obtain paginated query results by using the following approaches:
- If you have a query.SuiteQL object already in your script, you can use SuiteQL.runPaged(options) to obtain paginated results for that SuiteQL query.
- If you do not have a query.SuiteQL object, you can use query.runSuiteQLPaged(options) to obtain paginated results for an arbitrary SuiteQL query. These methods accept an optional parameter, pageSize, that lets you specify the number of query results on each page. The default value is 50 results per page.
SuiteQL API also supports standard SQL aliasing using the AS keyword. You can specify an alias for a field
name, and this alias is used when you retrieve mapped query results using ResultSet.asMappedResults() or Result.asMap(). For example, you can use the following approach to create an alias for the entityid field on a customer record: var results = query.runSuiteQL( ‘SELECT entityid AS friendlyname, email FROM customer WHERE email IS NOT NULL’ ).asMappedResults(); In the mapped query results, friendlyname appears as an alias for the entityid field.
SuiteScript 2.1 Now Generally Available for Server Scripts
In NetSuite 2020.1, SuiteScript 2.1 is now generally available for server scripts. SuiteScript 2.1 was previously available as a beta feature.
SuiteScript 2.1 is the latest minor version of SuiteScript, and it is backward compatible with SuiteScript
2.0. This version is based on the ECMAScript 2018 (ES2018) edition of the ECMAScript specification, and it includes new language capabilities and functionality. It supports all server-side script types (such as user event scripts, scheduled scripts, and Suitelets). SuiteScript 2.1 and future versions of SuiteScript will
Change
also support features planned for future editions of the ECMAScript specification using ES.Next. For more information, see SuiteScript 2.1 Beta. For more information about SuiteScript 2.1 in this release, see the following sections:
- SuiteScript 2.x Notation
- Transition Period for SuiteScript 2.x Scripts
SuiteScript 2.x Notation
When you write a script, you must include a JSDoc comment block that specifies the version of SuiteScript to use. For scripts other than SuiteScript 1.0 scripts, you can specify the following versions:
- 2.0
- 2.1
- 2.x The 2.0 and 2.1 values indicate that the script uses that version of SuiteScript. The 2.x value usually represents the latest version of SuiteScript that is generally available and does not represent any versions that are released as beta features. However, this does not yet apply to SuiteScript 2.1. In this release, the 2.x value indicates that a script uses SuiteScript 2.0, not SuiteScript 2.1. You can still use SuiteScript 2.1 and all of its features in your server scripts, but you must specify a version of 2.1 explicitly. Your 2.x scripts will not run as SuiteScript 2.1 scripts until a future release. For more information, see SuiteScript 2.1 Versioning.
Transition Period for SuiteScript 2.x Scripts
NetSuite is providing a transition period of one year for you to test your existing scripts and make sure
they work as expected using SuiteScript 2.1. This transition period starts with the NetSuite 2020.1 release and ends with the NetSuite 2021.1 release. During this period, the 2.x value will indicate that a script uses SuiteScript 2.0. After this transition period (in NetSuite 2021.1 and subsequent releases), the 2.x value will indicate that a script uses SuiteScript 2.1. The following table indicates which version of SuiteScript the 2.x value uses in each release:
NetSuite Release SuiteScript 2.x Maps To
NetSuite 2020.1 SuiteScript 2.0 NetSuite 2020.2 SuiteScript 2.0 NetSuite 2021.1 and subsequent releases SuiteScript 2.1
Account administrators will receive notifications throughout this period reminding them of the changes
that will occur and to prepare for them. An administrator will receive these notifications if there is at least one script in their account that uses the 2.x notation.
SuiteScript 2.1 Debugger (Beta)
Warning: The SuiteScript 2.1 Debugger is a beta feature. The contents of this feature are
preliminary and may be changed or discontinued without prior notice. The documentation for this feature is also considered a beta version and is subject to revision. The SuiteScript 2.1 Debugger beta release is targeted to be available by March 2020. This release of the debugger supports the following scripts:
Change
- On demand scripts written directly into the debugger window
- Server scripts in your account, including Suitelets and scheduled scripts In our effort to offer a modern coding experience to our developers, the SuiteScript 2.1 Debugger uses Chrome DevTools. This approach allows users to debug their scripts using functionality that is similar to debugging JavaScript in the Google Chrome browser. To use the SuiteScript 2.1 Debugger, select 2.1 in the API Version field on the Debugger page. When you click the Debug Script button, a new browser tab opens with the Chrome DevTools interface for debugging your script. Your script is displayed on the new tab and you can perform typical debug actions, such as pause/resume execution, set breakpoints, and step through your code line by line. The SuiteScript 2.1 Debugger is fully supported when using NetSuite in the Chrome browser. Other browsers, such as Mozilla Firefox, Microsoft Internet Explorer, Microsoft Edge, and Apple Safari, have limited or no support. Debugger functionality is not guaranteed in these browsers. The SuiteScript 2.1 Debugger is available for all SuiteScript developers. The legacy SuiteScript Debugger is still available for SuiteScript 1.0 and SuiteScript 2.0 scripts. For more information on the SuiteScript Debugger, see the help topic SuiteScript Debugger. For specific information on the SuiteScript 2.1 Debugger, see Debugging SuiteScript 2.1 Scripts. Enhancements to Execution Contexts for Scripts and
Workflows
NetSuite 2020.1 includes enhancements to execution contexts supported for user event scripts, client scripts, and workflows. Execution contexts provide information about how or when a script or workflow is triggered to execute. For example, a script can be triggered in response to an action in the NetSuite application or an action occurring in another context, such as a web services integration. You can use execution context filtering to ensure that your scripts or workflows are triggered only when necessary. This filtering can improve performance in contexts where the scripts or workflows are not required.
Change
In this release, several execution context filter values have been added to give you more control over script and workflow execution. The following contexts are new in 2020.1:
- Bank Connectivity
- Bank Statement Parser
- Financial Institution Connectivity
- Platform Extension
- REST Web Services
- SOAP Web Services
- Revenue Management The Web Services context, which was available in previous releases, is no longer available. It has been renamed to SOAP Web Services. A related context, REST Web Services, is new in this release. For more information, see SuiteScript Execution Context for REST Web Services. For scripts, you set up execution context filtering on the Context Filtering tab when you create or edit a script deployment record: For workflows, you set execution context filtering in the Event Definition section when you create or edit a workflow:
Change
Execution context filtering behavior is now consistent for scripts and workflows. The same values are
available for both scripts and workflows, and the default selections are the same. By default, all contexts are selected except for Web Application and Web Store. Often, it is not required to trigger scripts in these contexts, so they are disabled by default to improve performance. If you want your script or workflow to be triggered in these contexts, make sure to select them explicitly when you create your script deployment record or workflow.
For scripting, execution context values are available using the runtime.ContextType enum. You can use
this enum to programmatically determine how a script was triggered and take appropriate action. For example, you may want different script logic to execute depending on whether the script was triggered as a client script or in response to a UI action. For more information about execution contexts, see the following:
- Change to Default Behavior of Context Selection in Workflows and Actions
- runtime.ContextType
Localization Context Filtering for SuiteScript 2.0
As of 2020.1, you can define the localization context in which a client or user event script can execute.
Localization context filtering allows you to execute a script based on the country associated with the
active record or transaction and prevents scripts from executing unnecessarily. For a list of records and transactions that support localization, see Records that Support Localization. You can specify the execution order of localized client and user event scripts. A maximum of 10 localized and 10 non-localized client scripts are supported. For more information, see the help topic The Scripted Records Page. The system automatically determines the localization context for records and transactions based on their values for country fields such as subsidiary and tax nexus. It is important to understand this determination before you set up localization context filtering for scripts. For details, see Determining the Localization Context. The localization context feature includes:
- Localization Context Field — The Localization Context field on the Context Filtering tab has been added to the script deployment record. This field lists the countries for which the script is relevant.
All countries are selected by default. When this field is set to a value other than the default, the script
runs only on records associated with the selected country or countries, based on records’ localization context.
- Entry Points for Client Scripts — There are two new entry points for SuiteScript 2.0 client scripts. These entry points are required to use localization context filtering in client scripts. localizationContextEnter is executed when the record enters the localization context that is specified on the script deployment record. localizationContextExit is executed when the record exits that context.
- Locale Parameter — scriptContext.locale is a new parameter for the localizationContextEnter and localizationContextExit entry points. This parameter lists the countries representing the new localization context. The following table shows how you can specify the localization context based on the script type.
Script Type Defining Localization Context Filtering
SuiteScript 2.0 Client Script Complete the following steps to add localization context filtering to client scripts:
Type
- Use the localizationContextEnter and localizationContextExit entry points in your script. Change
- Define the localization context on the Context Filtering tab on the script deployment record. For more information, see Localization Context.
SuiteScript 2.0 User Event Define the localization context on the Context Filtering tab on the script deployment
Script Type record only. For more information, see Localization Context. If a script deployment is localized on the Context Filtering tab, the pageInit entry point of the script is ignored, and no other entry points of the script are called before localizationContextEnter or after localizationContextExit. It is possible that the record may never enter a localization context. In this case, no callbacks of the script are executed. For more information, see the help topic SuiteScript 2.0 Client Script Entry Points and API. Sales and Purchase Custom Transactions Available in
SuiteScript
As of 2020.1, sales and purchase custom transaction types are available in SuiteScript. Additionally, the following sublists and subrecords are available for sales and purchase custom transactions:
Sublist or Subrecord Availability Related Help Topics
Revenue Recognition Sales custom transactions. Revenue Recognition
Amortization Purchase custom transactions. Amortization Feature Overview
Shipping Sales custom transactions with the option of enabling item Shipping line shipping and shipping to custom addresses.
Promotions Sales custom transactions. Promotions
Landed Costs Purchase custom transactions with the option of enabling Landed Cost landed cost per line or landed cost for the whole transaction. Installments Sales custom transactions and purchase custom Creating Installments for sales. transactions. Vendor Installment Payments for purchases. For more information on custom transactions in SuiteScript, see the help topic Custom Transaction. Change Map/Reduce Concurrency Limit Is Adjusted to Target
Account Limit for SDF Projects
In NetSuite 2020.1, the behavior of the concurrency limit for map/reduce script objects in SDF projects has been updated. Previously, a SDF project validation failed with an error if the SDF project contained a map/reduce object that set the concurrency limit to a value that was greater than the target account limit. Now, if the concurrency limit in the map/reduce object is greater than the target account limit, SDF adjusts the concurrency limit to the target account limit. For more information, see Map/Reduce Concurrency Limit Adjusts to Target Account Limit.
Change to Scripts on the Subsidiary Record Currency Field
Previously, getting the text or value of the Currency field on the subsidiary record returned inconsistent results depending on whether the field was being accessed in edit or read-only mode. As of 2020.1, this behavior is changed to ensure results are consistent. To avoid unexpected results after your account is upgraded to 2020.1, you should modify any scripts that get the text or value of the subsidiary record Currency field while in read-only mode. The Currency field is read-only after a subsidiary record is created and saved.
For example, in previous releases, scripts returned the following for these APIs in read-only mode:
Version API Current Value Returned
SuiteScript 1.0 nlapiGetFieldValue(‘currency’) The text value stored in the field. For example, “USD.” nlapiGetFieldText(‘currency’) null nlapiGetFieldValue(‘currencyvalue’) The internal ID of the value stored in the field. For example, 1. SuiteScript 2.0 record.getValue({fieldId:‘currency’}) The text value stored in the field. For example, “USD.” record.getText({ fieldId: ‘currency’}) The text value stored in the field. For example, “USD.” record.getValue({ fieldId: The internal ID of the value stored in the ‘currencyvalue’}) field. For example, 1. As of 2020.1, these SuiteScript APIs return the following:
Version API 2020.1 Value Returned
SuiteScript 1.0 nlapiGetFieldValue(‘currency’) The internal ID of the value stored in the field. For example, 1. nlapiGetFieldText(‘currency’) The text value stored in the field. For example, “USD.” nlapiGetFieldValue(‘currencyvalue’) The internal ID of the value stored in the field. For example, 1. This field ID will be deprecated in 2020.2. SuiteScript 2.0 record.getValue({fieldId: The internal ID of the value stored in the field. ‘currency’}) For example, 1.
Change
Version API 2020.1 Value Returned
record.getText({ fieldId: The text value stored in the field. For example, ‘currency’}) “USD.” record.getValue({ fieldId: The internal ID of the value stored in the field. ‘currencyvalue’}) For example, 1. This field ID will be deprecated in 2020.2.
Deprecation of Script Queue Monitor (Beta)
Important: The target date for the deprecation of Script Queue Monitor (SQM) (Beta) was changed from September 3, 2019 to December 10, 2019. As of 2019.2, the Script Queue Monitor (Beta) SuiteApp (Bundle ID: 56125) is deprecated. The target date for this deprecation was December 10, 2019, shifted from a previous target of September 3, 2019. After this SuiteApp’s deprecation, you can no longer use it to monitor script deployments of accounts that continue to use queues. You must start to monitor your queues on either the Script Queue
Monitor (SQM) dashboard or the SuiteCloud Processors Monitor tool that are integrated in Application
Performance Management (APM). If you want a better view of jobs handled by SuiteCloud Processors, scheduling queues, or both, you must use the SuiteCloud Processors Monitor tool. You have to meet certain requirements, such as using an Administrator role or a role with specific permissions, to use the APM SuiteApp. After you install the APM SuiteApp, you can access the SQM dashboard at Customization > Performance > Script Queue Monitor. You can access the SuiteCloud Processors Monitor at Customization > Performance > SuiteCloud Processors Monitor. For more information, see:
- Using the Script Queue Monitor Dashboard in APM
- Monitoring SuiteCloud Processors Performance
Method Added to N/redirect Module
A new redirect.toRecordTransform(options) method has been added to the redirect module. The method opens the form of the destination transaction and uses information from the source transaction to fill in fields on the form. For more information, see the help topic N/redirect Module.
Support for Relative File Paths in the N/file Module
You can specify a relative file path when you load a file using the file.load(options) method in the N/file module. Relative paths always start with ./ or ../. Previously, you could load a file only by specifying the internal ID of the file or the absolute file path to the file in the File Cabinet. For more information, see the help topic N/file Module. This feature was introduced in NetSuite 2019.2. 2020.1 SuiteScript Macro Exposures
Record Type Macro ID UI Button Label Notes
Project Work Breakdown getAmountsFields Get Amounts Fields Gets the contents of all amounts field
Structure names.
Change
Record Type Macro ID UI Button Label Notes
Project Work Breakdown setAmountFieldValue Set Amount Field Sets the value of the amount field.
Structure Value
Project Work Breakdown getAmountFieldValue Get Amount Field Gets the value of the amount field.
Structure Value
Project Work Breakdown getUnmatchedActuals Get Unmatched Gets the unmatched actuals. Structure Actuals 2020.1 SuiteScript Record Exposures
Record Type Notes
Balance Transactions by To use the balance transactions by segments record, you must enable the Balancing Segments Segments and Custom Segments feature. The balance transactions by segments record is scriptable in server SuiteScript only. The record is partially scriptable, you can create, read, and search it using SuiteScript. Bonus To use the bonus record, you must enable the Compensation Tracking feature. The bonus record is scriptable in both client and server SuiteScript. Bonus Type To use the bonus type record, you must enable the Compensation Tracking feature. The bonus type record is scriptable in both client and server SuiteScript. Item Process Family
Item Process Group
Memorized Transaction Memorized transaction templates and definitions must be created in the NetSuite user
Definition interface, but existing memorized transaction definitions can be called using SuiteScript. Memorized transaction definitions are scriptable in both client and server SuiteScript. Automatically-created transactions do not support server-side scripting. Memorized transaction definitions support only the Read, Update, Delete, and Search functions. Order Type Pick Strategy
Pick Task
Project Work Breakdown To use the project work breakdown structure record, you must enable the Job Costing
Structure and Project Budgeting, Advanced Project Accounting, Custom Records, Custom Segments, and Activity Codes features. The project work breakdown structure event record is scriptable in both client and server SuiteScript. Copy and transform are not supported. Vendor Prepayment The vendor prepayment record is scriptable in both client and server SuiteScript. The script user must have the required permission level for the Vendor Prepayment permission. Vendor Prepayment The vendor prepayment application record is scriptable in both client and server Application SuiteScript. Change
Record Type Notes
The script user must have the required permission level for the Vendor Prepayment Application permission. Wave Zone 2020.1 SuiteScript Records Browser The 2020.1 SuiteScript Records Browser is not yet available. SuiteTalk Web Services Integration
Changes in the URL Structure of REST Web Services
As of 2020.1, you can access NetSuite resources through REST web services by using URLs specific to either record or query service. To use CRUD operations on records, you can use a URL similar to the following:
Change
PATCH https://demo123.suitetalk.api.netusite.com/services/rest/record/v1/customer/42
To access resource metadata, you can use a URL similar to the following:
GET https://demo123.suitetalk.api.netsuite.com/services/rest/record/v1/metadata-catalog
For information about using metadata, see the help topic Working with Resource Metadata. To execute saved datasets, you can use a URL similar to the following:
GET https://demo123.suitetalk.api.netusite.com/services/rest/query/v1/workbook/custworkbook123/result
For more information, see the help topic REST Web Services URL Schema and Account-Specific URLs. REST Web Services Support for CRUD Operations on
Custom Records
As of 2020.1, you can use all CRUD (create, read, update, and delete) operations on custom record instances. You can use CRUD operations to perform business processing on custom records and move dynamically between custom records. In NetSuite, you track all of the information in your account using records. Users with the Custom Record Entries permission can create custom records that collect information specific to the needs of their business.
Creating custom record types through REST web services is not supported. To work with custom record
definitions, you must have the Custom Records feature enabled on your account. To enable the feature, go to Setup > Company > Setup Tasks > Enable Features, and select Custom Records on the SuiteCloud subtab. You must create a custom record type in the UI, and then you can work with instances of the custom record type through REST web services. For information, see the help topic Creating Custom Record Types. You also can use SDF to create custom record types. For information, see the help topic Custom Record Types as XML Definitions. For information about using CRUD operations, see the sections under Working with Records. Fully Supported Record Types for REST Web Services in 2020.1 The following table lists the records that are fully supported as of 2020.1.
Record Type Notes
Billing Account Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Price Book Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Price Plan Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Change
Record Type Notes
Subscription Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Subscription Line Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. A subscription line record is always tied to a subscription record. Subscription Plan Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. A subscription requires a subscription plan, but the subscription plan is not always tied to a subscription. Subsidiary You must use NetSuite OneWorld or have the Subsidiaries feature enabled to use the subsidiary record. The POST (create), PATCH (update), and DELETE operations are not supported.
Apart from these fully supported records, all records listed in the REST API Browser are available as beta
records in REST web services. For information, see the REST API Browser. For information about working with the browser, see the help topic The REST API Browser.
New REST API Browser
The REST API Browser is a browser that provides a visual overview of the structure and capabilities of the
REST web services Record API. The REST API browser includes information such as the following:
- The support level of records. Beta records are marked with a beta label.
- The summary of all records, sublists, schema definitions, and other objects.
- The available operations you can perform on a record.
- The description of URLs, HTTP methods, and request parameters used for CRUD operations.
- The structure of responses you can receive after performing an operation.
- The description of field names and field types, and the properties of fields. To access the browser, see the REST API Browser For more information about working with the browser, see the help topic The REST API Browser.
Record Action Execution Through REST Web Services
Warning: Record action execution through REST web services is a beta feature. The contents
of this feature are preliminary and may be changed or discontinued without prior notice. Any change may impact the feature’s operation with the NetSuite application. Warranties and product service levels do not apply to this feature or the impact of this feature on other portions of the
NetSuite application. We may review and monitor the performance and use of this feature. The
documentation for this feature is also considered a beta version and is subject to revision.
REST web services support APIs that provide the programmatic equivalent of clicking a button in the
NetSuite user interface. With the record action APIs, you can use REST web services to trigger the same business logic that is triggered by the click of a UI button.
Change
By using record actions, you can update the state of a record. Approve and reject are two examples of record actions. When an approve or a reject action is executed on a record, the approval status of the record is saved immediately. REST web services support the same record actions supported by SuiteScript. For a list of supported actions, see the help topic Supported Record Actions. For more information, see Executing Record Actions. Support for Record Transformation Through REST Web
Services
Warning: Support for record transformation through REST web services is a beta feature. The
contents of this feature are preliminary and may be changed or discontinued without prior notice.
Any change may impact the feature’s operation with the NetSuite application. Warranties and
product service levels do not apply to this feature or the impact of this feature on other portions of the NetSuite application. We may review and monitor the performance and use of this feature. The documentation for this feature is also considered a beta version and is subject to revision. As of 2020.1, you can use REST web services to transform a record from one type into another. In REST web services, you use the POST method to send a record transformation request.
All record transformations available in SuiteScript are also available in REST web services. For information
about the supported transformation types, see the help topic record.transform(options). For more information about record transformation through REST web services, see Transforming Records.
SuiteQL Query Execution Through REST Web Services
Warning: SuiteQL query execution through REST web services is a beta feature. The contents
of this feature are preliminary and may be changed or discontinued without prior notice. Any change may impact the feature’s operation with the NetSuite application. Warranties and product service levels do not apply to this feature or the impact of the feature on other portions of the
NetSuite application. We may review and monitor the performance and use of this feature. The
documentation for this feature is also considered a beta version and is subject to revision. As of 2020.1, you can execute SuiteQL queries through REST web services. SuiteQL is a query language based on the SQL database query language. SuiteQL provides advanced query capabilities that can be used to access NetSuite records. To execute SuiteQL queries through REST web services, send a POST request to the suiteql resource, and specify the query in the request body after the query parameter q. The following example shows a SuiteQL query executed through REST web services.
POST https://demo123.suitetalk.api.netsuite.com/services/rest/query/v1/suiteql Prefer: transient . { . “q”: “SELECT email, COUNT(*) as count FROM transaction GROUP BY email” . } For more information about SuiteQL in general, see the help topic SuiteQL.
Change
For more information about executing SuiteQL queries through REST web services, see Executing SuiteQL Queries Through REST Web Services. Changes in SuiteAnalytics Workbook Execution Through
REST Web Services
Warning: Support for SuiteAnalytics workbook execution through REST web services is a
beta feature. The contents of this feature are preliminary and may be changed or discontinued without prior notice. Any change may impact the feature’s operation with the NetSuite application.
Warranties and product service levels do not apply to this feature or the impact of this feature on
other portions of the NetSuite application. We may review and monitor the performance and use of this feature. The documentation for this feature is also considered a beta version and is subject to revision.
SuiteAnalytics Workbook is an analytical tool available in NetSuite. With SuiteAnalytics Workbook, you can
create customizable workbooks that combine queries, pivot tables, and charts using a single tool that leverages a new data source. For information about working with SuiteAnalytics workbooks in the UI, see the help topic SuiteAnalytics Workbook. In REST web services, you can run saved workbooks and retrieve their results. You can execute both standard and custom workbooks. As of 2020.1, the URL structure for executing workbooks through REST web services changed and a result parameter was added to the URL. To execute a workbook, you send a GET request similar to the following:
GET https://demo123.suitetalk.api.netsuite.com/services/rest/query/v1/workbook/ExampleWorkBook1/result
When you work with SuiteAnalytics workbooks in REST web services, consider the following:
- Workbooks cannot be created, filtered, or edited through REST web services.
- Metadata is not provided for saved analytics workbooks.
- The response from a saved analytics execution returned through REST web services may have a different format and values than responses for record instance requests. For more information, see the help topic Working with SuiteAnalytics Workbooks in REST Web Services.
SuiteScript Execution Context for REST Web Services
NetSuite 2020.1 introduces the REST web services script execution context. For NetSuite user event and client scripts, you can set up execution context filtering to control the contexts in which these scripts can run. You can set up execution context filtering in the Execution Context field on the Context Filtering subtab of the Script Deployment record. For more information, see Enhancements to Execution Contexts for Scripts and Workflows. If a script has its execution context set to REST web services, the script only executes if it is triggered through a REST web services request.
For example, you can deploy a script similar to the following on customer records. In this example, the
beforeSubmit script is only executed on the record if the request is triggered through REST web services. define([‘N/record,’ ‘N/runtime’], function(record, runtime) { Change function beforeSubmit(context) { var ctx = runtime.executionContext var isRestWs = (runtime.ContextType.REST_WEBSERVICES === ctx); log.debug(ctx + ”: Before submit of ” + context.newRecord.type); } For more information about script execution contexts, see the help topic runtime.executionContext. For information about execution context behavior in workflows, see Change to Default Behavior of Context Selection in Workflows and Actions. REST Web Services Requests and Responses Tracked in the
Execution Log
As of 2020.1, you can access the contents of REST web services requests and responses through the REST
Web Services Execution Log. To access the REST Web Services Execution Log, go to Setup > Integration >
Integration Management > Manage Integrations, and select the integration record you want to view. On
the integration record, go to REST Web Services on the Execution Log subtab, and click View to download a request or a response. The requests and responses logged in the execution log contain the values of sensitive fields in masked format. For information about using an encrypted format on custom fields, see the help topic Encrypted Custom Field Stored Values. For more information about REST Web Services logging, see the help topic Using the REST Web Services Execution Log. Sales and Purchase Custom Transactions Available in SOAP
Web Services
As of 2020.1, sales and purchase custom transaction types are available in SOAP web services. Additionally, the following sublists and subrecords are available for sales and purchase custom transactions:
Sublist or Subrecord Availability Related Help Topics
Revenue Recognition Sales custom transactions. Revenue Recognition
Amortization Purchase custom transactions. Amortization Feature Overview
Shipping Sales custom transactions with the option of enabling item Shipping line shipping and shipping to custom addresses.
Promotions Sales custom transactions. Promotions
Landed Costs Purchase custom transactions with the option of enabling Landed Cost landed cost per line or landed cost for the whole transaction. Installments Sales custom transactions and purchase custom Creating Installments for sales. transactions. Vendor Installment Payments for purchases.
Change
Sales and purchase custom transactions differ in a few things from other custom transaction types
in SOAP web services. To understand these differences, read the topic Sales and Purchase Custom Transaction Types. New GetConcurrencyGovernance Operation in SOAP Web
Services
As of 2020.1 you can use the getAccountGovernanceInfo and the getIntegrationGovernanceInfo operations in SOAP web services. With the getAccountGovernanceInfo operation, you can get the Account Concurrency Limit and the Unallocated Concurrency Limit. With the getIntegrationGovernanceInfo operation, you can get the Concurrency Limit for the integration (integrationConcurrencyLimit) and the limitType, which can be:
- _integrationSpecific, when a limit has been allocated.
- _internal, when it is an internal application. In this case the limit is not displayed.
- -accountLimit, when no specific limit has been allocated to the integration. For more information about governance, see Web Services and RESTlet Concurrency Governance. Operations Removed in 2020.1 SOAP Web Services
Endpoint
The following operations have been removed in 2020.1 SOAP web services endpoint:
- login
- logout
- ssoLogin
- mapSso
- searchMore
- searchNext You should use Token-based Authentication for logging into NetSuite instead. For more information, see the help topic Token-based Authentication (TBA). Note: The operations remain available for earlier endpoints. For more information on which endpoints are supported, see the help topic Support for Existing WSDL Versions.
Governance Enabled for All Accounts
As of 2020.1, web services and RESTlet account governance has been enabled for all accounts, so the Web Services and RESTlet Account Governance Enabled box has been removed. Note: The Web Services and RESTlet Account Governance Enabled box was visible for administrators in production accounts, but was editable only in Sandbox environment. For more information about governance, see Web Services and RESTlet Concurrency Governance. Change
Integration Record Enhancements Related to OAuth 2.0
A new approach to access REST Web Services and RESTlets is now available. OAuth 2.0 provides an alternative to Token-based Authentication. OAuth 2.0 has a standard authorization code grant flow that generates a pair of tokens: an access token and a refresh token. The access token is valid for 60 minutes and is used to access the protected resource. For detailed information about OAuth 2.0, see OAuth 2.0 Delegated Access for REST Web Services and RESTlets. You can configure settings related to OAuth 2.0 on the integration record of your REST web services or RESTlet integration application. For information, see Defining OAuth 2.0 on Integration Records. For general information about working with integration records, see the help topic Creating an Integration Record.
Field Type Change in the Project Task Record
The field type of the remainingWork and actualWork fields in the projekt task record changes in 2020.1 endpoint from double to duration type. You must take this change of field type into consideration when upgrading to the 2020.1 endpoint to avoid any issues with your integration. Earlier endpoints will not be affected by this field type change.
SOAP Web Services Version 2020.1
SOAP web services version 2020.1 is available. When your implementation is upgraded to 2020.1, the 2020.1 WSDL becomes available in your production account. You do not need to upgrade your WSDL when the new version is generally available. NetSuite supports each endpoint for three years. For information about the supported generally available versions, see the help topic Support for Existing WSDL Versions.
Araxis Merge Diff File for the 2020.1 Endpoint
The Araxis Merge Diff file highlights 2019.2 – 2020.1 schema changes. The diff file is not yet available, but this section provides details about the types of information it will include.
- About the Araxis Diff File
- Using the Araxis Diff File
About the Araxis Diff File
NetSuite publishes an Araxis Diff File for every new endpoint. Depending on the scope of the release, changes described in the Araxis Diff File may include:
- New record types
- Elements (fields) that have been added, removed, or changed
- New sublists (lists)
- New joins
- New search filters and search return columns
Change
- New platform operations Using the Araxis Diff File Important: The figures in this section are for illustrative purposes only. They do not reflect changes related to any specific endpoint. The diff file is generated using Araxis Merge. When you click the diff file link (when it is available), a page appears that offers an overview of all schema changes. The following screenshot shows how this summary page looks. In this example, the rows highlighted in purple indicate that an XSD has been modified. The integers at the center indicate the number of changed lines in the file. To see the exact differences, click the report link in the column to the right, or click the name of the file in either column. When you click any of these links, the diff file shows a page with two columns. The previous version of the file is displayed on the left, and the new version on the right. Changed elements are highlighted. For example, the following screenshot shows an excerpt from the report on platform.commonTypes.xsd. Notice the addition of two values to the PermissionCode enumeration: _accessPaymentAuditLog and _advancedPDFHTMLTemplates. The diff file also shows changes to data types. The following screenshot is a snapshot of transactions.sales.xsd. Notice that the chargeType element changed from an enumeration to a RecordRef. Change 2020.1 SOAP Schema Browser The 2020.1 SOAP Schema Browser is not yet available.
SuiteCloud SDK
SuiteCloud Software Development Kit (SuiteCloud SDK) is a set of tools you can use to develop SuiteCloud
Development Framework (SDF) projects, the SuiteCloud IDE plug-ins, and SuiteCloud CLI.
Generally, 2020.1 plug-in behavior changes are designed to support SDF. In addition, SuiteCloud IDE
plug-ins for versions 2017.1 and later have compatibility requirements. The version of your plug-in must match the version of your NetSuite account before you can use the plug-in to create SDF projects. For information about additional features that impact SuiteCloud IDE plug-ins and SuiteCloud CLI, see the release note for SuiteCloud Development Framework. 2020.1 SuiteCloud CLI for Java Is Not Yet Available SuiteCloud Command-Line Interface for Java (SuiteCloud CLI for Java) 2020.1 is targeted for release in March 2020.
SuiteCloud CLI for Java is the SDF (SuiteCloud Development Framework) command-line interface. You
can use the CLI for Java with your own integrated development environment (IDE) to create SDF projects, including SDF SuiteApps. You can also create batch and shell scripts that use CLI commands to automate your project validation and deployment processes. When used with your own IDE, CLI for Java acts as an alternative to SuiteCloud IDE. For more information about CLI for Java, see the help topic CLI for Java Guide. CLI for Java is supported on Windows, Linux, and Mac OS X. For more information, see the help topic CLI for Java Installation Prerequisites. 2020.1 SuiteCloud Plug-in for WebStorm Is Not Yet
Available
The 2020.1 SuiteCloud plug-in for WebStorm is targeted for release in February 2020. Important: When your account is upgraded to 2020.1, your instance of the plug–in is not updated automatically to 2020.1. After your account upgrade, you must manually update the plug–in to the latest version. For more information, see the help topic Adding the SuiteCloud IDE Plug-in to WebStorm. 2020.1 SuiteCloud Plug-in for Eclipse Is Not Yet Available The 2020.1 SuiteCloud plug-in for Eclipse is targeted for release in February 2020.
Change
Important: When your account is upgraded to 2020.1, your instance of the plug–in is not updated automatically to 2020.1. After your account upgrade, you must manually update the plug-in to the latest version. For more information, see the help topic Updating Eclipse for Use with SuiteCloud IDE Plug-in.
SuiteCloud Development Framework
SuiteCloud Development Framework (SDF) is a development framework and deployment mechanism.
Customers and partners can use SDF to create customization projects for internal use within their
organizations or for commercial distribution. For more information about SDF, see the help topic SuiteCloud Development Framework Overview. For a complete list of custom records and customizations that are supported by SDF, see the help topic Customizations Supported by SuiteCloud Development Framework. With the release of SuiteCloud Development Framework, the SuiteCloud Terms of Service were updated in September 2016 to specifically include SuiteCloud Development Framework as one of the listed SuiteCloud Technologies and to make other clarifying changes. You can review the complete updated terms at http://www.netsuite.com/termsofservice.
Custom Code and Action Tabs in Custom Forms Support
SuiteCloud Development Framework (SDF) supports the Custom Code and Action tabs in custom forms.
In NetSuite, the Custom Code tab and Actions tab are used together to define custom buttons for custom
forms. Custom buttons are a way for your users to intentionally execute client SuiteScript on custom
forms. The buttons are useful for executing a specific function when the user clicks the button on the
form, such as creating a customized invoice. You can add custom buttons to custom forms in SDF by
specifying the actionBar element to define the Action tab.
The following example defines two custom buttons. The first button has the label Invoice Client, and
that button runs the function invoiceClient. The second button has the label Generate Report, and runs
the function generateReport. To execute, both functions must be defined in the client SuiteScript file
referenced by the scriptFile field for the customCode element in the same custom form object.
- addressForm
- entryForm
- transactionForm For more information about defining the customCode and actionBar elements, see Custom Code Tab and Actions Tab in XML Definitions.
Sales and Purchase Custom Transactions Support
SuiteCloud Development Framework (SDF) supports the sales and purchase custom transaction types
when defining custom transaction objects. For information about sales and purchase custom transactions in NetSuite, see Sales and Purchase Custom Transactions Available and Sales and Purchase Transaction Types Overview. For information about defining customtransactiontype objects, see the help topic Custom Transaction Record Types as XML Definitions.
Additional Transaction Form Types Can Be Customized
Prior to this release, SDF supported a small number of transaction form types. As of 2020.1, SDF supports many more transaction forms. Important: You should copy or modify a custom transaction form that you imported from your account. SDF does not support creating custom forms. To learn about importing an object, see the help topic Account Component Imports. The following table shows the new types of transaction forms that SDF supports. The columns show the script ID of the form and the record type the form is applied to. Script ID of Transaction Form Type Record Type Associated with Transaction Form STANDARDBLANKETPURCHASEORDER Blanket Purchase Order STANDARDCREDITCARDCHARGE Credit Card STANDARDCREDITMEMO Credit Memo
Change
Script ID of Transaction Form Type Record Type Associated with Transaction Form STANDARDCUSTOMERDEPOSIT Customer Deposit STANDARDCUSTOMERREFUND Customer Refund STANDARDDEPOSIT Deposit STANDARDEXPENSEREPORT Expense Report
STANDARDFULFILLMENTREQUEST Fulfillment Request
STANDARDFULFILLMENTREQUESTPICKINGTICKET Fulfillment Request Picking Ticket STANDARDINVENTORYADJUSTMENT Inventory Adjustment STANDARDINVENTORYCOUNT Inventory Count STANDARDINVENTORYTRANSFER Inventory Transfer STANDARDINVENTORYWORKSHEET Inventory Worksheet STANDARDITEMFULFILLMENT Item Fulfillment STANDARDITEMRECEIPT Item Receipt STANDARDONLINEORDERINVOICE Sales Order External STANDARDOPPORTUNITY Opportunity STANDARDPACKINGSLIP Packing Slip STANDARDPICKINGTICKET Picking Ticket STANDARDPURCHASECONTRACT Purchase Contract STANDARDREQUISITION Requisition STANDARDRETURNAUTHORIZATIONCASH Return Authorization
STANDARDRETURNAUTHORIZATIONCREDIT Return Authorization
STANDARDRETURNREQUESTCASH Return Authorization (External)
STANDARDRETURNREQUESTCREDIT Return Authorization (External) STANDARDREVENUEARRANGEMENT Revenue Arrangement STANDARDSALESORDERPROGRESSBILLING Sales Order STANDARDSERVICEINVOICE Invoice STANDARDTRANSFERORDER Transfer Order STANDARDVENDORBILL Bill STANDARDVENDORCREDIT Bill Credit STANDARDWORKORDER Work Order
STANDARDVENDORRETURNAUTHORIZATION Vendor Return Authorization
To define the transaction form type in your object XML, you can specify a form value listed in the table
earlier. For the complete list of supported values, see the help topic transactionform_standard. The
following code shows the reference syntax:
Change
scriptid=“objectprefix_scriptid” standard=“ATRANSACTIONFORMID”
In the following example, “Ultimate Sales Form” is the name of the custom transaction form. The
customization is based on the standard sales order form in NetSuite. As specified by the recordType
element, “Ultimate Sales Form” is applied to the sales order record.
- Supported Custom Transaction Form Objects
- transactionform_standard
- Referencing a Custom Transaction in XML Definitions
- Custom Transaction Form Example
Translatable Fields Support
SuiteCloud Development Framework (SDF) supports some translatable fields for clientscript and workflow
custom objects. When creating custom objects in SDF that have translatable fields, you can reference
translation strings from translation collections. After the custom objects and the translation collections
are deployed to an account, the NetSuite UI displays the translation for each translatable field in the
account language. If a field has no translation in the account language, the NetSuite UI displays the
default translation.
For information about the supported translatable fields in custom objects, see Translatable Fields in XML
Definitions (Beta).
Note: The format for field label translations requires a translation collection object. For
information about using translation collections in SDF, see the help topic Translation Collections as
XML Definitions.
The following example is a workflow custom object with a label field that contains a reference to the term
approve in the translation collection custcollection_approvals:
Limit
Prior to this release, your SDF project validation failed with an error if your SDF project contained a map/
reduce object that set the concurrency limitto a value that was greater than the target account limit. You also might have required multiple map/reduce script versions with different concurrency values specific to account limits you deploy to. Now you can deploy the same map/reduce script object to accounts limited to different concurrency values. As of 2020.1, if your SDF project contains a map/reduce script object, SDF can adjust the concurrency value to the target account limit. Concurrency limits are specific to an account and depend on the number of SuiteCloud Plus licenses in the account When SDF adjusts the concurrency value to the target account limit, it adjusts the value only in the script deployment record of the map/reduce script. The source concurrency value in the map/reduce object in your SDF project is not modified. The concurrency value sourced from your SDF project is compared to the account limit. The script deployment record in the account uses the lesser value of the two, and
SDF adjusts the concurrency value as necessary. When the concurrency value is equal to or less than the
target account limit, there is no change to concurrency value. If the account concurrency limit increases, the concurrency value is updated when the source value is larger. Adjustment no longer occurs if the concurrency value is changed manually in target account.
For example, if you set concurrency value to 10 and deploy your SDF project to an account limited to a
concurrency value of 5, the script deployment record in the account is set to 5. If you then download the map/reduce object as XML or import it to an SDF project, the concurrency value is unchanged. It remains set to 10. For more information, see the following topics:
- Map/Reduce Concurrency in the SDF documentation.
- scriptdeployment in the SDF XML reference.
- mapreducescript in the SDF XML reference
- Concurrency Limit in the SuiteScript documentation.
Financial Institution Connectivity Plug-in Support
SuiteCloud Development Framework (SDF) supports customizing the Financial Institution Connectivity
plug-in. The plug-in provides a way for NetSuite to use the Financial Institution Connectivity API to directly
Change
connect customers to a specific financial institution. For information about customizing and using the Financial Institution Connectivity plug-in in NetSuite, see Financial Institution Connectivity API. You can customize the plug-in in SDF by defining ficonnectivityplugin objects. For information about the available fields, see ficonnectivityplugin. Each ficonnectivityplugin custom object requires a scriptfile field reference to a SuiteScript file that implements the following interface functions:
- getAccounts
- getTransactionData
- getConfigurationiFrameUrl
The following example defines a ficonnectivityplugin custom object named “Financial Connectivity Profile
1” that specifies the SuiteScript file connectionprofile.js:
Parser Plug-in Support
SuiteCloud Development Framework (SDF) supports customizing the Parser plug-in to create parsers for
different bank and credit card statement formats. For information about using the Parser plug-in, see the
help topic Parser Plug-in Overview.
You can customize the plug-in by defining bankstatementparserplugin objects in your SDF project. For
information about the available fields, see bankstatementparserplugin.
Each bankstatementparserplugin custom object requires a scriptfile field reference to a SuiteScript file
that implements an interface function. For more information, see the help topic Creating the Parser Plug-
in Script File.
The following example defines a bankstatementparserplugin custom object with the name “Statement
Parser 1” that references the SuiteScript file statementparser1.js:
Minor Updates to Custom Objects
Note the following information about updates to SuiteCloud Development Framework (SDF) support for custom objects as of 2020.1:
Object Field Type Notes
clientscript localizationcontext multi-select list You can filter your scripts to run based on the localization context of your users. For more information, see Introducing Localization Context – User Event and Client Script Association and Localization Context Filtering for SuiteScript 2.0. For more information about the possible values for localizationcontext, see the help topic scriptdeployment. usereventscript alllocalizationcontexts boolean You can filter your scripts to run based on the localization context of your users. For more localizationcontext multi-select list information, see Introducing Localization Context – User Event and Client Script Association and Localization Context Filtering for SuiteScript 2.0. For information about the possible values for alllocalizationcontexts and localizationcontext, see the help topic scriptdeployment. workflow clienttriggerfieldssublist single-select list You can include workflows on the Expense sublist for expense report records by specifying the field sublist single-select list value EXPENSEREPORT:EXPENSE. For more information about the Expense sublist, see Support for Expense Sublist on Expense Report. SuiteApps (Bundles) Released by NetSuite
Change
- Non-Profit SuiteApps
- Food and Beverage SuiteApps
- Taxation SuiteApps Accounting SuiteApps
Following is the 2020.1 accounting enhancement to SuiteApps:
- Fixed Assets Management Enhancements
- SuiteApprovals Enhancements Fixed Assets Management Enhancements
Lease Accounting Modifications
The Lease Modification process enables users to make changes to the original terms and conditions of a lease. The Modify Lease Record button is available on Lease records with associated assets, so that you can modify the Lease Term, Interest Rate, and update the Lease Payments as of the effective date of modification. Alternatively, you can go to Fixed Assets > Leases > Lease Modification page and select the lease record that you want to modify. After entering the necessary modifications, the Apply Lease Modification button will be available on the lease record. Clicking this button will trigger the following processes:
- Create a lease modification journal entry to record the adjustments to the Lease Liability and Right-of- Use Asset accounts.
- Record a reversal interest journal entry to reverse the interest expense recorded to lease payments after the effective date of modification.
- Associate the lease modification journal entry to the newly created Lease Modification DHR. The asset’s current cost and net book value will then be updated.
FAM Diagnostics
Starting with Fixed Assets Management version 20.1, you can add the FAM Diagnostics portlet to your
Home Dashboard to see the health of your Fixed Assets Management bundle. You can run a scan of the
following processes in FAM Diagnostics: Precompute Depreciation Values, Reset Asset Values, and Check
Missing Summary. The following information are also available in the portlet:
- Processes that require action
- What you can do to correct the problem
- When a process was last corrected
- Who corrected the process
Change
To add the FAM Diagnostics, go to Home Dashboard, and then click Personalize > SuiteApps > FAM Diagnostics.
Fixed Assets Reports for Japan
To comply with the depreciation requirements of the Japan National Tax Authority, the following enhancements for Japan Corporate Tax Reports are added in FAM version 20.1:
- Japan Schedule 16 (1) Report – This report is for assets and leased assets that use the Japan Straight Line Depreciation Method.
- Japan Schedule 16 (2) Report – This report is for assets and leased assets that use the Japan 200%
Declining and Japan 250% Declining Balance Depreciation methods.
By default, these reports are displayed in Japanese.
SuiteApprovals Enhancements
can define any approval rule for requisitions in two ways:
- Using the total line amount of the record as basis and then selecting an approval routing type: employee hierarchy or custom approval matrix.
- Specifying an approval chain (employee hierarchy or custom) regardless of the total amount on the record. The following standard capabilities are supported for requisitions:
- Automatic approvals using employee and record amount limits
- Approval delegation
- Approve and finalize (Final Approval)
- One-level approval based on approver’s approval limit (Skip Approval)
- Support for Cross-Subsidiary Approvals for Users with Appropriate Subsidiary Permissions – You can now set up subsidiary restriction values on the employee record of approvers through the roles assigned to them. This enhancement enables you to specify or add approvers from a subsidiary that is different from the subsidiary of an approval rule. This change applies to all supported record types. For more information, see the help topic SuiteApprovals Version 2019.2. Administration SuiteApps
Following are the 2020.1 administration enhancements to SuiteApps:
- Operation ID Field Added on Page Time Details
- Deprecation of Script Queue Monitor (Beta)
Operation ID Field Added on Page Time Details
In Application Performance Management (APM) SuiteApp version 1.10.3, you can filter instances according to their operation ID on the Page Time Details tool.
Change
Previously, you can open the Page Time Details page of an instance by going to the Customization
Performance > Page Time Summary, selecting the performance log instance, and clicking the corresponding view icon.
Like other tools, Page Time Details provides a link to Profiler Details, which lets you monitor the
performance of the operation. To avoid getting an error before you click Profiler Details on the upper right corner of the page, ensure that the Operation ID field contains a value. To start using Page Time Details, go to Customization > Performance > Page Time Details. For more information, read the help topic Using Page Time Details. Banking SuiteApps Following is the 2020.1 banking enhancement to SuiteApps:
Bank Statement Parsers Enhancements
for CAMT.053 in UTF-8 (Unicode) encoding. The CAMT.053 parser plug-in can parse bank statement files that use the CAMT.053.001.02 version and can recognize transactions in standard ISO bank transaction codes. The plug-in includes default field mappings for bank transactions imported into NetSuite. You can also create new mappings or override the default mappings.
- BAI2 Parser Enhancement – BAI2 files are now successfully imported even if the non-mandatory fields in Record 03 and Record 16 are blank.
- OFX/QFX Parser Enhancements:
- Import credit card statements – The OFX/QFX plug–in implementation can now read and parse OFX credit card statement files. Statement files may contain single, multiple credit card accounts, or mixed of bank and credit card accounts.
- Support for multiple accounts – The SuiteApp can now successfully import OFX/QFX statement
files that use the
aggregator tag to separate multiple bank accounts in the file. - Parser plugin name – The OFX plug–in name has been changed from OFX Plugin Implementation to OFX/QFX Plugin Implementation to easily recognize that this parser supports QFX version. For more information, see the help topic Bank Statement Parsers SuiteApp. SuitePeople SuiteApps
Following is the 2020.1 SuitePeople enhancement to SuiteApps:
- New Employee Fields and Reports Added for U.K. Localization
- Onboarding Checklist Enhancements
New Employee Fields and Reports Added for U.K. Localization
SuitePeople U.K. Localization SuiteApp version 1.00 introduces enhancements that help HR professionals
monitor information required by employee reporting regulations in the United Kingdom. Change using the forms and fields on the following table.
U.K. Localization Forms U.K. Localization Fields Location of Fields
U.K. Employee Form Ethnic Origin (U.K.) – This field lets you select the Personal subtab in the ethnic origin or group of the employee. Human Resources subtab
Northern Ireland □ Ethnic Origin (U.K.) – This field lets you select the Personal subtab in the
Employee Form Human Resources subtab ethnic origin or group of the employee.
- Community Background – This field lets you select the community where the employee belongs.
- Method of Monitoring – This field lets you select the method used to determine the employee’s community background.
- Determination Date – This field lets you select or enter the date that the employee’s community background was determined.
- New Employee Saved Searches – HR professionals can generate and customize reports to comply with regulations in the United Kingdom.
U.K. Localization Saved Searches Description
TEMPLATE U.K. Pay Equity Report This saved search helps you generate a report that includes the following:
- Employee Name
- Job Title
- Department
- Contract Type
- Gender
- Ethnic Origin (U.K)
- Base Salary Type
- Compensation Currency
- Base Salary TEMPLATE U.K. Workforce Employee This saved search helps you generate a report that includes the
Report following:
- Employee Name
- Job Title
- Department
- Contract Type
- Gender
- Ethnic Origin (U.K) For more information, read the help topic SuitePeople U.K. Localization.
Onboarding Checklist Enhancements
The latest update of the Onboarding Checklist SuiteApp includes enhancements to existing features and the renaming of the application to Onboarding/Offboarding Plans SuiteApp.
Change
Onboarding/Offboarding Plans Version 1.01.0 (Bundle ID: 244690) helps businesses facilitate employee
transitions by using dedicated plans and templates. HR professionals can use it to create employee plans, use premade plan templates or create their own, and receive notifications related to an employee transition. The following table shows the enhancements included with the update.
Enhancements Onboarding Checklist Onboarding/Offboarding Plans
Updated bundle details Onboarding Checklist Onboarding/Offboarding Plans Bundle ID: 244690 Bundle ID: 244690
Version: 1.01.0
Added the Includes onboarding checklists Includes the following: offboarding plan type for newly hired and transferring (previously checklist) employees ■ Onboarding plans for newly hired and transferring employee
- Offboarding plans for exiting employees Enhanced access for Chief People Officer (CPO) and CPO, HRG, and Administrator roles can view, edit, Administrators Human Resources Generalist (HRG) and delete plans and templates. roles can view, edit, and delete checklists. Administrators have limited access. Updated navigation to For HRGs and CPOs: For HRGs and CPOs: create plans and templates
- To create a new checklist, go ■ To create a new plan, go to Payroll and HR > to Payroll and HR > Lists > Lists > Onboarding/Offboarding Plan > New.
Onboarding Checklist > New. ■ To create a new template, go to Setup >
- To create a new template, go Onboarding/Offboarding > Template > New. to Payroll and HR > Lists > Onboarding Checklist Template For Administrators:
New.
- To create a new plan, go to Lists > Employees > Onboarding/Offboarding Plan > New.
- To create a new template, go to Setup > Onboarding/Offboarding > Template > New.
Updated page names ■ Onboarding Checklist ■ Onboarding/Offboarding Plan List
- Onboarding Checklist Template ■ Onboarding/Offboarding Template List Updated navigation to view ■ Onboarding Checklist List ■ Onboarding/Offboarding Plan lists
- Onboarding Checklist Template ■ Onboarding/Offboarding Template
List
Added the premade Includes the Onboarding Checklist Includes the following templates: offboarding templates Template
- Onboarding Plan Template
- Offboarding Plan Template Updated fields used to On the Onboarding Checklist On the Onboarding/Offboarding Template page, determine due dates in a Template page, the following the following information determine the due date template information determine the due of a task: date of a task:
- Due Date Basis field on the header section
- Calculate Due Date From ■ Days from Due Date Basis column on the Tasks column on the Tasks subtab subtab
- Days column on the Tasks subtab
Change
Enhancements Onboarding Checklist Onboarding/Offboarding Plans On the Days column, you only need The Due Date Basis field automatically changes to enter the number of days. according to plan type. For onboarding plans, it displays Hire Date. For offboarding plans, it Example: Assignee must order a displays Termination Date. computer 14 days before the hire date. Enter data based on when the task must be finished.
- Checklist Type: Onboarding
- Before the due date basis – Enter a minus
- Task Name: Order a computer sign (-) and the number of days.
- Calculate Due Date From: Employee Start Date - ■ On the same day as due date basis – Enter zero (0)
- Days from Due Date Basis: 14
- After the due date basis – Enter the number of days.
- No defined due date – Leave blank. The following lists some examples of tasks and the appropriate entries:
- Order a computer 14 days before the hire date – Enter -14.
- Introduce the new hire on their hire date – Enter 0.
- Complete profile five days after the hire date – Enter 5.
- Submit an optional document – Leave blank. If you have created a custom saved search to generate a list of onboarding checklists, add a filter to this saved search to exclude offboarding checklists. For more information, read the help topic Employee Onboarding and Offboarding Plans. Order Management SuiteApps
Following are the 2020.1 order management enhancements to SuiteApps:
- Electronic Bank Payments Enhancements
- Grid Order Management Enhancements
- Subscription Billing Bulk Operations
- Pricing Interval UI Enhancements
- Add Interval to Multiple Subscription Lines Electronic Bank Payments Enhancements Change Electronic Bank Payments SuiteApp Templates Ownership Transfer to
Localization SuiteApps
In NetSuite 2020.1, Electronic Bank Payments (EBP) SuiteApp templates are updated with the following changes.
- Ownership of 61 native templates that were previously managed by the Electronic Bank Payments (EBP) SuiteApp are transferred to country-specific localization SuiteApps.
- The From Localization SuiteApp field in the Template File is marked during the installation of a localization SuiteApp. The installation marker confirms that the template is localized.
For information on the list of templates that have been transferred, refer to the SuiteAnswers article
Electronic Bank Payment Templates Ownership Transfer to the Localization SuiteApp, SuiteAnswers ID 89384.
Installment Payments Support for Accounts Receivables
Installment Payments feature is now supported for Account Receivables in Electronic Bank Payments
SuiteApp version 2020.1. You can now pay your invoices in installments using Invoice Payment Processing. If you enable the Installment feature in your account, a new column is added to display the Installment Reference Number on the Invoice Payment File when the installment bills are retrieved.
Primary Bank Setup for One World Accounts with Multiple Subsidiaries
In Electronic Bank Payments SuiteApp version 2020.1, the following changes have been made to NetSuite OneWorld accounts with multiple subsidiaries.
- You can now assign a primary bank to each subsidiary for multi-subsidiary customer and vendor accounts.
- The Entity Bank Details page is renamed to Bank Details.
- A new required multi-select field, Subsidiary, has been added to this page. You can perform the following actions after this update.
- Use the Subsidiary field to assign one or more subsidiaries to a bank. This enables you to assign one primary bank to each subsidiary for accounts with multiple subsidiaries.
- Create multiple bank records per entity based on the account’s base country of operation.
- Process transactions that belong to a different subsidiary. You can do this only if the transaction’s company and entity bank templates match the subsidiary and the entity bank is set to primary.
Positive Pay Processing using SuiteScript 2.0
As of 2020.1, all functions for Positive Pay processing using the Electronic Bank Payments SuiteApp will use SuiteScript 2.0. Positive Pay is now enhanced to support a maximum of 5,000 transactions.
Grid Order Management Enhancements
Import for purchase order and sales order transactions, both Grid Item ID and Grid Template
Change
fields are no longer required. The SuiteApp now autogenerates a grid item ID for each item in the transaction. The system also assigns the grid template based on the current preferred grid template assignment.
- Preferred Grid Template – You can now set a preferred grid template for inventory matrix items. You can set a preferred grid template on the item record, through CSV Import, or when creating or editing matrix templates. Having a preferred grid template simplifies the process of assigning a grid template to inventory matrix items.
- Customizable Grid Print Templates – Alongside purchase order and sales order, the SuiteApp now
enables you to customize grid print templates for the following transaction records:
- Cash sale
- Invoice
- Packing slip
- Picking ticket
- Quote To learn more about these features, see the help topic Grid Order Management.
Subscription Billing Bulk Operations
SuiteBilling Enhancements version 20.1.0 includes support for bulk operations. Bulk operations enables
you to remove charge, usage, and change order records that are no longer needed in the system. You can also update specific fields on charge and change order records. You can perform the following bulk operations using mass update:
- Delete Records – Delete or void erroneous, obsolete, or irrelevant charge, usage, and change order records in the system.
- Set Charge Stage to Non-Billable – Change the value of the Stage field on charge records to Non- Billable.
- Update Change Order Effective Date – Change the value of the Effective Date field on change order records. This feature also includes the Bulk Operations Summary page, which can help you keep track of the mass update operations performed in the system. From this page, you can access the Bulk Operations Audit
Trail record for each bulk operation run. On the audit trail record, you can view information about each
run including job name, operation type, record type, number of records successfully processed, details of the records that were included in the mass update, and details about when the job was created and who performed the job. For more information, see Performing Bulk Operations Using Mass Update. Pricing Interval UI Enhancements on subscription plan and subscription records:
- Pricing Information On View – Pricing information and tiers are readily available on the pricing interval. Previously, detailed pricing information and tiers are available as collapsible sections on the pricing interval.
- Edit, Make Copy, and Delete Actions for Pricing Interval – Click the ellipsis icon on the top right corner of the pricing interval to show the possible actions for the pricing interval. Previously, these actions are available as individual icons on the pricing interval.
Change
- Click the Pricing Interval to Edit or View – Click anywhere on the pricing interval to open it for editing (if the subscription line is included) or viewing (if the subscription line is not included).
- Add Pricing Interval – To add a pricing interval, click the plus (+) icon on the right side of the last pricing interval of the subscription line.
- Scroll Bars to Extend View – Use the vertical scroll bar on the pricing interval to see the other details that are not available in the current viewing area. Use the horizontal scroll bar at the bottom of the subscription line to view pricing intervals that extend to the next page of the screen.
- Filter, Quick View, and Add Item – These buttons are available on the top left corner of the Lines subtab. Previously, the filter and quick view icons are on the top right corner of the Lines subtab, and the +Add-On button is at the bottom of the subscription lines. For more information, see the help topic Subscription Billing Enhanced UI.
Add Interval to Multiple Subscription Lines
Subscription Billing Enhanced UI version 20.1.1 includes support for adding intervals to multiple subscription lines on subscription plans and subscriptions.
On subscription plans, the Add Interval To All button is available when you open a price book in edit
mode. On subscriptions, this button is available on the Lines subtab when you open the subscription in edit mode.
Click the Add Interval To All button to create a new interval for all recurring and usage lines. On
subscriptions, a new interval is created only for recurring and usage lines in Draft status. The pricing information on the new interval is copied from the last interval of the subscription line, except for discount. After the new interval is created, you can edit the pricing information as needed. If the price book or subscription is saved without changing any information in the new pricing interval, the new interval is combined with the adjacent interval that has the same pricing information. For more information, see the help topic Subscription Billing Enhanced UI. Inventory Management SuiteApps
Following are the 2020.1 inventory management enhancements to SuiteApps:
- Quality Management – High Volume Sampling
- Shelf-to-Sheet Inventory Count
- Warranty and Repairs Management Enhancements
- Warehouse Management System Enhancements
- Support for Printing Shelf-to-Sheet Count Records
Quality Management – High Volume Sampling
NetSuite 2020.1 Quality Management SuiteApp enables you to work with larger volumes of raw data sets. As an administrator you are able to distinguish sample data from summary or aggregate data and control whether sample data should be recorded in NetSuite or stored externally. Note: Quality Management – High Volume Sampling is targeted to be available in April 2020. The Quality Inspection tablet interface update accommodates reasonably sized raw data sets with improved usability. Change
Administration and Setup
NetSuite High Volume Sampling is automatically available when you upgrade to Quality Management
2020.1. NetSuite automatically migrates all existing inspections and related data to 2020.1. Inspection records are now maintained through standard record forms. Record customizations are available during setup or inspection maintenance. Inspection Record Changes record.
Inspection Sampling
The following fields are available under Inspection Sampling:
- Sampling Requirement – Select either No Sampling Required or Simple Sampling.
- Simple Sampling – Select this option to display the Sampling Rate and Allowable Failures fields where you can define the inspection parameters.
- No Sampling Required – Select this option to disable the inspection sampling fields.
- Create Samples – Check this box to prompt the system to prepare all data records to collect sample data using the table. Clear this box if you want to use only summary data.
Data Fields
On the Data Fields subtab of the inspection record, you can select the type of view in the View field:
- Sample Summary – Select this option to review or add to the list of summary data fields that provide a high-level or aggregated evaluation for the inspection. For example, the number of units of inspected and the number defects or failures. The Summary Field column identifies summary field.
- Inspection Data Fields – Select this option to display detailed inspection data that can be captured for each sample. This data can be stored and aggregated to determine sample summary data but is not used in pass/fail inspection evaluations.
Change
NetSuite 2020.1 restricts this data to display numbers, text, and check boxes.
Inspection Data Fields
The Inspection Data Field form displays a new Is Sample Summary Field box.
Tablet Changes
The NetSuite 2020.1 Quality Management inspection tablet interface displays a new summary data presentation section.
Summary data is displayed as data fields for non-sampling inspections. The layout is defined during
inspection setup. This new feature enables you to enter data into fields to drive inspection pass/fail behavior. Sample data is only supporting data. The Sample Data grid icon appears when sample data collection is enabled. Click the Sample Data icon to display the sample data grid. The Sample Data Grid displays the following:
Change
- The column layout follows the customer-defined sequence assigned to data fields.
- Field focus auto advances after each entry, from left to right, top to bottom.
- Pre-defined row count matches the number of samples required. The maximum number of rows is 50.
- When scrolling through data, the headers remain visible.
- The system applies validation rules as data is entered into the system. Fields are then highlighted by customer defined pass or fail colors. For example, green for pass, red for fail.
- The grid support numbers, text, and Boolean data types.
Sample Data Recording
With the release of NetSuite 2020.1, all sample data is now stored in the new Quality Data Samples record. Quality Data Detail and Quality Data Sample records are now separate records. This enhancement helps you generate more focused summary or details reports. Migration Quality Management inspection data will be migrated to 2020.1 in three stages.
- Inspection definitions will be moved to new definitions:
- For inspections requiring sampling, the Create Sample box is checked by default.
- Current fields will be treated as inspection data fields.
- Default summary fields will be created for inspected samples and defect counts.
- All active inspections will be migrated.
- Historical inspections will be migrated. Sample data will be moved to new records.
Shelf-to-Sheet Inventory Count
The new Shelf-to-Sheet Count SuiteApp implements the shelf-to-sheet inventory count, which is a manner of recording the quantity of kit items, assembly items, or inventory items according to how they are stored or organized in locations, storage areas, and shelves. and organize virtual representations of storage areas, shelves, and items at a specific store or branch location. You can group items to be stored in shelves, and then group shelves in storage areas, as they are organized in the real-world scenario. Only one template can be set up for a combination of subsidiary and location.
- Shelf-to-Sheet Count record - Using this custom transaction also included in the SuiteApp, you can start the count of the items specified in the Shelf-to-Sheet Template by entering their quantity on the record. You can then complete the count and the record goes through an approval stage. For every
Shelf-to-Sheet Count record, the SuiteApp automatically creates a corresponding Inventory Count
record where, after completing a count, the items and their quantity are also recorded. The SuiteApp requires the following Add-On Modules that you can request your NetSuite Account
Manager to enable:
- Advanced Financials
- Advanced Inventory
Change
Note: The Shelf-to-Sheet Count SuiteApp works best with the SuiteSuccess Restaurants and
Hospitality (R & H) edition of NetSuite. If you are interested in SuiteSuccess R & H edition, contact
your NetSuite Account Manager to request for the edition to be provisioned to your account. For more information, see the help topic Shelf-to-Sheet Count in the Help Center.
Warranty and Repairs Management Enhancements
warranty registration for invoice records processed through SuiteScript and web service. The same conditions apply for warranty to be registered for each item on the invoice:
- Warranty tracking is enabled on the item record.
- The item belongs to any of the supported types and there is available quantity on hand.
- Support for Warranty Registration on Invoices Created or and Saved Through Bulk Process and
Billing Schedules – You can now create warranty registration through bulk processing of invoices
using the Invoice Sales Order page, and through Billing Schedule processing. Warranty registration through these processes require enabling of the Automatically Register Warranty on Invoice preference.
- Support for Customizing the Display of the Warranty Registration Subtab on the Invoice Record – When creating an invoice, you can choose to show or hide the Warranty Registration subtab using the Register Warranty setting of line items.
- Multi-Language Support – The SuiteApp now supports the Multi-Language feature. You can set your preferred language on the General subtab of the Set Preferences page (Home > Set Preferences). For more information, see the help topic Warranty and Repairs Management.
Support for Printing Shelf-to-Sheet Count Records
Shelf-to-Sheet SuiteApp version 1.01.0 includes support for printing the Shelf-to-Sheet Count record. After
completing an item count on the Shelf-to-Sheet Count record, you can print it by clicking the Print Shelf- to-Sheet Count button. A pre-formatted Inventory Count Sheet printout is displayed in a new browser window. For more information, see the help topic Starting and Completing Item Count.
Localization SuiteApps
The following are 2020.1 localization enhancements to SuiteApps:
- Belgium Localization
- Contra Account Sheets (Beta)
- Country-Specific Reports (Beta)
- EMEA Localization
- France Localization
- Germany Central Bank Reports (Beta)
- Germany Localization (Beta)
- GL Matching
- Netherlands Localization
Change
- New Simplified India GST Tax Return Reports
- Sweden Tax Reports
- United Kingdom Localization
- New Japan Trial Balance and Enhancements to Financial Statements
- Philippine Invoicing
Belgium Localization
The Belgium Localization SuiteApp delivers templates to generate the following Belgium-specific tax reports in English, French, and Dutch:
- Annual Client Listing Form 725
- EC Sales List
- Intrastat
- Belgium VAT Report: Return Form 625
Belgium Localization works with SuiteTax Reports by providing Belgium tax report templates that you
can select from the list of country-specific templates on the Country Tax Reports page. Installing Belgium Localization requires EMEA Localization. For more information, see the help topic Belgium Localization.
Contra Account Sheets (Beta)
Important: The Contra Account Sheets SuiteApp is currently only available in beta version.
Its content is preliminary and may be significantly changed in the future. It is therefore strongly
recommended to install this SuiteApp in a sandbox account. You should only install this SuiteApp to a production account after you are familiar with its individual features and overall performance. To get access to the Contra Account Sheets (Beta) SuiteApp, contact your professional services provider or your account administrator. The Contra Account Sheets SuiteApp enables you to generate transaction records with contra account information. These records can be used by accountants for viewing the account balance or transactions. Records can be also filtered, for example, by customer, vendor, or employee. You can generate reports for various time periods and export them to PDF format.
Country-Specific Reports (Beta)
Important: The Country-Specific Reports SuiteApp is currently only available in beta version.
Its content is preliminary and may be significantly changed in the future. It is therefore strongly
recommended to install this SuiteApp in a sandbox account. You should only install this SuiteApp in a production account after you are familiar with its individual features and overall performance. To get access to the Country-Specific Reports (Beta) SuiteApp, contact your professional services provider or your account administrator. The Country-Specific Reports SuiteApp enables administrators or NetSuite Professional Services teams to build customized financial, account balance based reports that meet country-specific requirements. You can then use this SuiteApp to view, filter out, and export these reports. To build a new financial report, you must first create an initial HTML/XML report template (formatted table containing cells) and upload it to NetSuite. After uploading the template, use the Country-Specific Reports
Change
SuiteApp to set variables assigned to individual cells (as well as filters enabling you to arrange displayed data in different ways). You can use your variables as text only, inserting them into your report as labels or captions. However, your variables can also be much more advanced, such as formulas. Values from various general ledger accounts are added or subtracted and the final count of each formula is displayed in the specified cell of the report. You do not necessarily have to design new reports. Some reports are created by NetSuite developers and delivered through specific localization SuiteApps, such as Germany Localization. Localization SuiteApps developed by NetSuite work with the Country-Specific Reports SuiteApp by importing your data and delivering reports designed for the specific country. The predefined reports are not editable. However, you can use the Country-Specific Reports SuiteApp to create copies of the report and adjust them as needed.
EMEA Localization
The EMEA Localization SuiteApp provides custom lists and fields on transaction forms and item records to collect information. This information is used to generate EC Sales List, Intrastat, and VAT Reports for Germany and the United Kingdom. The SuiteTax Reports SuiteApp is required to use the tax-related features of EMEA Localization. Note: EMEA Localization is a prerequisite for the Germany Localization (Beta) and United Kingdom Localization SuiteApps. The collected information is used to deliver the country-specific tax reports. For more information, see the help topic EMEA Localization.
France Localization
The France Localization SuiteApp provides features that address or comply with accounting and financial reporting requirements or standards specific to France. The following features are available:
- French Chart of Accounts or Plan Comptable – A template that includes numerous common accounts is provided, giving companies in France the option to add subaccounts to the chart of accounts or to set up only the accounts they will use.
- Customized Financial Reports – The following standard NetSuite financial reports have been
customized to comply with accounting laws in France:
- France Account Detail
- France General Ledger
- France Income Statement
- France Income Statement Detail
- France Transaction Detail
- France Trial Balance The France Localization SuiteApp provides two versions of these reports: validated and non- validated. Validated reports display only transactions with a GL# assigned (which means that they are validated and aligned with the FEC).
- Account number format validation – For every account number, the validation is being performed to make sure that its format is compliant.
Change
- Memo field validation – The Memo field is mandatory for every France subsidiary. If you try to save any transaction with this field left blank, an error is shown and you will not be allowed to proceed.
- Open accounting periods check – To comply with the accounting practice in France, you are not allowed to create a transaction and add it to a new accounting period (or year) if 24 accounting periods and 2 accounting years are already open. Also, to be fully compliant with French laws, French users are not allowed to have more than 23 accounting periods (months) within one accounting year. For more information, see the help topic France Localization.
Germany Central Bank Reports (Beta)
Important: The Germany Central Bank Reports SuiteApp is currently only available in beta version. Its content is preliminary and may be significantly changed in the future. It is therefore strongly recommended to install this SuiteApp in a sandbox account. You should only install this
SuiteApp to a production account after you are familiar with its individual features and overall
performance. To get access to the Germany Central Bank Reports (Beta) SuiteApp, contact your professional services provider or your account administrator. The Germany Central Bank Reports SuiteApp enables companies in Germany to track and report incoming and outgoing payments to fulfill the requirements of the Germany Central Bank. Each month, German companies are required to report international payments for services of more than 12.500 EUR. For incoming payments, sums received from non-residents or from residents for the account of non-residents are reported. For outgoing payments, sums sent to non-residents or to residents for the account of non-residents are reported. The reporting documentation must be kept for at least three years to allow verification of compliance with the requirements. The Germany Central Bank Reports SuiteApp enables you to generate these reports and to export them in different file formats. This SuiteApp also lets you specify an email address to which these reports are automatically sent for archiving purposes. Finally, it notifies users whenever any report is overdue.
Germany Localization (Beta)
Important: The Germany Localization SuiteApp is currently only available in beta version. Its content is preliminary and may be significantly changed in the future. It is therefore strongly recommended to install this SuiteApp in a sandbox account. You should only install this SuiteApp to a production account after you are familiar with its individual features and overall performance. To get access to the Germany Localization (Beta) SuiteApp, contact your professional services provider or your account administrator. The Germany Localization SuiteApp provides features that comply with accounting and financial reporting requirements or standards specific to Germany. Two of the most important standards, the German SKR 03 and SKR 04 Chart of Accounts templates, are fully supported by the Germany Localization SuiteApp. The templates provided include numerous common accounts, giving German companies the option to add subaccounts to existing charts of accounts or to set up only the accounts they will use. The Germany Localization SuiteApp also supports several German financial statements. These statements are designed and created using the Country-Specific Reports SuiteApp. The Country-Specific Reports SuiteApp is developed by NetSuite and is a prerequisite for the Germany Localization SuiteApp.
Available statements are as follows:
- Balance Sheet mapped to SKR 03 Chart of Accounts
Change
- Income Statement in total costs format mapped to SKR 03 Chart of Accounts
- Income Statement in the cost of sales format mapped to SKR 03 Chart of Accounts
- Balance Sheet mapped to SKR 04 Chart of Accounts
- Income Statement in total costs format mapped to SKR 04 Chart of Accounts
- Income Statement the cost of sales format mapped to SKR 04 Chart of Accounts
- SuSa Report (trial balance report for Germany)
These financial statements show aggregated data drawn from relevant accounts defined in the chart of
accounts. To display them, go to Reports > Financial > Country-Specific Reports, select a report from the dropdown list, and click the Show Report button. You can also use the same button to recalculate the balances in the financial statements to include the latest updates within a defined accounting period.
GL Matching
The GL Matching SuiteApp provides transaction matching capability to accommodate the accounting practice known as “Lettrage” in France or “account reconciliation” in other countries, especially in Europe.
GL Matching splits transactions from one account into smaller groups of transaction lines. These groups
are then evaluated to ensure the sum of the credit entries is equal to the sum of the debit entries (so the total balance is zero). Every evaluated group is assigned a unique matching code and matching status, which are required in France. GL Matching supports the Multiple Currencies and Full Multi-Book Accounting features for NetSuite OneWorld accounts. The SuiteApp delivers a GL Matching Dashboard where transaction lines can be searched and matched.
Installing the GL Matching SuiteApp also adds a new GL Matching subtab to every supported non-custom
transaction record. It contains GL Matching-related information about the selected transaction. The following features are included in the GL Matching SuiteApp:
- Large-group matching capability – You can match a large group of more than 50 transaction lines through a backend asynchronous operation.
- Matching In Progress and History subtabs – In the dashboard, you can check the status of the SuiteApp process and review the last 100 actions done.
- Access to summary of results – You can get and create a summary of the GL Matching results using a saved search.
- Inconsistency checker – It is a fail-safe system to check and notify you if a group of transaction lines is found to be associated with multiple accounts, subsidiaries, or both. For more information, see the help topic GL Matching.
Netherlands Localization
The Netherlands Localization SuiteApp delivers templates to generate the following Netherlands-specific tax reports:
- EU Sales List
- Intrastat
- Periodic VAT return OB 69
Netherlands Localization works with SuiteTax Reports by providing Netherlands tax report templates
that you can select from the list of country-specific templates on the Country Tax Reports page. Installing Netherlands Localization requires EMEA Localization.
Change
For more information, see the help topic Netherlands Localization.
New Simplified India GST Tax Return Reports
Note: This feature requires the India Localization SuiteTax Engine (Bundle ID 253246) and SuiteTax Reports (Bundle ID 237699) SuiteApps installed. For more information, see the help topic Installing India Localization SuiteTax Reports. In compliance with the new India GST Simplified Return Filing system, the India Localization SuiteTax
Reports version 2.00.0 added the following India GST simplified tax reports:
- GST ANX-1 3A B2C
- GST ANX-1 3B B2B
- GST ANX-1 3C & 3D EXP
- GST ANX-1 3E & 3F
- GST ANX-1 3H RCM
- GST ANX-1 3I IMP
- GST ANX-1 3J
- GST ANX-1 3K IMPG SEZ The new India GST tax reports serve as a template for the GST ANX-1 section of the main GST RET-1 simplified GST tax return form. These reports can be viewed, edited, and exported through the Country Tax Reports generation page. For more information, see the help topic India Goods and Services Tax (GST) Reporting.
Sweden Tax Reports
The Sweden Tax Reports SuiteApp delivers templates to generate the following Sweden-specific tax reports:
- EU Sales List
- Intrastat
- Periodic VAT return Form 4700
Sweden Tax Reports works with SuiteTax Reports by providing Sweden tax report templates that you can
select from the list of country-specific templates on the Country Tax Reports page. Installing Sweden Tax Reports requires EMEA Localization. For more information, see the help topic Sweden Tax Reports SuiteApp.
United Kingdom Localization
The United Kingdom Localization SuiteApp delivers templates to generate the following UK tax reports:
- UK VAT100
- EC Sales List
- Intrastat
United Kingdom Localization works with SuiteTax Reports by providing UK tax report templates that you
can select from the list of country-specific templates on the Country Tax Reports page. Installing United Kingdom Localization requires EMEA Localization.
Change
For more information, see the help topic United Kingdom Localization. New Japan Trial Balance and Enhancements to Financial Statements
New Japanese Trial Balance
The Japanese Trial Balance is available from Reports > Financial > Japanese Trial Balance (New). This report shows active account balances in credit and debit columns, for a specific period. You can run this report before preparing actual financial statements to ensure that debits and credits balance out. For more information, see the help topic Japanese Trial Balance (New).
Support for Accounting Context in Japan Financial Statements
If you select an accounting context from Home > Set Preferences, then the Japan Balance Sheet, Income Statement, and Trial Balance can reference and apply it when generating reports. For more information, see the help topic Support for Accounting Context.
Classification Fields in Japan Financial Statements
All Japan financial statements now have Department, Class, and Location fields that you can specify as parameters in generating any of the reports. Philippine Invoicing
Philippine invoicing:
- Philippine Invoicing Templates
- Document Numbering
- Inclusive Serial Number and PTU Number
Philippine Invoicing Templates
The SuiteApp comes with localized and customizable templates for Philippine invoicing. Using the templates, Philippine VAT-registered persons or businesses can generate and print VAT invoice or VAT official receipt in PDF or HTML, which are pre-formatted to comply with BIR requirements. Philippine invoicing templates only work with or must be used on the following document types:
- Sales Invoice
- Billing Statement
- Collection Receipt
- Official Receipt
Change
- Credit Memo You must map these document type templates to corresponding transaction forms. When you print those transactions, the output will be pre-formatted based on the template used. The templates support system-generated documents for users or businesses with Computerized Accounting System (CAS). You can also print pre-formatted forms for non-CAS users or businesses with loose-leaf books of accounts. For more information, see the help topics Philippine Invoicing and Philippine Transaction Form Mapping.
Document Numbering
The Philippine Document Numbering feature automatically generates and assigns a document number to supported document types, which can help further identify transactions. To enable this feature, go to
Setup > Company > Auto-Generated Numbers and check the Allow Override box of the document type
that you want to have numbering. Then, set up document numbering on Philippine subsidiary records and on the Philippine Document Numbering page. In the set up, you can customize document numbering by:
- Adding a prefix or suffix to the document number
- Setting an initial number greater than the default minimum of 100,000
- Setting the number of digits greater than the default minimum of 6 For more information, see the help topic Philippine Document Numbering Setup.
Inclusive Serial Number and PTU Number
You can set up and include the serial number or PTU (Permit To Use) information, issued by the BIR, to your VAT invoice or VAT official receipt to be generated by the invoicing templates. The serial number or PTU information can be included on transactions according to subsidiary or location, depending on which classification engages with your customers and is authorized to issue invoices or receipts for your company. For more information, see the help topic Philippine Inclusive Serial Number and PTU Information Setup. Manufacturing SuiteApps Following is the 2020.1 manufacturing enhancement to SuiteApps:
Manufacturing Mobile
The NetSuite 2020.1 Manufacturing Mobile SuiteApp enables you to use mobile scanners to report manufacturing shop floor data. This solution compliments the existing Advanced Manufacturing scanner to provide improved performance, scalability, customization support, and streamlined production activities. Note: Manufacturing Mobile is targeted to be available in April 2020. The new scanner solution is not dependent on the Advanced Manufacturing SuiteApp, so you do not have to purchase an Advanced Manufacturing license. The manufacturing mobile solution is built using the same mobile technology as NetSuite WMS. Both the WMS and Manufacturing mobile features can coexist in one scanner solution.
Change
This initial release of the Manufacturing Mobile SuiteApp enables shop floor operators to use components to produce assembly items. Operators can start and end assigned work and report production quantity and consumed component quantity for a date and a shift. Production Managers can review data entered by production operators and control inventory and financial record updates in NetSuite. They can also respond to inaccurate data or errors to initiate processes to correct discrepancies and reprocess data. This release of the Manufacturing Mobile SuiteApp only supports non-WIP work orders. It also supports Uncontrolled and Lot Controlled Items but does not support Serial Number Controlled Items. To reduce operator error and fatigue, Manufacturing Mobile scanners are used on the shop floor to collect only relevant, commonly available information. Operators can focus on reporting only what happened on the shop floor. For example, system reports can show that no material is staged in the bin. However, the operator reported that they consumed material from the bin and completed the production transaction. When the operator ends their work, the NetSuite Manufacturing Mobile SuiteApp checks for any inconsistencies at the end of the process. This ensures that inventory and financial records are not updated with inconsistent data.