NetSuite ReleaseNotes - 2021.16
NetSuite ReleaseNotes - 2021.16
NetSuite ReleaseNotes - 2021.16
1 Release Notes 1
Important: This document summarizes the changes to NetSuite between 2020.1 and the
previous release.
Ensure you review the release notes section of the Help Center Weekly Updates for a list of the
changes made in this build of the release notes.
The 2020.1 enhancements and changes listed in this document are not available to customers until they
are upgraded to NetSuite 2020.1. Please check the version number at the bottom of your Home page if
you are unsure which NetSuite version you are using. The features and SuiteApps described here may not
be available in your NetSuite account. Your access to these features and SuiteApps is subject to the terms
of service in your NetSuite contract. Some features may require extra purchase.
NetSuite
NetSuite · Accounting
NetSuite · Administration
NetSuite · Banking
■ Bank Feeds
■ Financial Institution Connectivity API
■ Bank Data Matching Improvements
NetSuite · Manufacturing
■ Outsourced Manufacturing
NetSuite · Mobile
NetSuite · Projects
NetSuite · Taxation
■ SuiteTax
□ SuiteTax Support for Non-Claimable Reverse Charge Tax Types
□ U.S. Sales Tax and Canada GST Now Generally Available
□ SuiteTax Support for Tax Groups
□ SuiteTax Support for Tax Groups for Canada and the United States
□ Canada Data Provisioning Enhancements
□ Automatic Tax Calculation for Shipping in VAT Countries
□ SuiteTax Reports Enhancements
▬ Tax Point Date Support for SuiteTax Reports
▬ Tax Reporting Category for Country Tax Reports
▬ Expense Transactions in VAT/GST Reporting
□ EMEA Tax Audit Files Support for SuiteTax Reports
□ SuiteTax Country Tax Reports APAC Enhancements
▬ JAPAC Support for SuiteTax Reports
▬ Tax Reporting Category Support for Australia and Philippines Tax Reports
▬ Expense Transaction Support for APAC Tax Reports
□ SuiteTax Reports is now Tax Reporting Framework
□ Belgium Localization
□ EMEA Localization
□ EMEA Localization Enhancements
□ France Localization
□ Germany Localization (Beta) Enhancements
□ Ireland Localization
□ India Localization SuiteTax Engine SuiteApp Enhancements
□ Netherlands Localization
□ New Simplified India GST Tax Return Reports
□ Norway Tax Reports
□ Sweden Tax Reports
□ United Kingdom Localization
□ United Kingdom Localization Enhancements
■ Legacy Tax
□ Legacy Tax Support in Tax Reporting Framework
□ Tax Audit Files Enhancements
▬ Portugal Tax Audit Files Field Mapping Page Update
▬ France Tax Audit Files Support for Period End Journal Entries
▬ Portugal Standard Audit File for Tax Purposes (SAF-T PT) Grouping Code Mapping Update
▬ Tax Audit Files Generation Update for Enhanced Trial Balance
▬ Support for Norway Standard Audit File for Tax (SAF-T) Financial Report
□ Philippines Certificate of Creditable Tax Withheld at Source (Form 2307) Update
□ International Tax Reports Enhancements
▬ Austria VAT Rate Update
▬ Ireland VAT Rate Update
▬ Saudi Arabia VAT Rate Update
▬ Germany VAT Rate Update
▬ Cyprus VAT Return Enhancement
▬ Singapore Goods and Services (GST) F5 Return Update
▬ Germany VAT Return Update
▬ Belgium VAT Return Enhancement
▬ Slovenia VAT Return Update
□ ANZ Localization
Commerce
■ SMT UX Sustainability
■ Sass Pre-Processor Enhancements
SuiteCloud Platform
SuiteApps
■ Accounting SuiteApps
■ Administration SuiteApps
■ Banking SuiteApps
■ SuitePeople SuiteApps
■ Order Management SuiteApps
■ Inventory Management SuiteApps
■ Localization SuiteApps
■ Manufacturing SuiteApps
■ Projects SuiteApps
■ Integration SuiteApps
■ Non-Profit SuiteApps
■ Food and Beverage SuiteApps
■ Wholesale Distribution SuiteApps
■ Vendors, Purchasing, and Receiving SuiteApps
■ Taxation SuiteApps
Accounting
NetSuite 2020.1 includes the following enhancements to accounting features:
For instructions to set up the Balancing Segments feature, see the help topic Setup for Balancing
Segments. The setup includes the following basic steps:
■ Feature enablement – The Balancing Segments feature depends on the Custom Segments feature.
When you check the Balancing Segments box, you receive a message that lets you also enable the
Custom Segments feature if it is not currently enabled.
■ Intersegment account configuration – Intersegment accounts enable you to balance by segment
without general ledger impact to your regular transaction posting accounts. After you enable the
feature, the Accounting Preferences page includes a Balancing Segments subtab. On this subtab, you
must select default intersegment due-to and due-from accounts. You can select the same account
for both the due-to and the due-from accounts. If you want, you can also select due-to and due-from
accounts for specific transaction types.
■ Balancing segment creation – Balancing segments are custom segments. To create balancing
segments, check the GL Impact and Balancing boxes on new or existing custom segments. For
information about custom segments, see the help topic Custom Segments.
After setup, you can add values for your balancing segments to your transactions. Depending on your
custom segment configuration, you can select a value in the transaction header, the transaction lines,
or both. The transactions do not balance by segment until you run the process, usually at the end of the
period.
The Balancing by Segments Process is one of the tasks on your Period Close Checklist. You can, however,
run the process at any time from Transactions > Financial > Balance Transactions by Segments. Posting
Period is a required field, which is set automatically in the period close task. In NetSuite OneWorld
accounts, you must also select one or more subsidiaries. When Multi-Book Accounting features are
enabled, you must also select one or more accounting books. The process automatically includes all
balancing segments. You can have a maximum of two balancing segments.
The process creates a balancing journal, a new transaction type. The balancing journal includes lines for
all balancing segment values. Each line has a Details link to a page with lines for the related transactions.
From the detail page, you can click through to the individual transactions. These transactions display
the status Balanced by Segments, and their GL Impact subtabs include a Balancing by Segments Details
subtab. In this subtab you can see that the transaction header segment value (debit or credit) balances
with the line segment values.
You can rerun the balancing by segments process for a specified period and subsidiary combination.
When you rerun the process, the system deletes the previous balancing journal and a creates a new one.
A warning at the top of the Balance Transactions by Segments page alerts you when you select a period
and subsidiary for which the process has already run.
On reports, you can select your balancing segment as a Column filter or add the column when you
customize a report. Some major financial reports that support custom segments as Column filters or in
customization are the Balance Sheet, Income Statement, and Cash Flow Statement.
For detailed information about the Balancing Segments feature, see the help topic Balancing Segments
and Journals.
For more information about Advanced Revenue Management, see the help topic Advanced Revenue
Management.
In the popup window, use the Expand All and Collapse All buttons, or click the plus and minus signs to
expand and collapse individual lines.
Column Description
Element Link to the revenue element in both consolidated and expanded views.
Linked Element Visible in expanded view only. This is a link to the revenue element for a related source, such
as transaction line or subscription line.
Source Link to the source for the line in both consolidated and expanded views.
When the source is a subscription change order, the link is to the subscription change
order. The text for the link indicates the type of change order. For more information about
subscription change orders, see the help topic SuiteBilling Change Orders.
Item Link to the item record in both consolidated and expanded views.
In consolidated view, the quantity equals the total of the quantities in the detail lines.
In consolidated view, the amount equals the total of the revenue amounts in the detail lines.
Recognized (Base The revenue recognized from revenue recognition journal entries in the base currency.
Currency)
Carve In/Out The projected carve-in or carve-out amount for the element. For more information, see the
help topic Fair Value and Allocation.
For more information about the accounting preference Create Revenue Elements for Subscription
Revisions, see New Accounting Preference Related to Advanced Revenue Management.
Documentation Enhancements
The 2020.1 Help Center for Advanced Revenue Management reflects these 2020.1 enhancements.
To avoid confusion between subscription change orders and prospective merges, the documentation
no longer uses the term “prospective change orders.” Beginning in 2020.1, contract modifications are
referred to as either retrospective or prospective merges.
■ The Merge From field is now the Duplicate field. This field indicates which records NetSuite regards
as duplicates and merges into a master record.
■ The Merge Into field is now the Master field. This field indicates which record NetSuite merges
duplicates into.
■ The Entity Merge page now includes a Duplicate/Master Summary with a summary of the entities
NetSuite will merge. You can select which entity-specific information appears in the Duplicate/Master
Summary.
These changes appear on the Manual Merge page. To access this page, click Merge in a duplicate entity’s
record.
For more information, see the help topic Merging Different Types of Records.
■ Links to the previous and next transactions in your workflow. The Related Transactions – Next and
Related Transactions – Previous fields are available in your SuiteAnalytics reports and pivot tables.
■ The Transaction Detail standard workbook includes the following enhancements:
□ If you use Multi-Book Accounting, the workbook includes a Primary Accounting Book filter by
default.
□ A Transaction Overview pivot table is now available. The default definition includes a row for
account type, a Transaction Count measure, and a grand total of all accounts.
□ OneWorld accoutns include an Account Turnover pivot table. The default definition includes a row
for Account, a Subsidiary column, and Amount (Sum) measures.
■ The Do Not Display Line field, which includes information which was usually hidden in Global Search,
has been renamed to Technical Line.
For more information, see the help topics Analytics Data Source Overview and Transaction Detail
Workbook.
For more information, see the help topics Working with Email Templates and Setting Email Preferences.
Administration
This release note was updated April 29, 2020.
Before your account is upgraded to 2021.1, make sure that any customizations in your account that are
running under the Full Access role work under another role without causing any errors.
The following changes were made to the Full Access role as of 2019.1:
For more information, see the help topics Full Access Role, Customizing or Creating NetSuite Roles and
Core Administration Permissions.
To compare permission differences between two or more roles, go to Setup > Users/Roles > User
Management > Show Role Differences.
Employee Access permissions are part of the Advanced Employee Permissions feature. This feature gives
Administrators more flexibility and control over the fields and sublists on the employee record that are
available to the role.
To enable the feature, go to Setup > Company > Enable Features. On the Employees subtab, in the
Permissions section, check the Advanced Employee Permissions box.
For more information, see the help topics Advanced Employee Permissions Overview and Showing Role
Permission Differences.
When the Hide Attachments Folder box is checked, the following folders in the File Cabinet are visible to
Administrators only:
■ Attachments Received
■ Attachments Sent
■ Mail Merge
To manage this preference, Administrators can check or clear the Hide Attachments Folder box at Setup >
Company > Preferences > General Preferences.
For more information, see the help topic Restricting Access to File Cabinet Folders.
For more information, see the help topic Antivirus Scanning on File Cabinet Files.
Internationalization
For more information about setting up localization context filtering for user event and client script
execution, see Localization Context Filtering for SuiteScript 2.0.
Localization context filtering is supported for scripts in bundles. For information, see Localization Context
Filtering Supported for Scripts in Bundles.
The system follows a defined process to determine the localization context for a record, based on a
variety of factors. The following diagram illustrates this process:
The process progresses through the decision tree from the “START” to one of the results in dark–gray
rectangles.
The results of the process list the field on which the specific localization context is based. For example, if
the result is “Subsidiary (Country),” the localization context is based on the value of the country field of the
respective subsidiary.
The localization context of a record can contain multiple countries; it is not limited to a single option.
When scripts are filtered based on localization context, a script is run if its context association rule is set
to at least one of the countries of the localization context.
For localization context filtering in client scripts, the determination of localization context is dynamic:
1. A user changes a field which is used to determine the localization context of a record.
2. Context determination is immediately triggered again to make sure that the localization context is
correctly set.
3. Based on the new localization context, the relevant scripts are loaded from the server and
attached to the record and the scripts that are no longer applicable are detached.
For more information about determination of localization context, see the help topic Record Localization
Context.
■ Item
■ Transaction
■ Entity
For more details about supported records, see the help topic Records that Support Localization Context.
Localization context–aware scripts only run on records associated with a defined country or countries.
The execution of context–aware scripts is filtered by comparing the localization context of the record
to the country values selected on the script deployment record. This filtering is useful for users with
subsidiaries in multiple countries, because it causes the script deployment to run faster.
For more details on how to set up a localization context association rule that filters script execution based
on records’ associated countries, see Localization Context Filtering for SuiteScript 2.0.
During script deployment, the localization contexts of records are verified against the countries selected
on the script deployment record before these scripts load and run. The context–aware scripts skip other
records. Script maintenance is easier, because you can be sure that scripts only run on relevant records.
Note: Any and all scripts created before NetSuite 2020.1 are not localization context-aware to
guarantee backward compatibility.
Example: If the record localization context is determined as “France” and the context association rule is
employed, the scripts deploy in the following way:
■ The context–aware scripts deploy only on the records with localization context “France.”
■ Any other scripts deploy on all the records.
For details about the subsidiary hierarchy modification functionality, see the help topic Subsidiary
Hierarchy Structure Modification.
at Setup > Accounting > Preferences > Intercompany Preferences. You must have the Setup Accounting
permission to access the Intercompany Preferences page. For more information about the Automated
Intercompany Management preferences, see the help topic Intercompany Preferences.
For more information about contacting NetSuite Customer Support, see the help topic NetSuite Support.
For more information about renaming records, see the help topic Renaming Records and Transactions.
Authentication
Note: The refresh token expires after 7 days. After it has expired, an application initiates the flow
from the first step.
The authorization code grant flow for OAuth 2.0 consists of the following steps:
To enable OAuth 2.0 feature, go to Setup > Company > Enable Features. On the SuiteCloud tab, in the
Manage Authentication section, check the OAuth 2.0 box. When this feature is enabled, the user must
configure the use of OAuth 2.0 on the integration record.
On the Integration setup page, you should set values for the following fields:
■ Scope – You must choose the type of protected resources for which a user can use OAuth 2.0 for
access. You can enable RESTlets, REST web services, or both.
■ Redirect URI – You must enter a Uniform Resource Identifier (URI) that uses the HTTPS protocol
(recommended) or a custom URL schemes.
■ Authorization Code Grant – You must check this box for OAuth 2.0 to work.
■ For the following optional fields, select files that have been uploaded to your File Cabinet:
□ Application Logo
□ Application Terms of Use
□ Application Privacy Policy
After you save the page, the system displays the client ID and client secret. You should save the client ID
and client secret, as they are required for client authentication in OAuth 2.0 authorization code grant flow
when the access and refresh tokens are generated.
Warning: The client ID and client secret are only displayed after you save a new integration
record. If you lose or forget the client ID and client secret, you must reset them to obtain new
values. Treat these values as you would a password.
OpenID Connect (OIDC) SSO and SAML SSO provide alternatives for inbound SSO access to NetSuite and
Commerce websites.
■ To use OpenID Connect (OIDC) SSO, see the help topics OpenID Connect (OIDC) Single Sign-on and
OpenID Connect (OIDC) Access to Web Store.
■ To use SAML SSO, see the help topics SAML Single Sign-on and SAML Single Sign-on Access to Web
Store.
■ As of the 2020.1 upgrade, partners and customers will no longer be permitted to use the NetSuite
proprietary Inbound SSO feature or the OpenID SSO feature to create new solutions.
■ Before the 2020.2 release, partners and customers must migrate existing solutions using OpenID SSO
to use OpenID Connect (OIDC) or SAML SSO.
■ Before the 2021.1 release, partners and customers must migrate existing solutions using NetSuite
Inbound SSO to use OpenID Connect (OIDC) or SAML SSO.
In addition to the deprecation of the NetSuite and Google OpenID inbound SSO features, requests using
the ssoLogin operation to access SOAP web services must transition to use Token-based Authentication
(TBA). For more information, see Operations Removed in 2020.1 SOAP Web Services Endpoint, Token-
based Authentication (TBA), and Token-based Authentication and Web Services.
This review of login history results in an automatic redirect of the user to their identity provider login page
if one or more of the following conditions are met:
■ The previous session was associated with an SSO role with any of the following permissions assigned:
□ SAML Single Sign-on
□ OpenID Connect (OIDC) Single Sign-on
■ Primary Authentication Method box is checked in user’s account SAML configuration and previous
session was not authenticated through the NetSuite login form. This condition applies to a fresh
browser, too.
If none of the conditions above is met, the user is redirected to the NetSuite login form.
■ The realm parameter (also called the Company ID and the Account ID) is no longer required. For
the first two steps of the flow, the developer should use the account-specific domain. However, if the
account ID is not known, requests can be sent to the system.netsuite.com domain.
■ The callback URL now supports multiple ports on a localhost (http://localhost:*). This is the only
case where use of the asterisk (*) character is permitted.
■ A new tokeninfo endpoint returns information about a user based on the access token. The endpoint
is https://<accountID>.restlets.api.netsuite.com/rest/tokeninfo, where <accountID> is a variable
for the company’s account ID. A response to a GET request contains data in JSON format, including
information such as:
□ Company Name
□ Company ID (account ID)
□ Role Name
□ Role ID
□ Entity ID
For more information, see the help topic The Three-Step TBA Authorization Flow.
The following restrictions apply to the use of OIDC for Commerce websites:
■ OIDC access is supported only for websites on custom domains, not on netsuite.com.
■ You cannot use both SAML Single Sign-on and OIDC Single Sign-on for the same website. You must
choose one single sign-on method.
■ All users must use the same type of credentials, either logging in using the website login form or OP
login form.
■ A website must be fully protected to support the OIDC Single Sign-on feature. To provide this
protection for the website, you must do the following:
□ On the Set Up Web Site page, on the Web Presence subtab, in the Web Site section, check the
Advanced Site Customization box.
□ Go to Setup > Site Builder > Set Up Web Site. On the Shopping subtab, in the Registration Page
section, check the Password-Protect Entire Site box.
To enable OpenID Connect (OIDC) feature, go to Setup > Company > Enable Features. On the SuiteCloud
tab, in the Authentication section, check the OpenID Connect (OIDC) Single Sign-on box.
An Administrator must configure an application's OIDC access to NetSuite. The first step is to choose an
OP. To find a certified OP vendor, go to https://openid.net/certification. To register a client application
(website), use the OP administration tools with the client_secret_basic authentication method. Use the
client ID and client secret to configure the inbound single sign-on for websites in NetSuite.
Important: The OIDC configuration is not shared between the NetSuite application and
Commerce websites. An Administrator must configure OIDC on the SSO tab of the website’s setup
page. Website users must be assigned the OpenID Connect (OIDC) Single Sign-on permission to
log in to the website successfully.
■ If there is no active session, users are redirected to the OP login form for authentication. After
successful authentication, users are returned to the requested protected resource.
■ If there is an active session, the requested protected resource is displayed.
For more information, see the help topic OpenID Connect (OIDC) Access to Web Store.
Support for this feature is available only in accounts where the SAML Single Sign-on feature is enabled.
■ The SAML Single Sign-On Service Provider-Initiated Flow is supported only for websites on custom
domains, not on netsuite.com.
■ You cannot use both SAML Single Sign-on and OIDC Single Sign-on for the same website. You must
choose one single sign-on method.
■ All users must use the same type of credentials, either logging in using the website login form or IdP
login form.
■ A website must be fully protected to use the SAML Single Sign-On Service Provider-Initiated Flow. To
protect your website, you must do the following:
□ On the Set Up Web Site page, on the Web Presence subtab, in the Web Site section, check the
Advanced Site Customization box.
□ Go to Setup > Site Builder > Set Up Web Site. On the Shopping subtab, in the Registration Page
section, check the Password-Protect Entire Site box.
Important: For SAML SSO configuration, follow the SAML 2.0 specification.
For more information, see the help topic SAML Single Sign-on Access to Web Store.
Note: If a user has multiple concurrent sessions, and the user changes the password in one
session, that session remains active. However, the other active sessions will be invalidated.
Explicit session invalidation applies to all SuiteCommerce Advanced, SuiteCommerce, and Site Builder
websites. For more information, see the help topic Web Store Sessions.
■ The minimum password length has changed from six characters to eight characters.
■ Easy to guess or potentially compromised passwords are now prohibited.
login pages was prohibited. Browsers would no longer render the NetSuite login pages on a Commerce
website. This prohibition against presenting NetSuite pages in an iFrame has been extended to apply to
Change Password and Change Email Address pages.
If you have a Site Builder website, review your authentication logic to ensure your account complies with
the security policy described in Secure Login Access to Your NetSuite Account. See also Displaying Login
Fields on Your Web Page. If you are presenting sensitive pages in an iFrame, you must make changes to
comply with this prohibition before 2020.2.
Cloud Infrastructure
■ As of 2020.1, integration requests sent to data center-specific domains will no longer be processed
in sandbox, special purpose, and Release Preview accounts. In most cases, requests to the following
domains will be affected by this deprecation:
□ webservices.na0.netsuite.com
□ webservices.eu1.netsuite.com
□ rest.na0.netsuite.com
□ rest.eu1.netsuite.com
Note: Special purpose accounts include test drive, development, demo, and student
accounts. A few special purpose accounts use the webservices.na2.netsuite.com and
rest.na2.netsuite.com data center-specific domains. Special purpose accounts sending
requests using these domains will also be affected by the deprecation.
■ Targeted for 2020.2, integration requests sent to data center-specific domains will no longer be
processed in production accounts.
In cases where an application accesses more than one NetSuite account, you can use dynamic discovery
methods to obtain the correct URLs. For information about the available discovery methods, see the help
topic Dynamic Discovery of URLs for SOAP Web Services and RESTlet Clients.
All NetSuite account types can still access the following domains for dynamic discovery purposes:
■ webservices.netsuite.com: To dynamically discover the URL for SuiteTalk SOAP web services
requests.
■ rest.netsuite.com: To dynamically discover URLs for NetSuite services in RESTlets, or the URL for
SuiteTalk REST web services.
advantage of NetSuite’s cloud architecture, you should not use data center-specific URLs to access
NetSuite resources.
Account-specific domains were introduced beginning in 2016.2. An account-specific domain includes your
NetSuite account ID as part of the domain name. Account-specific domains are available for access to the
NetSuite UI, and for external (Online) forms, External Suitelets, RESTlets, SuiteTalk SOAP and REST web
services, SuiteAnalytics Connect, and external catalog sites (WSDK). For more information, see the help
topic URLs for Account-Specific Domains.
You should transition to use account-specific domains as soon as possible. The NetSuite application can
help you and your users during this transition.
■ Automatic Redirection
■ Automatic On-Read Translation of Data Center-Specific URLs
See Additional Assistance with the Transition to Account-Specific Domains for other features that can help
you with the transition to account-specific domains.
Note: You should transition your integrations to use account-specific domains as soon
as possible. See Data Center-Specific NetSuite Domains for Integrations are Targeted for
Deprecation.
Automatic Redirection
When users access the NetSuite UI, the browser automatically redirects them from the
system.netsuite.com domain to an account-specific domain. This redirection is transparent for users.
You should transition from using data center-specific URLs in your account. However, it is not always
possible to quickly change all of your embedded links to use account-specific domains. Data center-
specific links may be embedded in the Shortcuts portlet, in custom fields and custom center links, and in
marketing campaign email and online forms. When the NetSuite application encounters a data center-
specific URL during an active session, it automatically translates the URLs in the request to an account-
specific domain. This automatic translation is transparent for users.
For custom center links and custom fields, data center-specific URLs are translated on-read to the
account-specific domain. (That is, as the URL is read, the system translates a data-center specific URL
to the appropriate account-specific domain URL.) The on-read translation of the URL has the benefit of
making an extra HTTPS request unnecessary. An extra HTTPS request would normally result in an HTTP
response status 301 Moved Permanently for a permanent redirect, but this error does not occur. The
correct URL using the account-specific domain URL is already part of the rendered data or page in the
browser.
Important: Be aware that on-read translation does not change the hard-coded data center-
specific URLs in your account. This feature translates these URLs to account-specific domains
during active sessions. You should make a plan to update the data center-specific links in your
account and replace them with links containing your account-specific domain.
There are two features available in NetSuite that can help you ensure that your integrations are using
account-specific domains. For more information, see:
■ Traffic Health
■ Enforce Account-Specific URLs for RESTlets and SuiteTalk SOAP Web Services
Traffic Health
The Traffic Health page is available in the NetSuite UI. The Traffic Health page can help you find URLs for
SOAP web services and RESTlet requests in your account that are using data center-specific domains.
Administrators and other users with the Set Up Company permission can go to Setup > Company >
Company Management > Traffic Health to access this page. For more information, see the help topic
Traffic Health. See also How to Transition from Data Center-Specific Domains.
Note: Requests that are automatically redirected by the HTTP protocol are shown in Traffic
Health reports. For example, the extra HTTPS request necessitated by an automatic redirect is
shown on a Traffic Health report.
Enforce Account-Specific URLs for RESTlets and SuiteTalk SOAP Web Services
Data center-specific domains for integration requests in sandbox and special purpose accounts will
be deprecated when these accounts are upgraded to 2020.1. Special purpose NetSuite account
types include test drive, development, demo, and student accounts. Data center-specific domains for
integration requests are also deprecated in 2020.1 Release Preview accounts. Data center-specific
domains for RESTlets and SuiteTalk SOAP web services will be deprecated in production accounts in
NetSuite 2020.2.
Before your production account is upgraded to 2020.2, you can verify whether integrations in your
account are using account-specific domains. You can determine whether your integrations meet the
requirement to use account-specific domains when the Enforce Account-Specific URLs for RESTlets
and SuiteTalk SOAP Web Services feature is enabled. Enabling this feature lets you create your own
test window in your account. If your integrations execute as desired while the feature is enabled, you can
expect that your integrations will run smoothly when your account is upgraded to NetSuite 2020.2. To
enable this feature, go to Setup > Company > Enable Features and click the SuiteCloud subtab.
For more information, see the help topic Create Your Own Test Window in the topic Traffic Health.
After May 31, 2020, you will not be able to use your existing SSL certificate together with CDN caching.
Before the deadline, you will have to obtain a new certificate where Oracle NetSuite manages the
certificate key pair for CDN functionality to remain enabled. Oracle NetSuite now offers you two options
for certificate deployment.
■ Automatic Certificate option: Oracle NetSuite offers the Automatic Certificate option, at no additional
cost to you, to simplify the process of retrieving a new certificate.
□ In 2020.1, Oracle NetSuite can obtain a Domain Validated (DV) certificate dedicated exclusively to
your NetSuite-hosted website. This process is completely transparent to you and your account.
Oracle NetSuite will also handle renewal of these certificates.
□ You can enable the Automatic Certificate option on the Domain page in the NetSuite UI. (Go to
Setup > SuiteCommerce Advanced /Site Builder > Domains.) The Automatic Certificate option lets
you seamlessly migrate to a new DV certificate. Selecting the Automatic Certification option permits
Oracle NetSuite to obtain and manage your certificate.
□ This NetSuite-managed certificate is exclusively for your NetSuite-hosted website. This exclusivity
prevents potential malicious misuse of your website certificate. It is not possible to export the
private key of the certificate from NetSuite.
■ Manual Certificate option: If you prefer to use a certificate issued by a Certificate Authority (CA) of
your choice, you will be able to download a CSR (Certificate Signing Request) for your domain in the
NetSuite UI. Your CA must process this CSR. When you receive the certificate from your CA, you must
upload it through the NetSuite UI so that the certificate can be deployed to your NetSuite-hosted
website. You cannot deploy this certificate outside of NetSuite.
If you wish to manage the SSL certificate yourself, you must act well in advance of May 31, 2020. You
must download the CSR from NetSuite, obtain a certificate from a CA of your choice, and upload the
certificate to NetSuite.
Important: If you cannot replace your certificate by May 31, 2020 (using either the Automatic
Certificate or the Manual Certificate option) Oracle NetSuite will temporarily switch off the CDN
caching for your website. Without caching, your website performance may be slower. Switching
off the CDN gives you more time to replace your certificate. You can enable CDN caching again
after you use either of the two available options to replace your certificate.
The new CDN will be a front-end domain, hosting websites even for domains that are not configured for
caching. After the upgrade to 2020.1, you must use the new certificate deployment options to renew
expiring certificates for Commerce websites. Oracle NetSuite will generate the CSR. You will no longer be
able to generate the CSR yourself with OpenSSL as you may have done in the past.
This work-around (incorrectly returning the 206 status code) is targeted to be removed from NetSuite in
June 2020.
Banking
This release note was updated April 15, 2020.
■ Bank Feeds
■ Financial Institution Connectivity API
■ Bank Data Matching Improvements
■ Automatic Import of Bank Statement Files Through Enhanced SFTP Connectivity
■ Bank Feeds SuiteApp
■ Bank Statement Parsers Enhancements
Bank Feeds
Administrators who have online banking set up with their financial institution can now set up bank feeds
directly from their financial institution accounts. This feature enables you to monitor and manage your
cash flow needs with better accuracy and predictability.
To set up bank feeds, you can use the new Bank Feeds SuiteApp, which uses a third-party data
aggregation service to securely connect to financial institutions. To use the SuiteApp, your NetSuite role
must have the Financial Institution Records permission with a full access level. For more information
about the SuiteApp, see the help topic Bank Feeds SuiteApp.
When you set up bank feeds with the Bank Feeds SuiteApp, you can:
■ Directly connect to supported financial institutions in the United States and Canada
■ Automatically import bank data and account balances on a daily basis directly from your financial
institution into NetSuite, which eliminates the need for manual import
■ Receive daily updated cash balances
Note: The Bank Feeds SuiteApp is only available for financial institutions in the United States or
Canada. However, another way you can set up bank feeds is to develop a custom plug-in and use it
in a format profile record. For details, see Financial Institution Connectivity API.
Whether you use the SuiteApp or develop your own plug-in, you need to configure a connection to your
financial institution. You do this on the new Connectivity Configuration subtab on the format profile
record. For details, see the help topic Configuring a Connection to a Financial Institution. To configure a
connection using the plug-in and transaction parser available through the Bank Feeds SuiteApp, see the
help topic Setting Up Bank Feeds Integration.
After configuration, the Account Mapping subtab is populated with information according to the financial
institution accounts for which you have a configured connection. The following illustration displays a
populated Account Mapping subtab:
For more information, see the help topic Mapping Accounts for Financial Institution Connectivity.
After you save the format profile, NetSuite securely downloads the last 60 calendar days of available bank
data, by default. NetSuite also schedules daily updates of your financial data.
Updated bank balances and imported bank data appear on the Match Bank Data page (previously called
Confirm Transaction Matches). In addition to daily updates, there is also a manual update function on the
Match Bank Data page. For details, see the help topic Updating Imported Bank Data.
As soon as you log in to NetSuite, you can view the status of your accounts through the Account
Reconciliation Summary portlet on the Home dashboard.
To go to the Match Bank Data page, click the value in the Items to Match column next to an account.
In 2019.2, you could only import a bank statement file manually on the Statement File Import page. In
2020.1, you can use the new Financial Institution Connectivity API to develop a SuiteScript plug-in that
can automate the import process. A Financial Institution Connectivity Plug-in, in conjunction with a Bank
Statement Parser Plug-in, provides an alternative way to set up daily bank feeds, if you cannot use the
Bank Feeds SuiteApp.
The API enables you to develop custom SuiteScript plug-ins built for specific financial institutions. You can
use these plug-ins for financial institutions both inside and outside of the United States and Canada.
Note: The SuiteApp includes a single non-configurable plug-in that you can only use for financial
institutions in the United States or Canada.
The API also enables you to develop your own connectivity applications that provide more options for the
way that your system connects to financial institutions.
For more information on the Financial Institution Connectivity Plug-in and its benefits, see the help topic
Financial Institution Connectivity Plug-in Interface Overview. For details on the Bank Statement Parser
Plug-in, see the help topic Bank Statement Parser Plug-in Overview.
You can also use the Financial Institution Connectivity API to develop plug-ins in the SuiteCloud
Development Framework (SDF). For details, see the help topic Financial Institution Connectivity Plug-ins as
XML Definitions. For an overview of SDF, see the help topic SuiteCloud Development Framework Overview.
In NetSuite 2020.1, to use a custom Financial Institution Connectivity plug-in, you must always create and
configure a financial institution and format profile record.
Note: You can only use standard plug-ins in the format profile provisioned by the Bank Feeds
SuiteApp. For details, see the help topic Bank Feeds SuiteApp.
To configure a direct connection to your financial institution, select a plug-in from the new Connectivity
Method dropdown list on the Format Profile page. For details on direct financial institution connectivity,
see Bank Feeds.
Note: After you save a format profile with a custom Financial Institution Connectivity Plug-in, you
cannot modify the selected plug-in.
To import manually, select the Manual Import option from the Connectivity Method list.
Note: Existing format profile records use the manual import method, which you cannot change.
For information on configuring format profiles in general, see the help topic Creating Format Profiles.
For information on configuring financial institution connectivity, see the help topic Configuring a
Connection to a Financial Institution. For information on mapping accounts in a format profile that uses
the Financial Institution Connectivity Plug-in, see the help topic Mapping Accounts for Financial Institution
Connectivity.
To exclude data, see the help topic Excluding Imported Bank Data from the Matching Process.
In 2020.1, if the administrator configures a format profile for direct connectivity to a financial institution,
NetSuite automatically updates bank data each day. On the Match Bank Data page, you receive newly
imported bank data, as well as daily bank balances of the account and the bank balance date. For more
details, see Bank Feeds.
If your account in NetSuite does not contain the latest data, or if there was an import error, you can
initiate a manual update on the Match Bank Data page. The Intelligent Transaction Matching feature
automatically matches any data that NetSuite creates after the last successful import.
For details, see the help topic Updating Imported Bank Data. For details on custom matching rules and
manual transaction matching, see the help topics Creating Custom Transaction Matching Rules and
Creating Account Transactions During the Matching Process.
■ Resize column widths – Text in a field is sometimes too long to fit in the column. Resize the column
width to view the full information. See the help topic Viewing Details of Account Transactions.
■ Reorder columns – Adjust the order of columns to suit your needs. For example, you can move the
Amount columns next to each other for comparison. See the help topic Filtering Imported Bank Data
and Account Transactions.
■ Label changes – For a more intuitive user experience, the following label updates appear on the
Match Bank Data page for 2020.1:
□ To indicate that the data requires manual matching, the Unmatched subtab is now To Be
Matched.
□ To indicate that the matches are ready to submit and be cleared in the system, the Review Matches
subtab is now Matches to Submit.
□ To avoid any confusion around the difference between transaction confirmation and reconciliation,
the Confirm Transaction Matches button is now Submit. After you match transactions, submit your
matches.
Note: A banner message appears that says NetSuite is confirming and clearing
transactions.
To reconcile your matches, click the new Reconcile Account Statement link at the top of the page.
■ New links – The top of the Match Bank Data page now includes a horizontal list of links that let you
do other tasks, such as import or reconcile data. The links that appear are role-dependent and can
include the following:
□ Import Statement
□ Reconciliation Matching Rules
□ Go To Register
□ Reconcile Account Statement
The Reconcile Account Statement page also contains a horizontal list of links (role-dependent), which
includes the following:
□ Reconciliation History Report
□ Reconciled Statements List Page
□ Go To Register
Employee Management
NetSuite 2020.1 includes the following enhancements to Employee Management features:
If you are an HR Administrator, you can enter guidelines and relevant links on the Employee Change
Request Type page to assist managers in initiating employee change requests (ECRs).
The insights for employee change requests show the range of employees’ salary increases and job
duration based on two years of organizational data. These insights provide context for the potential
change and help managers and approvers make an informed decision when approving or declining
change requests. To enable and select insights, go to Setup > HR Information System > Employee Change
Request Types and click the Insights tab on the change request type. For more information, see the help
topic Setting Up Employee Change Request Types.
To perform a CSV Import with Effective Dating, include the following columns
■ Internal ID
■ Effective Date
■ Change Reason
■ Change Reason Details
Order the rows in the CSV from past to future-dated changes. When dealing with effective-dated conflicts,
the system will automatically apply future-dated changes as they come up. For details, see the help topic
CSV Imports Overview.
To customize restrictions for Advanced Employee Permissions, you must have the Manage Custom
Restrictions permission. For details, see the help topic Custom Restrictions for Advanced Employee
Permissions.
You should review the standard and custom roles in your account that include the Lists > Employees
permission. Make sure that all users with these roles should continue to have full access to employee
records. For any users who should not have full access to employee records, you can assign them to a
different role that does not include the Lists > Employees permission. If you have the Administrator role,
you can create alternate custom roles for these users. For details, see the help topic Advanced Employee
Permissions Overview.
the fields and sublists that the Employee System Access permission exposes. For more information, see
the help topic Employee Record Full Permission Overview.
You can now remove the Category field from expense reports and the field is no longer required. When
added to a custom form, the Account field is now required. It is populated automatically by the Category
field. However, you can update the Account field to select a different account.
Note: You cannot use personal corporate card expenses if you hide the Category field on
expense line items.
For more information, see the help topics Understanding Expense Categories and Creating Custom Entry
and Transaction Forms.
– Use Employee Specific Expense Folders box. When you enable this feature, expense file attachments
automatically submit to a dedicated employee expenses folder, predefined by the system.
If you have the Administrator role, you can see the contents of these folders, but employees can no
longer locate or access these attachments from the File Cabinet. Employees must instead access their
expense attachments from the expense report record.
Also under Data Management, you can enable Enhanced File Security – Migrate Files to migrate legacy
expense file attachments to their new employee-specific folders.
New accounts provisioned in NetSuite 2020.1 automatically adopt the new folder structure. Existing
customers can test the new file structure in the sandbox or release preview accounts.
■ If you use Charge-Based Billing, you can now update unbilled or non-posted time entries with
generated charges. When you update time entries with generated charges, NetSuite deletes all
charges associated with the modified time and generates new charges at the next scheduled charge
generation.
■ When you filter time entries on the Update Time Entries page, only time entries you have permission
to edit appear in the list for selection.
■ You can bulk edit all time entries submitted for assigned projects. You must be assigned the
project manager role on the project record and have full access to the Bulk Time Entry Modification
permission in your assigned NetSuite role. This also enables you to edit individual time entry records
and timesheets submitted for your projects.
■ The time modification request record is now available to use with workbooks. You can use a workbook
to audit all time entry updates and actions. For more information, see the help topic Custom
Workbooks and Datasets.
■ When you enable the Override Rates on Time Records preference, you can now see the Rate and
Price Level field for each time entry available for selection.
■ When you bulk update the approval status of time entries to Rejected, you can now add a rejection
note.
For more information on these enhancements, see the help topic Updating Time Entries.
Inventory Management
This release note was updated July 1, 2020.
NetSuite now generates intelligent supply reallocation recommendations. To minimize the effect on
all orders, these recommendations are designed to take the resources from multiple unallocated
orders. System generated reallocation recommendations reduce the time to find, review, and execute
reallocations. After you accept a recommendation, the system automatically re-aligns the supplies to the
affected orders.
After you review allocation exceptions, you can assess all your sources of supply and existing orders.
You may need to select one or more order lines from less urgent customer orders to meet the target
sales order line requested date and quantity. After the reallocation is approved, NetSuite automatically
executes the re-allocations across the selected orders.
However, if the generated recommendations are not suitable, you can generate a new set of allocation
recommendations. You can then review reallocation scenarios until you define a solution. After you
approve an allocation, the system returns you to the order.
The following functionality is new to Supply Allocation Exceptions Management in NetSuite 2020.1.
In the Allocated Demand window Reallocate Order Item column, clicking the Reallocate link opens the
Reallocate Order Item page where you can reallocate items.
The new Reallocate Order Item window provides the following functionality:
You now can create multiple partial receipts against specific fulfillments for a transfer order. In the Enter
Transfer Orders form, select the Use Item Cost as Transfer Cost box to ship and receive against transfer
orders when the system uses item cost as the transfer price. To learn more, see the help topic Entering a
Transfer Order.
To use this functionality, enable the Multi–Location Inventory. To learn more, see the help topic Enabling
the Multi-Location Inventory Feature.
When you check the Use Item Cost as Transfer Cost box, you can record the actual number of received
items instead of the total expected quantity.
■ Standard
■ Average
■ Group Average
■ FIFO
Note: Accounts with multi-book cannot partially fulfill a transfer order receipt when the transfer
order is at cost.
■ Inventory Status Filter for Bin Lists - If you use the Inventory Status feature, you can show the
Inventory Status column in the bin table of specific mobile pages. This enhancement applies to the
list of bins in the putaway process, in the inbound shipment receiving process, and for single or multi-
order picking. By default, these mobile pages display the list of bins by status. You can filter and sort
bin lists by inventory status or available quantity.
■ Real-time Display of Recommended Bins List - Work order picking and single or multi-order picking
now displays up-to-date lists of recommended bins on your mobile device. If you use pick strategies,
they also display filtered and sorted bins based on your pick strategy definition.
For more information about recommended bins, see the help topic Recommended Bin Sorting.
■ New Pick Strategy Filter Options - On pick strategy records, the Transaction Type filter now
includes the Work Order and Replenishment options. You can apply pick strategies to either of these
transaction types. For more information, see the help topic Defining Pick Strategies.
■ Updates to the Wave Transaction - Wave transactions now set the default status to Released,
instead of Pending Release. To assign pickers to pick tasks, before you save a new wave, you must set
the status to Pending Release.
You can delete a released wave, if all of its associated pick tasks are in a Ready or Failed status and
cannot be retried.
■ Packing Enhancements
□ Packing now supports non-inventory for sale and for resale item types that have the Can Be
Fulfilled/Received box checked on the item record. It does not support other charge items.
□ For the supported non-inventory item types, you can pack only the full ordered quantity in a carton
and not any partial quantities.
□ When you manually pack orders, you can enter pack carton details, including the carton name,
weight, and dimensions. NetSuite WMS automatically updates the associated item fulfillment
records on which you can view the pack carton details.
□ If you manually pack orders, you can activate the Use custom packing lists? system rule that
enables you to set up custom PDF packing lists. NetSuite WMS provides the default packing list in
the wms_sl_CustomPrintpacklist.js script. You can copy this script and customize the PDF packing
list according your business requirements.
For more information about packing enhancements, see the help topic Packing Orders or Manually
Packing Orders and Printing Packing Lists.
■ Handling Wave Issues
On wave transactions, NetSuite WMS displays a warning message for any detected discrepancy issues
regarding its orders. Waves with discrepancy issues may contain pick tasks in In Progress status that
do not reflect the current status of the orders. Additionally, the orders in a wave may be associated
with other waves that also have pick tasks in the same state. The warning message includes a link that
enables you to resolve these issues for all affected waves. For more information, see the help topic
Updating Waves and Handling Wave Issues.
NetSuite WMS 2019.2 enhancements that are now generally available in WMS 2020.1 include the
following:
■ Bulk Processing Jobs for Fulfillments of Released Orders - NetSuite WMS uses bulk processing jobs
to create fulfillments for released orders. You can monitor the status of multiple bulk processing jobs
in real time and view any fulfillment errors.
NetSuite WMS submits bulk processing jobs for completed pick tasks, based on your Per Order or Per
Order Line fulfillment preference. The processing time to generate fulfillments varies, depending on
the number of transactions and other jobs in your queue. For more information about the fulfillment
preference, see the help topic Setting Warehouse Management Preferences.
■ Workbook Support for Warehouse Management Records - Workbook support is available for the
following records and transactions:
□ Wave transaction
□ Pick task record
□ Pick task strategy record
□ Zone record
□ Item family group record
□ Item process group record
Workbook support enables you to create SuiteAnalytics workbooks with any of these records and
perform record or transaction searches.
■ GS1-128 (1D)
■ GS1 DataMatrix (2D)
You can scan the supported GS1 bar code types to enter items for inbound, inventory, or outbound
processing.
To set up GS1 bar codes, you must activate the Enable Advanced Bar Code Scanning system rule and map
bar code data to NetSuite fields.
For more information about setting up GS1 bar codes, see the help topic Bar Code Scanning Setup.
Multi-App Support
Multi-app support enables you to register and configure multiple mobile applications in your account
with the latest SCM Mobile SuiteApp version. On a mobile device, you can switch from the NetSuite WMS
application to another NetSuite mobile application.
■ Wave transaction
■ Pick task record
■ Pick task strategy record
■ Zone record
■ Item family group record
■ Item process group record
■ Order type record
You can create or update these records through CSV import, with the exceptions of wave transactions
and pick task records.
Mobile Printing
NetSuite WMS Version 2020.1 integrates with PrintNode, a hosted printing service, to provide mobile
printing capabilities. You can send print requests for item labels, pallet labels, and other shipping
documents from a mobile device to your warehouse printer.
Prior to setting up mobile printing, you must acquire and configure a PrintNode account with your
warehouse printers. When you set up mobile printing, you can specify the print sequence, enable
automatic printing, and set the default mode to raw printing using ZPL commands.
For more information about setting up mobile printing, see the help topic Mobile Printing Setup.
You can reprint documents printed originally from a mobile device. The new version of NetSuite WMS
provides a log of mobile print requests. From your mobile device or NetSuite WMS user interface, you can
access this log and select a document to reprint.
For more information about mobile printing, see the help topic Mobile Printing for NetSuite WMS.
Location Records
Location records now include a User Entry Predicted Risks section that enables you to avoid inventory
shortages for particular locations. The Days Late fields can define a number of days past the expected
date that an item is likely to be received. The Confidence fields record the percentage of confidence you
have that the Days Late prediction is accurate. The values in the Predicted Risks portlet are sourced from
these location fields. For new location records, these fields default to 0 Days Late and 100% Confidence.
These values will be used if the Supply Chain Predicted Risks feature is not enabled or if intelligent
predictions are not available.
Preferences
On the Control Tower Preferences page, you can define the default values for the following fields on
location records:
This feature requires a history of data to create a trained model from which predictions can be made.
When the Supply Chain Predicted Risks feature is enabled, the feature does the following:
■ Date
■ Days Past Due
■ Item
■ Location
■ Transaction
■ Supply Quantity
■ Demand Quantity
The workbook uses Supply Chain Snapshot, Item, and Supply Chain Snapshot Details as the three
formula.
Manufacturing
NetSuite 2020.1 includes the following enhancements to Manufacturing features:
■ Outsourced Manufacturing
■ Actual Production Dates
■ Manufacturing Mobile
Outsourced Manufacturing
The release of NetSuite 2020.1 Outsourced Manufacturing enables you to purchase outsourced assembly
production from vendors. This helps you better manage your subcontracted manufacturing processes.
This upgrade enables NetSuite to automatically consume (use items or products) production components
and then transfer them to a specified location. Outsourced manufacturing automatically synchronizes
NetSuite procurement and production transactions.
NetSuite 2020.1 enables you to outsource your manufacturing efforts either from a purchase order or
from a work order.
■ After you edit an outsourced purchase order, the system checks for any constraints between
transactions (lowering quantities or charges) to keep them synchronized.
■ After receiving an outsourced item on a purchase order, NetSuite builds assemblies for the
outsourced work order. The system uses components from your stock to contract manufacturers.
■ Receive assemblies at any location within a subsidiary. The system automatically transfers finished
products to the designated location.
■ NetSuite can handle serialized or lot–numbered assemblies and components.
■ The cost of the production charge is the actual charge. Each production run uses the charge on the
purchase order.
■ Outsourced Manufacturing is compatible with NetSuite Supply Planning and Distribution Network.
Purchase Order
The new Standard Outsourced Purchase Order custom form enables you to create a purchase order for
outsourced assemblies that contains specific attributes for outsourced production. For example, you can
define the following outsourcing details:
■ Assemblies
■ Outsourcing Location
■ Production Start Date
■ Production End Date
■ Bill of Materials
■ Bill of Materials Revision
The outsourcing form also displays the new Create WO column. When you check the Create WO box on
an order line and then save the order, the system automatically creates a work order for this line and
purchase order.
After you save a purchase order, the Create WO column displays a link to the new work order. However, if
you did not check the Create WO box, a Create WO link appears in the Create WO column. Click this link to
prompt the system to create a work order for this order line.
After you save a purchase order, a Receive button appears in the purchase order. Click this button to
open the Item Receipt window where you can receive production items from the purchase order.
Work Orders
Generally, if you use supply planning and create outsourced items from work orders, you can enter
outsourcing-related information in the work order Outsourcing subtab. Similar to the Create WO box
on outsourced purchase orders, the outsourced work order displays a Create PO link to create related
purchase order. If the purchase order is not created automatically, NetSuite creates outsourced purchase
orders for Firmed Work Orders for vendors and subsidiaries.
Manufacturing Locations
To improve inventory tracking, the Manufacturing Locations field appears in the Vendor window,
Outsourced Manufacturing subtab.
Click the double arrow icon to assign one or more physical locations to the vendor.
Bill of Materials
Create a Bill of Materials to capture final assembly costs that include outsourced production charges.
For example, your organization outsources bicycle manufacturing. However, you provide seats and
wheels from stock to the outsourced vendor. A single seat is priced at $20 while two wheels cost $70. The
vendor provides the other components, assembly location, and assembly labor. The vendor outsourcing
charge is $350.
Combine the inventory outsourcing charges, 20 + 70 + 350, for a total assembly cost of $440. Standard
Non-Inventory/Service/Other Charge items outsourcing charge item costs are taken from the related
purchase order.
Item Receipt
The Item Receipt Items subtab displays a link to the assembly column. You can also select a different
destination location within the same subsidiary. The production location is selected by default . If this
location changes, the Inventory Transfer transaction moves inventory from the production location to
the destination location. You can also click the link to open the Assembly Build Helper. Save the assembly
build helper to display a link to the created assembly build and automatically create a transfer order.
For example, you provide 20 bicycle seats for a production run. During assembly your vendor broke five
seats. As a result, you need to provide an additional five seats from your inventory. Use the Assembly
Build Helper to update the original number of seats you provided from 20 to the correct figure of 25. This
means you do not have to edit the related assembly build transaction after it is created.
This new feature enables you to track actual production dates to better assess your production plans,
identify problems, optimize production runs, and make data–driven decisions.
NetSuite calculates production after the first build transaction starts. If you are using WIP, the calculation
starts when components are issued. The system end date records when the work order is closed. The end
date must occur on the same day or some time after the start date. You cannot record an end date until
you entered a start date.
For example, you start to a red mountain bike assembly build. You create a work order on January 16,
2020. The system records this as the production start and end dates. The work order instructions calls for
10 bicycles be built. Two bicycles were built on January 16, 2020. This is recorded as the Actual Start Date.
You already eight bicycles in inventory that were built on January 10. This is the assembly transaction date.
After you update the assembly build, NetSuite automatically adjusts the work order Actual Start Date to
January 10. The Actual End Date is recorded as January 16.
NetSuite automation logic always uses the transaction dates. In this example, the system uses the
assembly builds for the non-WIP work order dates.
If you prefer to control actual production dates manually, and do not want NetSuite to calculate actual
production dates, you can disable this feature. However, you need to enter actual production dates
manually on each work order.
Mobile
NetSuite 2020.1 includes the following enhancements to NetSuite for Mobile features:
My Approvals Enhancements
NetSuite for iOS 9.4 released in June 2020 includes the following enhancements to the My Approvals
feature. Managers can:
Order Management
NetSuite 2020.1 includes the following enhancements to order management features:
Instructions for enabling the SuiteBilling feature are described in the help topic Setting the SuiteBilling
Preferences.
Subscription Revisions
When you create, edit, or void a subscription change order, NetSuite generates a subscription revision
with the individual contract modifications and the associated revenue impacts. When you save a
subscription change order, NetSuite stores all changes associated with the change order in the
subscription revision.
■ The Subscription Line record, on the Revisions subtab, in the Subscription Revision column, as shown
in the following figure:
■ The Subscription Change Order record, on the Line subtab, in the Subscription Line Revisions column,
as shown in the following figure:
Any edits or deletions to subscriptions activated before 2020.1 are not tracked in a subscription revision.
Subscriptions that are activated before 2020.1 create a new subscription revision only when you next save
a subscription change order.
For more information, see the help topic, SuiteBilling Subscription Revisions.
For more information on the additional functions for this feature, see Changes to Change Orders for
Subscription Revisions.
You can no longer delete a subscription change order, but you can void it. Voided change orders are
visible but do not impact charge amounts, so you can track the revenue change history after change
orders have been removed.
Using SuiteScript, you can can void a subscription change order and search and view voided change
orders.
To revert a subscription line to Pending Activation status, you must void all its change orders.
you create a subscription and set the preference, all subscription revisions generate a separate revenue
arrangement and corresponding revenue elements.
When you set the Create Revenue Elements for Subscription Revisions preference, all subscription
revisions generate modification elements that account for the impact on revenue. You can set this
preference to generate the modification element according to the ASC-606 accounting policies for
subscription modifications when you have allocated revenue. This new feature gives you the ability to
prospectively merge the modification elements; you also can still retrospectively merge the modification
element if that is the required accounting practice. For instructions, see the help topic, Merging to
Combine Revenue Arrangements. The Revenue Summary subtab of revenue arrangements shows
merged elements. For more information, see New Revenue Summary Popup Window for Revenue
Arrangements.
Warning: After you set the Create Revenue Elements for Subscription Revisions preference,
you cannot change it.
For more information, see the help topic Revenue Recognition for SuiteBilling.
Set each preference to an integer value of 1 to 120. To ensure an uninterrupted revenue stream,
choose values that are longer than the longest billing cycle that you use. You can edit or turn off the
preferences at any time. For more information, see the help topic Setting Optional Invoicing Preferences
for Subscription Management.
After you set these preferences, NetSuite assigns those values to every new evergreen subscription
you create. If you do not set the preferences, NetSuite assigns the default values for the preferences to
new evergreen subscriptions. To assign the preferences to an existing evergreen subscription, edit the
Invoicing Preferences for the subscription.
You can add secondary subsidiaries to customers after you complete these steps, in the following order:
Then, when you are creating billing accounts, and you select a customer with multiple subsidiaries, you
can select the subsidiary. For more information, see the help topic Creating Billing Accounts.
To set subscription charge periods to align with the subscription start date:
1. Go to Setup > Accounting > Invoicing Preferences.
2. On the Subscription Management subtab:
Tip: The Subscription Management subtab does not appear until after you enable
SuiteBilling.
■ Price book
■ Price plan
■ Subscription change order
The default permission level is View. There are optional permissions for Create and Edit. Roles with Full
access permission can do the following actions:
■ View
■ Edit
■ Create
■ Except where noted in the help, delete
For all of the SuiteBilling permissions and changes to standard roles, see the help topic SuiteBilling Roles
and Permissions.
The Sales Vice President role can now view subscriptions and usage. The Marketing Administrator,
Marketing Assistant, Marketing Manager, Resource Manager, and Store Manager roles can now view
subscription plans. Customized roles with subscriptions and subscription plan permissions are not
changed by the new permissions.
Only the System Administrator role can grant access to SuiteBilling subscription processes. Subscription
processes include actions on subscription plans, subscriptions, price books, price plans, subscription
change orders, and usage.
The following roles have default permissions to access and perform subscription processes:
The System Administrator role provides full access to the subscription record. For instructions, see the
help topic Default Permissions for Subscription Records.
The System Administrator role can set up standard pricing that cannot be modified through the following
actions:
In addition, usage no longer requires the accounting list permission. The Billing Specialist role without the
accounting list permission can create usage through a usage record. For instructions, see the help topic
Creating Usage Records.
The Billing Specialist role can preview the price plan and price book of a renewed subscription before its
renewal. For instructions, see Viewing Pricing Before Subscription Renewal.
Search Enhancements
Subscription and Subscription Change Order searches now have Default Renewal Subscription Plan and
Default Renewal Price Book columns.
For more information, see the help topic Fulfillment Request Creation.
When the expected ship date is a future date, this option enables the automatic creation of fulfillment
requests on that date.
For more information, see the help topic Fulfillment Request Creation.
If you enable Payment Instruments, your Visa card processing through NetSuite becomes automatically
compliant with the new Card on File mandate from Visa. For you to become compliant, your gateway
provider must support this feature. Note that failing to comply with the Card on File mandate may result
in penalties.
For instructions on how to enable Payment Instruments and information on the benefits of using this
feature, see the help topic Payment Instruments.
In NetSuite 20.1, the error message after a failed credit card payment is displayed at the top of the
transaction form. The error message contains information from the Payment Gateway. Further details are
available in the created payment event on the transaction form.
The described GUI change does not affect any scripts or integrations, and you do not need to take any
action.
The system updates usage figures on a daily basis. You can view the last daily increment quantity, as well
as the total cumulative quantity since the anniversary date of your NetSuite account. Additional methods
to view usage figures with saved searches or SuiteAnalytics workbooks are described in the Automation
Capacity and Usage Fees help topic.
Projects
NetSuite 2020.1 includes the following enhancements to Projects features:
■ Budget by Activity Codes – You can now use activity codes instead of item sets. NetSuite
automatically creates reports which define the activity code dimension for cross-customer and cross-
project reporting. The following Budget vs. Actual reports are new for 2020.1:
□ Budget vs. Actual by Activity Codes
□ Budget vs. Actual by Activity Codes Detail
□ Budget vs. Actual by Activity Codes by Month
□ Budget vs. Actual by Activity Codes by Month Detail.
■ Budget by Budget Lines – NetSuite automatically creates reports that define the work breakdown
structure dimension for project reporting. The following reports are new for 2020.1:
□ Budget vs. Actual by Budget Line
□ Budget vs. Actual by Budget Line Detail
□ Budget vs. Actual by Budget Line by Month
□ Budget vs. Actual by Budget Line by Month Detail.
■ Budget by Items – NetSuite does not create the Budget by Items report for new customers of
advanced project budgeting. The existing reports are maintained as they are. You can create the item
report manually.
For more information, see the help topic Advanced Project Budgeting. See also Activity Codes.
■ Recalculate Financial Data – You can now initiate a recalculation of financial data and select the
Recalculate Financial Data in the Actions menu on project, work breakdown structure, and budget
records.
■ Display Approved Time as Actual – You can now select an approved time as an actual cost without
posting the time. You can also display tracked and approved time as an actual cost on the P&L subtab.
The estimate at completion and an estimate to complete calculations are more accurate.
■ Inclusion of Forecast and Actual Charges – You can now include forecast and actual charges in
project profitability configurations. All forecast and actual charges appear as committed revenue. If
you invoice an actual charge, the system ignores the charge. If you use a project charge on a sales
order, the calculation of the remaining billable amount follows the charges and not the unbilled
quantity on the sales order. Previously, there was a risk of errors when one sales order line calculation
referred to multiple projects. In NetSuite 2020.1, you can see the impact on revenue from billable time,
forecasted milestone and fixed date billings on a project.
For more information, see the help topic Advanced Project Profitability.
For accounts using project percent complete revenue rules, a temporary preference is available on the
Accounting Preferences page. You can choose to recognize revenue for percent complete rules the
event submission date or the event source date.
For more information, see the help topic Project Revenue Recognition. See also Revenue Recognition
Rules.
■ After you enter a transaction on the Purchase Order page, you can click the new Enter Prepayment
button.
■ From the Vendor Prepayment page, using the new Purchase Order dropdown list.
You can associate multiple vendor prepayment transactions to the same purchase order. The Related
Records subtab on the Purchase Order page provides an overview of the vendor prepayments.
Associating the vendor prepayment to the purchase order is optional. You still can enter and apply your
vendor prepayments without linking them to a purchase order (stand-alone vendor prepayments).
For more information on this new NetSuite functionality, read Vendor Prepayment Associated with a
Purchase Order.
To streamline this automatic application process, the Auto-Apply accounting preference works using the
NetSuite system account. The employee entering or approving the vendor bills does not need to have
permission to work with vendor prepayments.
The Auto-Apply Vendor Prepayments preference is set by default, affecting all prepayments that meet
the Auto-Apply conditions. If the vendor prepayment does not meet the Auto-Apply conditions, you
must apply the prepayment manually (for more information about Auto-Apply conditions, see the help
topic Auto-Apply Conditions.) If you want to apply prepayments manually, you must clear the Auto-Apply
Vendor Prepayments box. To set the Auto-Apply preference, go to Setup > Accounting > Preferences
> Accounting Preferences. Under the Accounts Payable section, check or clear the Auto-Apply Vendor
Prepayments box.
For more information about the new Auto-Apply setting, read Applying Vendor Prepayments with Auto-
Apply.
■ Exposure of Vendor Prepayment records in SuiteScript. For more information, see the help topic
Transactions in the SuiteScript Records Guide.
These new permissions in the Employee Center role are not enabled by default. To approve vendor bills in
the Employee Center, you must enable the permissions in the role first.
You can complete the approval process using the standard vendor bill approval, or a custom vendor bill
approval workflow in SuiteFlow. For information about the different approval options, read the help topic
Vendor Bill Approvals.
For more information about this new NetSuite feature, read the help topic Vendor Bill Approvals in the
Employee Center.
Taxation
This release note was updated April 15, 2020.
■ SuiteTax
□ SuiteTax Support for Non-Claimable Reverse Charge Tax Types
□ U.S. Sales Tax and Canada GST Now Generally Available
□ SuiteTax Support for Tax Groups
□ SuiteTax Support for Tax Groups for Canada and the United States
□ Canada Data Provisioning Enhancements
□ Automatic Tax Calculation for Shipping in VAT Countries
□ SuiteTax Reports Enhancements
▬ Tax Point Date Support for SuiteTax Reports
▬ Tax Reporting Category for Country Tax Reports
▬ Expense Transactions in VAT/GST Reporting
□ EMEA Tax Audit Files Support for SuiteTax Reports
□ SuiteTax Country Tax Reports APAC Enhancements
▬ JAPAC Support for SuiteTax Reports
▬ Tax Reporting Category Support for Australia and Philippines Tax Reports
▬ Expense Transaction Support for APAC Tax Reports
□ SuiteTax Reports is now Tax Reporting Framework
□ Belgium Localization
□ EMEA Localization
Non-claimable reverse charge tax type supports non-claimable tax deductions on reverse charge tax
types. For example, you can apply this tax type when you buy products from a different country and must
pay VAT to your domestic tax authority, but cannot claim the reverse charge tax from your tax authority.
This enhancement also supports existing customers and partner requirements based on local tax rules.
Note: The combination of both properties is allowed only when you create the tax type for the
first time. These settings cannot be edited later.
For further information, see the help topic Non-claimable Reverse Charge Tax Type.
User Interface
NetSuite 2020.1 includes the following enhancements to the NetSuite User Interface:
Note: The language preference for the Help Center is independent of the language preference
specified for the NetSuite user interface.
Commerce Applications
Important: SuiteCommerce Advanced releases are available as unmanaged bundles. Accounts
are not automatically upgraded to the latest version during the standard NetSuite phased
release process. For existing implementations, taking advantage of enhancements in a given
SuiteCommerce Advanced release requires you to migrate changes into your existing code base.
For details, see the help topic Update SuiteCommerce Advanced.
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.
■ SMT UX Sustainability
■ 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.
Commerce Merchandising
NetSuite 2020.1 includes the following enhancements to commerce merchandising features:
For more information, see the help topic Applying Attributes to Items in a Merchandise Hierarchy.
For more information, see the help topic The Hierarchy Manager.
For more information, see the help topic Using Merchandise Hierarchy to Analyze Sales and Item
Performance.
Commerce Platform
This release note was updated July 15, 2020.
Commerce Platform includes platform capabilities that you can use to build and deploy a more interactive
and engaging shopping experience for customers. NetSuite 2020.1 includes the following enhancements:
For information on how to set up different types of domains, see the help topic Set Up Domains for Web
Stores.
If your organization requires a different type of certificate, you can upload a manual certificate. To
purchase a manual SSL certificate from a Certificate Authority (CA) of your choice, you must provide them
with a Certificate Signing Request (CSR) to verify your company’s identity. Prior to 2019.2, you would use
OpenSSL outside of NetSuite to generate the Certificate Signing Request (CSR). From 2019.2 onwards,
you must download the CSR file from the Domain Setup form before you submit it to your CA.
Warning: It is mandatory to download the CSR file from the Domain Setup form. If you obtain
an SSL certificate using any other CSR, the certificate cannot be used to secure your NetSuite
domain.
For information on the different types of certificates, see the help topic Automatic and Manual
Certificates.
For information on how to set up different types of domains, see the help topic Set Up Domains for Web
Stores.
■ 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
Redirect URL domains can be secured using automatic certificates, making them free and easy to
secure. For more information on automatic certificates, see Obtain SSL Certificates for Domains
Automatically.
■ 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:
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 the help topic Commerce Web Site Types.
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.
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 Import.
■ 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 the help topic Item Collection
Import.
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 the help topic Web Store Orders
Workbook.
For more information on elevated permissions, see the help topic Set Execute as Role Permissions for .ss
and .ssp Files (SuiteScript 1.0) or Set Execute as Role Permissions for .ss and .ssp Files (SuiteScript 2.1). For
a list of supported records, see the help topic Records that Support Execute as Role Permissions.
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<accountID>.<service>.netsuite.com, where <accountID> is a variable that
represents your NetSuite account ID, and <service> is a variable representing a specific NetSuite service.
As of 2020.1, automatic redirection has been set up so that all links in online forms and email templates
redirect to your account-specific domain. For example, there may be a data center-specific URL in the
Redirect to URL field on the Set Up Workflow tab of an online form. When a user submits the form,
NetSuite automatically redirects them to your account-specific domain.
As part of this change, the nsvirtual domain has been deprecated. The nsvirtual domain was used in
marketing template and campaign links to point to NetSuite domains. As of 2020.1, the nsvirtual.com
domain has been replaced by the <account_id>.customer.netsuite.com domain.
You should replace the data center-specific links in your account with account-specific domain links. For
more information, see the help topic How to Transition from Data Center-Specific Domains. It may take
some time for you to plan and schedule replacing the data center-specific links in your online forms.
During this time period, the automatic redirection will smooth your transition to account-specific domains.
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.
For more information on using Personalized Catalog views, see the help topic Personalized Catalog Views.
For more information on using Customer Segment Assignment, see the help topic Commerce Category
Customer Segment Assignment.
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.
For more information, see the help topic Commerce Category Multi-Language Support.
To enable CDN caching for your hosted web page, visit the Domain record and check the Use CDN Cache
box. For more information, see the help topic Enable CDN Caching.
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 back end performance improvements, a payment preview feature to improve
performance at the point of sale, and new Application Performance Management (APM) sensors.
Traditional payment processing creates a transaction record and waits to confirm that the payment
Result has changed from Pending to Accept or Reject. If accepted, the transaction record might
also trigger scripts and work flows for associated tasks. Each step in this process can lead to delays in
completing a transaction and printing the receipt.
Preview processing creates a Payment Result Preview (PRP) record in addition to the transaction record.
The preview receives and posts the Accept or Reject status to SCIS from the payment partner without
going through the Pending step. The record uses fewer fields than a transaction record, so it is quicker to
update. It also saves time because there are no scripts or work flows to execute prior to confirming the
payment. See the help topic Payment Result Preview Processing.
No configuration work to implement the process is needed from your administrator. Instead, your
payment partner must set up their processing to use the new record. If a payment partner is not
configured for PRP, then payment confirmation is performed using the transaction record only.
■ 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.
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 with 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.
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 Marketplace
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 the help topic
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
Marketplace Availability.
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 and Built for NetSuite (BFN) bundles created by using SuiteBundler.
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 SuiteApp Marketplace is available by clicking the new SuiteApps tab on the navigation menu bar.
You can also access the SuiteApp Marketplace by going 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.
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 SuiteApps 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 Marketplace.
■ 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 Marketplace.
■ 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.
Your SuiteApps become available to users for installation in the SuiteApps Marketplace when they meet
the following requirements:
■ SDF SuiteApps must have an application ID in the 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
Marketplace Availability.
■ Bundles must have a primary bundle ID in the 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 bundles in the SuiteApp Marketplace, see the help topic Distributing Bundles Through the
SuiteApp Marketplace.
Although bundles are listed in the SuiteApp Marketplace, less Additional Information is available on the
SuiteApp details page for bundles than for SDF SuiteApps. To find more information for a bundle, go to
the Bundle Details page by clicking View SuiteApp on the SuiteApp details page. Additionally, to install
bundles, you must go to the Bundle Details page. For more information, see the help topic Installing a
Bundle.
For more information about distributing bundles, see the help topic Distributing Bundles Through the
SuiteApp Marketplace.
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 information about using the Bundle Builder to bundle SuiteScript objects, see the help topic Objects
Available in Customization Bundles.
Expense Sublist on Expense You can include workflows on the Expenses sublist for expense report record
Report in bundles. For more information about the Expenses sublist, see Support for
Expenses Sublists in Workflows.
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.
SuiteBuilder - Customization
NetSuite 2020.1 includes the following enhancements to SuiteBuilder features:
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.
■ Comply with local requirements, such as those in Latin America (for example, demonstrations and
goods for repair) or JAPAC (for example, adjustment invoices).
■ Comply with expectations of specific business verticals, such as not–for–profit (for example, donations
and grants).
■ Create solutions designed for specific types of customers.
SuiteCloud Development Framework (SDF) supports sales and purchase custom transaction types when
defining custom transaction objects. For more information, see Sales and Purchase Custom Transactions
Support.
For more information, see the help topic Sales and Purchase Functionality Available in Custom
Transactions.
For more information, see the help topic Creating Sales and Purchase Custom Transaction Instances.
For more information about creating and using sales and purchase custom transaction types, see the
help topic Sales and Purchase Transaction Types Overview.
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.
System Notes v2 groups audit data by action as shown in the following example.
For more information, see the help topic System Notes v2 Overview.
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 domains 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 <accountID>.app.netsuite.com, where <accountID> is a variable
representing your account ID.
Note: You should update all links in custom fields and custom center links to use your account–
specific domain URL.
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.
■ Armenian
■ Bengali
■ Gujarati
■ Hebrew
■ Hindi
■ Kannada
■ Marathi
■ Tamil
■ Telugu
For more information about languages available for advanced printing, see the help topic Languages for
Printed Forms that Use Advanced Templates.
For more information, see the help topic Third-Party Products Used in Advanced Printing.
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
This release note was updated June 3, 2020.
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:
For more information about accessing workbooks and datasets, see the help topic Accessing and Sharing
Workbooks and Datasets.
For more information about the Analytics Administrator permission, see the help topic The Analytics
Administrator Permission.
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 have the Analytics Administrator
permission, the Analytics Home Page displays all workbooks and datasets in your account.
For more information, see the help topic Analytics Home Page.
For more information, see the help topic Custom Workbooks and Datasets.
For more information, see New Table View Tab in SuiteAnalytics Workbook.
For more information, see the help topic Custom Workbooks and Datasets.
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 Workbook Component Filters.
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.
For more information about the Table View, see the help topic Workbook Table Views.
In 2020.1, you can now use the Analytics Browser to see an overview of all record types and fields
available for SuiteAnalytics Workbook, SuiteScript, SuiteTalk REST web services, and SuiteAnalytics
Connect. The Analytics Browser provides the information that you need to query the analytics data
source. Within the browser, record types are listed in alphabetical order. You can find the record types by
name or ID. The following information is available in the browser:
■ Record type - Use to find the name and the ID for that record type, a table with all available fields, and
an additional table with joined records, if applicable.
■ Field - Use to find the name and the ID for that field, the type of field, and whether the field is
supported for SuiteAnalytics Workbook, SuiteScript, SuiteTalk REST web services, and SuiteAnalytics
Connect.
■ Joined record type and foreign key fields - Use to find the ID for that joined record type, the ID
of the foreign key fields, and whether they are supported for SuiteAnalytics Workbook, SuiteScript,
SuiteTalk REST web services, and SuiteAnalytics Connect.
Note: The browser provides a static, global list of all analytics data. However, access to record
types and fields depends on the features enabled in your NetSuite account and the permissions
assigned to your role. For information about permissions, you can download a spreadsheet that
lists the usage of most NetSuite permissions. To access this spreadsheet, go to Permissions
Documentation.
You can use the Analytics Browser online, or you can download it.
For more information about the analytics data source, see the help topic Analytics Data Source Overview.
For more information about working with the browser, see the help topic Working with the Analytics
Browser.
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.
■ Item Collections
■ Subscription Line Revisions
■ Unlocked Time Periods
Note: As of 2020.1 the existing Currency Rates table is used for backward compatibility only.
If you want to retrieve data about currency exchange rates, use the newly exposed Currency
Exchange Rates instead of the existing Currency Rates table.
For more information about how to work with the Connect Browser, see the help topic Working with the
Connect Browser.
As of 2020.1, you can execute SuiteQL queries through the N/query module in SuiteScript and SuiteTalk
REST web services. For more information, see the following topics:
For more information about SuiteQL in general, see the help topic SuiteQL.
To manage this preference, you can check the Disable HTML in Search Formula (Text) box at Setup >
Company > General Preferences.
Note: A new restriction will be enforced in an upcoming release to prevent <script> tags from
being rendered in saved search results. We encourage you to avoid using <script> tags because
saved search results cannot display script output for security reasons after the restriction is
enforced.
For more information, see the help topic Restricting HTML for Search Formulas.
CSV Import
This release note was updated April 15, 2020.
NetSuite 2020.1 includes the following enhancements to CSV Import:
Inbound The inbound shipment record tracks such key shipment information as expected delivery dates,
Shipment 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 the help topic Inventory Details on an Inbound Shipment.
Item Collection The Item Collection record is a way of grouping catalog items. Item collections can be static or
dynamic. You can create and update static item collections using the CSV Import Assistant.
To import item collection data, in the Import Assistant, set the Import Type to Accounting, and
the Record Type to Item Collection.
For more information, see the help topic Item Collection Import.
Item Collection The Item Collection Item Map record captures which items are part of which static item collection.
Item Map You can create Item Collection Item Map records using the CSV Import Assistant.
The Item Collection record and the Item Collection-Item Map record work together to define the
items in an item collection.
To import item collection item map data, in the Import Assistant, set the Import Type to
Accounting, and the Record Type to Item Collection Item Map.
For more information, see the help topic Item Collection Item Map Import.
Item Process The item process family is an item category that uses properties or attributes to identify and
Family group similar items in your warehouse.
The item process family record is available when the Warehouse Management feature is enabled
at Setup > Company > Enable Features, on the Items & Inventory subtab.
To import item process family data, in the Import Assistant, set the Import Type to Supply
Chain, and the Record Type to Item Process Family.
For more information, see the help topic Item Process Family Import.
Item Process The item process group is an item category that groups similar items in your warehouse using a
Group more refined property or attribute than the item process family.
The item process group record is available when the Warehouse Management feature is enabled
at Setup > Company > Enable Features, on the Items & Inventory subtab.
To import item process group data, in the Import Assistant, set the Import Type to Supply
Chain, and the Record Type to Item Process Group.
For more information, see the help topic Item Process Group Import.
Pick Strategy The pick strategy record contains filters that can be applied to the backend process that
determines the recommended bin for items in a pick task. When a wave transaction is saved
or released, the backend process uses any available pick strategies to sort bins based on pick
strategy filters
The pick strategy record is available when the Warehouse Management feature is enabled at
Setup > Company > Enable Features, on the Items & Inventory subtab.
To import pick strategy data, in the Import Assistant, set the Import Type to Supply Chain, and
the Record Type to Pick Strategy.
For more information, see the help topic Pick Strategy Import.
Zone Zone records specify areas in your warehouse where you putaway, store, or pick items. In
NetSuite WMS, you can create zone records and associate a warehouse location with each zone.
The zone record is available when the Warehouse Management feature is enabled at Setup >
Company > Enable Features, on the Items & Inventory subtab.
To import zone data, in the Import Assistant, set the Import Type to Supply Chain, and the
Record Type to Zone.
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.
Additionally, the following sublists and subrecords are available for sales and purchase custom
transactions:
Shipping Sales custom transactions with the option of enabling item Shipping
line shipping and shipping to custom addresses.
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.
■ External ID
■ Addition To
■ Description
■ Heading
■ Locale
■ Name
■ Page Banner
■ Page Title
■ Thumbnail Image
For more information on importing translations for Commerce Categories, see the help topic Commerce
Category Translation Sublist.
For more information about the effective dating feature for employee information, see the help topic
Effective Dating for Employee Information.
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 the help topic
Import of Employee Record Changes with Effective Dating.
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
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.
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 addition, 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
This release note was updated May 20, 2020.
Refer to the following sections for details on SuiteScript updates for NetSuite 2020.1:
For more information about SuiteQL API in this release, see the following sections:
■ 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:
id: 'custworkbook237'
});
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.
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.
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. The minimum page size is 5 results per page, and
the maximum page size is 1000 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:
In the mapped query results, friendlyname appears as an alias for the entityid field.
SuiteScript 2.1 is the latest minor version of SuiteScript, and it is backward compatible with SuiteScript
2.0. This version is based on ES.Next, which is part of the ECMAScript specification, and it includes new
language capabilities and functionality. It supports all server script types (such as user event scripts,
scheduled scripts, and Suitelets). SuiteScript 2.1 and future versions of SuiteScript will also support
features planned for future editions of the ECMAScript specification using ES.Next. For more information,
see the help topic SuiteScript 2.1.
For more information about SuiteScript 2.1 in this release, see the following sections:
■ 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.
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:
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. For more information, see the help topic Staying
Informed on SuiteScript 2.1.
Note: This preference applies only to server scripts. It does not apply to client scripts in your
account.
You can set this option at Setup > Company > Preferences > General Preferences:
When the transition period ends, this option will be removed, and all 2.x scripts will run as SuiteScript 2.1
scripts.
For more information, see the help topic Enabling SuiteScript 2.1 at the Account Level.
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
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:
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.executionContext property and
the runtime.ContextType enum. You can use these elements 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 help topics:
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.
■ 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.
SuiteScript 2.0 Client Complete the following steps to add localization context filtering to client scripts:
Script Type
1. Use the localizationContextEnter and localizationContextExit entry points in your
script.
2. Define the localization context on the Context Filtering tab on the script
deployment record. For more information, see the help topic 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 the help topic 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.
Additionally, the following sublists and subrecords are available for sales and purchase custom
transactions:
Shipping Sales custom transactions with the option of enabling item Shipping
line shipping and shipping to custom addresses.
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.
For more information, see Map/Reduce Concurrency Limit Adjusts to Target Account Limit.
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:
SuiteScript 1.0 nlapiGetFieldValue('currency') The text value stored in the field. For
example, “USD.”
nlapiGetFieldText('currency') null
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.”
SuiteScript 1.0 nlapiGetFieldValue('currency') The internal ID of the value stored in the field.
For example, 1.
SuiteScript 2.0 record.getValue({fieldId: 'currency'}) The internal ID of the value stored in the field.
For example, 1.
record.getText({ fieldId: 'currency'}) The text value stored in the field. For example,
“USD.”
record.getValue({ fieldId: 'currencyvalue'}) The internal ID of the value stored in the field.
For example, 1. This field ID will be deprecated
in 2020.2.
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:
records. For this reason, you must ensure that all RESTlets in a bundle or SuiteApp are updated to use
TBA or OAuth 2.0.
For information about setting up TBA for RESTlets, see the help topic Setting up Token-based
Authentication for a RESTlet integration.
For information about using OAuth 2.0 for RESTlets, see the help topic Using OAuth 2.0 for RESTlet
Authentication.
Project Work Breakdown getAmountsFields Get Amounts Fields Gets the contents of all amounts
Structure Macros field names.
Project Work Breakdown setAmountFieldValue Set Amount Field Sets the value of the amount field.
Structure Macros Value
Project Work Breakdown getAmountFieldValue Get Amount Field Gets the value of the amount field.
Structure Macros Value
Project Work Breakdown getUnmatchedActuals Get Unmatched Gets the unmatched actuals.
Structure Macros Actuals
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.
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 The item process family record is available when the Warehouse Management feature is
enabled.
The item process family record is scriptable in both client and server SuiteScript.
Item Process Group The item process group record is available when the Warehouse Management feature is
enabled.
The item process group record is scriptable in both client and server SuiteScript.
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 The order type is a category that associates attributes to sales and transfer orders. In
NetSuite WMS, you can create an accounting list of multiple order types and associate each
outbound sales or transfer order with one order type.
The order type record is available when the Warehouse Management feature is enabled.
The order type record is scriptable in both client and server SuiteScript.
Pick Strategy The pick strategy record is available when the Warehouse Management feature is enabled.
The pick strategy record is scriptable in both client and server SuiteScript.
Pick Task The pick task record is available when the Warehouse Management feature is enabled.
The pick task record is scriptable in both client and server SuiteScript.
The pick task record is partially scriptable — it can be updated, deleted, and searched using
SuiteScript. Pick tasks cannot be created or copied using SuiteScript.
Project Work Breakdown To use the project work breakdown structure record, you must enable the Job Costing and
Structure 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.
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.
The script user must have the required permission level for the Vendor Prepayment
Application permission.
Wave The wave transaction is available when the Warehouse Management feature is enabled.
The wave transaction is partially scriptable — it can be updated, deleted, and searched
using SuiteScript. Waves cannot be created or copied using SuiteScript.
Zone The zone record is available when the Warehouse Management feature is enabled.
You can find links to the SuiteScript Records Browser in several places, including the following:
■ The help topic titled Working with the SuiteScript Records Browser.
■ The reference page for each supported record in the SuiteScript Records Guide. The SuiteScript
Records Guide is available in the NetSuite Help Center and can be downloaded as a PDF from the User
Guides topic.
To use CRUD operations on records, you can use a URL similar to the following:
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.
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.
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.
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.
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.
■ 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.
For more information about working with the browser, see the help topic The REST API Browser.
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.
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 the help topic Executing Record Actions.
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 the help topic
Transforming Records.
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.
For more information about SuiteQL in general, see the help topic SuiteQL.
For more information about executing SuiteQL queries through REST web services, see the help topic
Executing SuiteQL Queries Through REST Web Services.
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 Overview.
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:
For more information, see the help topic Working with SuiteAnalytics Workbooks in REST Web Services.
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.
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.
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.
Additionally, the following sublists and subrecords are available for sales and purchase custom
transactions:
Shipping Sales custom transactions with the option of enabling item Shipping
line shipping and shipping to custom addresses.
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.
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.
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:
For more information about governance, see Web Services and RESTlet Concurrency Governance.
■ 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.
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.
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.
You must take this change of field type into consideration when upgrading to the 2020.1 endpoint to
avoid any issues with your integration.
This change will not affect web services integrations that use 2020.1 and earlier endpoints. You can
continue to use request-level credentials in endpoints 2020.1 and earlier. However, you are encouraged
to use TBA for all of your integrations. TBA is available in all supported endpoints. If you are using
an earlier endpoint that does not support TBA, you are advised to upgrade to one of the supported
endpoints. For information about supported endpoints, see the help topic Support for Existing WSDL
Versions.
You must ensure that SOAP web services integrations created with 2020.2 and later SOAP web services
endpoints use TBA. Authentication through user credentials will continue to be supported in integrations
that use SOAP web services 2020.1 and earlier endpoints, although it is not recommended. For more
information, see the help topic Token-based Authentication and Web Services.
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.
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.
SuiteCloud SDK
This release note was updated May 20, 2020.
SuiteCloud Software Development Kit (SuiteCloud SDK) is a set of tools you can use to develop SDF
projects. These tools are the SuiteCloud IDE plug-ins, and SuiteCloud CLIs.
SuiteCloud SDK for 2020.1 includes the following features and updates:
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.
The CLI for Java is used with your own integrated development environment (IDE) to create SuiteCloud
projects, including 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 plug-in. 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.
Important: When your account is upgraded to 2020.1, your IDE plug-in for WebStorm is not
updated automatically to the 2020.1 version. After your account upgrade, you must manually
update the IDE plug-in for WebStorm.
Important: When your account is upgraded to 2020.1, your IDE plug-in for Eclipse is not
updated automatically to the 2020.1 version. After your account upgrade, you must manually
update the IDE plug-in for Eclipse.
SuiteCloud Command Line Interface for Node.js (SuiteCloud CLI for Node.js) 2020.1 is now available for
download. To install it, see the help topic Installing CLI for Node.js.
SuiteCloud CLI for Node.js is a tool that you can use with your own integrated development environment
(IDE) to develop SDF projects. This CLI is optimized for the end-user experience. It is interactive and
guides you through all the steps of the communication between your local project and your account.
SuiteCloud CLI for Node.js is an open-source project published in GitHub. To see its code and get the
latest changes, see SuiteCloud CLI for Node.js GitHub Repository.
CLI for Node.js offers integration with unit testing through Jest. When creating a SuiteCloud project, you
can choose to include unit testing with Jest.
Warning: Unit testing with Jest for CLI for Node.js is a beta feature. The contents of this feature
are preliminary and may be changed or discontinued without prior notice. Any changes may
impact the feature’s operation with the NetSuite application. NetSuite warranties and product
service levels shall not apply to the feature or the impact of the feature on other portions of the
NetSuite application. NetSuite may review and monitor the performance and use of this feature.
The documentation for this feature is also considered a beta version and its subject to revision.
The following commands are available in CLI for Node.js and CLI for Java:
■ project:adddependencies
■ project:create
■ project:deploy
■ file:import
■ object:import
■ file:list
■ object:list
■ object:update
■ project:validate
■ suitecommerce:localserver
■ config:proxy
■ account:setup
Before you can start working with all the available commands, you need to create a project and set up
your account. For more information, see the help topic Setting Up CLI for Node.js.
As of 2020.1, you can use browser-based authentication to issue TBA tokens for your roles from the
following SuiteCloud SDK tools:
Authentication IDs (authIDs) are the custom names you give to a specific account-role combination. As of
2020.1, you can use authIDs to identify roles using the authid option in CLI for Java and CLI for Node.js.
Important: You should use the authid option to interact with your account. Authentication IDs
provide more security and customization for your accounts and roles.
■ authenticate— This command grants authorization for SuiteCloud SDK to access NetSuite with an
account-role combination.
For more information about each tool, see the following tool-based help topics:
■ For IDE plug-in for WebStorm, see the help topic Importing Custom NetSuite Objects into an SDF
Project with SuiteCloud IDE Plug-in for WebStorm.
■ For CLI for Node.js, see the help topic object:import.
■ For CLI for Java, see the help topic importobjects.
■ For IDE plug-in for Eclipse, see the help topic Importing Account Components into an SDF Project with
SuiteCloud IDE Plug-in for Eclipse.
For more information, see the help topic Overwriting Custom SuiteCloud Objects with Custom NetSuite
Objects in SuiteCloud IDE Plug-in for WebStorm.
By default, SDF stops deployment when an account customization project contains account-specific
values. However, you can choose to display a warning and continue with the process of either validating
or deploying the account customization project.
For more information on how to manage account-specific values in SuiteCloud IDE plug-in for WebStorm,
see the help topic Changing Project Settings in SuiteCloud IDE Plug-in for WebStorm.
For more information about account-specific values, see the help topic Account-Specific Values.
again in SuiteCloud IDE Plug-in for Webstorm or run the authenticate command in SuiteCloud CLI for
Java.
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.
Localization context can be configured in usereventscript and clientscript custom objects by specifying
locales in the localizationcontext field. For usereventscript objects, you can specify all locales using the
alllocalizationcontexts boolean field.
If a script has localization context filtering set up in custom objects in an SDF project, that filtering works
in all target accounts where the SDF project is deployed. The context filtering also works in accounts when
an SDF SuiteApp is installed from the SuiteApp Marketplace.
For more information about localization context filtering, see Introducing Localization Context – User
Event and Client Script Association.
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.
<actionBar>
<customButtons>
<customButton>
<label>Invoice Client</label>
<function>invoiceClient</function>
</customButton>
<customButton>
<label>Generate Report</label>
<function>generateReport</function>
</customButton>
</customButtons>
</actionBar>
Each custom button runs SuiteScript from the Custom Code tab, which you can define in SDF by
specifying the customCode element.
Important: Only SuiteScript 2.0 scripts are supported for the scriptFile value in customCode.
The following example defines the Custom Code tab by specifying the customCode element, which
contains the scriptFile field that references the client SuiteScript file invoice.js. The invoice.js file can
contain functions used by custom buttons.
<customCode>
<scriptFile>[/SuiteScript/invoice.js]</scriptFile>
</customCode>
The following custom objects support the customCode and actionBar elements:
■ addressForm
■ entryForm
■ transactionForm
For more information about defining the customCode and actionBar elements, see the help topic Custom
Code Tab and Actions Tab in XML Definitions.
For information about defining customtransactiontype objects, see the help topic Custom Transaction
Record Types as XML Definitions.
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
STANDARDDEPOSIT Deposit
STANDARDOPPORTUNITY Opportunity
STANDARDREQUISITION Requisition
Script ID of Transaction Form Type Record Type Associated with Transaction Form
STANDARDSERVICEINVOICE Invoice
STANDARDVENDORBILL Bill
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:
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.
Note: Some transaction forms have feature requirements. You can use SDF project validation
to determine if a feature is required to use a form. For information, see the help topic SDF Project
Validation.
For more information about custom transaction form objects, see the following topics:
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 the help topic Translatable
Fields on Custom Objects.
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:
<workflow scriptid="customworkflow1">
<name>My custom workflow</name>
<recordtypes>LEAD</recordtypes>
...
<workflowstates>
...
<workflowstate scriptid="workflowstate_approvalpending">
<name>State 2: Pending Approval</name>
...
<workflowactions triggertype="BEFORELOAD">
<addbuttonaction scriptid="workflowaction_approvebutton">
...
<label translate="T">[scriptid=custcollection_approvals.approve]</label>
...
</addbuttonaction>
</workflowactions>
</workflowstate>
...
</workflowstates>
...
</workflow>
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 the 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.
■ Setting a Concurrency Limit on your Map/Reduce Script Deployment in the SDF documentation.
■ scriptdeployment in the SDF XML reference.
■ mapreducescript in the SDF XML reference
■ Concurrency Limit in the SuiteScript documentation.
You can customize the plug-in in SDF by defining ficonnectivityplugin objects. For information about the
available fields, see the help topic 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 an ficonnectivityplugin custom object named “Financial Connectivity Profile
1” that specifies the SuiteScript file connectionprofile.js:
<ficonnectivityplugin scriptid="customscript1">
<description></description>
<isinactive>F</isinactive>
<loglevel>DEBUG</loglevel>
<name>Financial Connectivity Profile 1</name>
<notifyadmins>F</notifyadmins>
<notifyemails></notifyemails>
<notifyowner>T</notifyowner>
<notifyuser>F</notifyuser>
<runasrole></runasrole>
<scriptfile>[/SuiteApps/com.example.yourapp/src/parser/connectionprofile.js]</scriptfile>
<status>TESTING</status>
</ficonnectivityplugin>
For more information about defining ficonnectivityplugin objects, see the help topic Financial Institution
Connectivity Plug-ins as XML Definitions.
You can customize the plug-in by defining bankstatementparserplugin objects in your SDF project. For
information about the available fields, see the help topic bankstatementparserplugin.
Each bankstatementparserplugin custom object requires a scriptfile field reference to a SuiteScript file
that implements interface functions. For more information, see the help topic Creating a Bank Statement
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:
<bankstatementparserplugin scriptid="customscript2">
<description></description>
<isinactive>F</isinactive>
<loglevel>DEBUG</loglevel>
<name>Statement Parser 1</name>
<notifyadmins>F</notifyadmins>
<notifyemails></notifyemails>
<notifyowner>T</notifyowner>
<notifyuser>F</notifyuser>
<runasrole></runasrole>
<scriptfile>[/SuiteApps/com.example.yourapp/src/parser/statementparser1.js]</scriptfile>
<status>TESTING</status>
</bankstatementparserplugin>
For more information about defining bankstatementparserplugin objects, see the help topic Bank
Statement Parser Plug-ins as XML Definitions.
clientscript localizationcontext multi-select list You can filter your scripts to run based on the
localization context of your users. For more
information, see Localization Context Filtering
Support.
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 Localization Context Filtering
Support..
workflow clienttriggerfieldssublist single-select list You can include workflows on the Expenses sublist
for expense report records by specifying the field
sublist single-select list value EXPENSEREPORT:EXPENSE.
■ Accounting SuiteApps
■ Administration SuiteApps
■ Banking SuiteApps
■ SuitePeople SuiteApps
■ Order Management SuiteApps
■ Inventory Management SuiteApps
■ Localization SuiteApps
■ Manufacturing SuiteApps
■ Projects SuiteApps
■ Integration SuiteApps
■ Non-Profit SuiteApps
■ Food and Beverage SuiteApps
■ Wholesale Distribution SuiteApps
■ Vendors, Purchasing, and Receiving SuiteApps
■ Taxation SuiteApps
Accounting SuiteApps
This release note was updated August 19, 2020.
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:
To add the FAM Diagnostics, go to Home Dashboard, and then click Personalize > SuiteApps > FAM
Diagnostics.
■ 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.
SuiteApprovals Enhancements
SuiteApprovals version 5.00.0 includes the following enhancements:
■ Extension to Requisition Records – You can now create approval rules for requisition records. You
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
For more information, see the help topic SuiteApprovals Version 5.01.00.
With Sequential Liability version 1.02, you can now do the following:
■ View Sequential Liability tiles on the dashboard for the following KPIs: payable balance, receivable
balance, total receipts to date, and total payments to date for a project or subsidiary.
■ View A/P and A/R details on the project record.
For more information on this SuiteApp, see the help topic Sequential Liability SuiteApp.
Sequential Liability SuiteApp version 1.01 provides a unified view of accounts payable, accounts
receivable, projects, and cash balances while enabling financial controllers to pay vendors confidently.
This SuiteApp helps effectively manage cash flow for transactions where payment to vendors is linked to
receipt from customers.
Using this SuiteApp, you can have an overall view of your subsidiary’s project-related payable and
receivable transactions. You can also view more details about the payable and receivable transactions for
a specific project.
For more information on this SuiteApp, see the help topic Sequential Liability SuiteApp.
■ Define accounting configurations using sales accounts, sales returns accounts, subsidiaries,
accounting books, and transaction types.
■ Create and edit sales returns account mapping record if you have the Custom Records Entries
permission enabled in your account.
■ Import sales and sales return transactions through CSV or Web Services.
■ Map memo fields and segments to sales return accounts for analytics.
For more information, see the help topic Sales Return Accounting.
Important: Sales Return Accounting SuiteApp version 1.00.0 is released as a beta feature. For
more information about this SuiteApp’s general availability, see Sales Return Accounting Now
Generally Available.
■ Track sales returns separately in the mapped sales returns account to meet retail accounting
requirements.
■ Define accounting configurations using sales accounts, sales returns accounts, subsidiaries,
accounting books, and transaction types.
■ Map memo fields and segments to sales return accounts for analytics.
■ Import sales and sales return transactions through CSV or Web Services.
You can install this SuiteApp for any industry verticals with availability on NetSuite OneWorld accounts.
This SuiteApp is designed to eventually replace the Sales Returns SuiteSolution.
For more information, see the help topic Sales Return Accounting.
Administration SuiteApps
Following are the 2020.1 administration enhancements to SuiteApps:
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
This release note was updated June 24, 2020.
Previously, with the Bank Connectivity SuiteApp, connecting to your financial institutions using SFTP
(Secure File Transfer Protocol) connectivity requires manual trigger and import of bank statement files
into NetSuite.
Auto Bank Statement Import (ABSI) SuiteApp introduces an automated way of importing bank statement
files into NetSuite daily.
Note: The new ABSI SuiteApp is replacing the Bank Connectivity SuiteApp, which is targeted for
deprecation in April 2021.
The ABSI SuiteApp uses the latest version of the SFTP Connectivity Plug-in to automatically retrieve and
upload bank and credit card statement files into NetSuite daily. This added feature enables finance users
to focus more on reconciling the bank and credit card transactions between NetSuite and your financial
institutions.
■ Securely connect to your financial institutions through the enhanced SFTP connectivity configuration.
■ Eliminate manual process of triggering your SFTP connection to fetch the statement files from your
financial institutions.
For more information, see the help topic Auto Bank Statement Import SuiteApp.
The Bank Feeds SuiteApp automates the transfer of your bank data directly from your financial institution
accounts into NetSuite. The SuiteApp uses the latest financial institution connectivity plug-in and a third-
party data aggregation service to access online financial institution websites.
When the SuiteApp is installed, a financial institution record (Bank Feeds) and format profile record (Link
Bank Accounts) are automatically provisioned to your NetSuite account. You can access these records
from the Setup Manager (Setup > Setup Manager > Accounting > Financial Institution > List). The format
profile is populated with content that cannot be changed, including a plug-in (Bank Feeds Connectivity)
and transaction parser (Bank Feeds Parser). These SuiteApp components enable NetSuite to connect
directly to your financial institutions to retrieve bank data.
■ Connect NetSuite directly to multiple financial institutions that operate in the U.S. and Canada
■ Receive cleared and processed bank transactions daily from your financial institution accounts
■ Automate the import of bank transactions and account balances daily from your financial institution
accounts into your NetSuite account
■ Perform manual import of real-time bank transactions and account balances into NetSuite
For more information, see the help topic Bank Feeds SuiteApp.
■ CAMT.053 Parser - The new version of Bank Statement Parsers SuiteApp includes a parser plug-in
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 <STMTTRNRS> 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
This release note was updated July 8, 2020.
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.
Version: 1.01.0
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.
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 The Due Date Basis field automatically changes
according to plan type. For onboarding plans,
On the Days column, you only need it displays Hire Date. For offboarding plans, it
to enter the number of days. displays Termination Date.
Example: Assignee must order a Enter data based on when the task must be
computer 14 days before the hire finished.
date.
■ Before the due date basis – Enter a minus
■ Checklist Type: Onboarding sign (-) and the number of days.
■ Task Name: Order a computer ■ On the same day as due date basis – Enter
■ Calculate Due Date From: zero (0)
Employee Start Date - ■ After the due date basis – Enter the number
■ Days from Due Date Basis: 14 of days.
■ No defined due date – 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.
Header Coordinator Plan Status Shows the status of the entire onboarding or
Section offboarding plan.
Tasks Subtab Coordinator or Employee Task Status Shows the status of the specific onboarding or
offboarding task.
For more information, see the help topic Working with Plans.
A new Dunning Notifications for Group Invoices box is added to the Dunning Letters subtab on the
Customer form. By default, this box is checked and individual dunning notifications for grouped invoices
are disabled. If you want to send individual dunning notifications for grouped invoices, clear the Dunning
Notification for Group Invoice box.
Note: The individual dunning notifications are disabled only in accounts that have the Invoice
Grouping feature and invoice level dunning enabled.
For more information on sending dunning letter notifications, see the help topic Sending and Printing
Dunning Letters.
■ Ownership of 61 native templates that were previously managed by the Electronic Bank Payments
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.
For more information on changes to the templates, see the help topic Payment File Templates Ownership
Transfer to Localization SuiteApps.
If you enable the Installment feature in your account, the Installment Reference Number column
appears on the Invoice Payment File when the installment bills are retrieved.
For more information on Installment Payments Support, see the help topic Installment Payment Support.
■ Grid Purchase Order and Sales Order Transactions for Inventory Items
■ Preferred Grid Template for Inventory Matrix Items
Grid Order Management SuiteApp version 6.01.4 includes the following enhancements:
■ Grid Purchase Order and Sales Order Transactions for Assembly Items
■ Preferred Grid Template for Assembly Matrix Items
Grid Order Management SuiteApp version 6.02.0 includes the following enhancements:
Grid Purchase Order and Sales Order Transactions for Inventory Items
When you import grid purchase order and sales order transactions for inventory items, both the Grid
Item ID and Grid Template fields are no longer required. The SuiteApp autogenerates a grid item ID
for each item in the transaction. The system also assigns the grid template based on the current grid
template assignment.
To learn more about this feature, see the help topic Importing Grid Orders.
To learn more about this feature, see the help topic Assigning a Preferred Grid Template.
■ Cash sale
■ Invoice
■ Packing slip
■ Picking ticket
■ Quote
To learn more about this feature, see the help topic Customizing the Grid Print Templates.
Grid Purchase Order and Sales Order Transactions for Assembly Items
When you import grid purchase order and sales order transactions for assembly items, both the Grid
Item ID and Grid Template fields are no longer required. The SuiteApp autogenerates a grid item ID
for each item in the transaction. The system also assigns the grid template based on the current grid
template assignment.
To learn more about this feature, see the help topic Importing Grid Orders.
To learn more about this feature, see the help topic Assigning a Preferred Grid Template.
For more information on this SuiteApp, see the help topic Grid Order Management.
■ Invoices
■ Packing slips
■ Picking tickets
■ Purchase orders
■ Sales orders
■ Standard PDF layout – The updated grid print templates generate a PDF layout optimized for portrait
page orientation.
■ Headers and footers – The header and footer formats remain consistent across all supported
transactions. The header includes company and transaction details, while the footer displays the bar
code and page number.
■ Number and currency formats – The updated grid print templates follow user preferences. You can
personalize how numbers and currencies appear in the printout.
■ Grid table elements - Matrix items with grid templates appear on the grid tables. The grid table
displays elements such as item name, column and row attributes, and item quantities. Each grid
table has a maximum of six column attributes. If the column attributes in the grid template exceed
this number, the attributes overflow to the next grid table. All grid tables show the calculated total
quantity, but only single grid tables display aggregate item quantities for each column attribute.
■ Item list elements - Following the grid table, nongrid items appear on the item list. The item list
includes all items that do not belong to any grid table, including nonmatrix items, matrix items without
grid templates, and payment items. The item list displays elements, such as the item quantities,
names, and calculated total quantity.
■ Invoice, Purchase Order, and Sales Order printout fields - Invoice, purchase order, and sales order
printouts display item rates, amounts, and the calculated total amount on both the grid table and item
list. The last page of the document shows a summary of details, including the tax total and calculated
sum of discounts, markups, shipping costs, and gift certificates. The summary also displays the grand
total quantity and grand total amount.
■ Packing Slip printout fields - Packing slip printouts show ordered, backordered, and shipped
quantities. The last page of the document also contains the customer return form.
To learn more about this feature, see the help topic Grid Order Management.
■ Payment PostBack
■ Web Store
■ Web Application
This change does not affect existing SuiteApp installations. When existing customers get the latest
SuiteApp version, these execution contexts remain active. If you are an existing customer, you should
manually inactivate these three contexts in the following scripts:
For more information about excluding these execution contexts, Removal of Payment PostBack, Web
Store, and Web Application Execution Contexts from Grid Order Management Script Deployments,
SuiteAnswers ID 95685.
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 the help topic Performing Bulk Operations Using Mass Update.
■ 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.
■ 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.
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.
■ Chinese (Simplified)
■ Chinese (Traditional)
■ Czech
■ Danish
■ Dutch
■ English
■ Finnish
■ French
■ French (Canada)
■ German
■ Indonesian
■ Italian
■ Japanese
■ Korean
■ Norwegian
■ Portuguese (Brazil)
■ Russian
■ Spanish
■ Spanish (Latin America)
■ Swedish
■ Thai
■ Turkish
■ Vietnamese
To set the language preference, you must enable the Multi-Language feature in your account. For more
information, see the help topic Multi-Language Support.
When editing the item quantity in an existing transaction, the system does not count the previously
granted items when validating the new value entered. For example, the quantity of an item in a
transaction is 4. When you edit the quantity to 5, only the difference of 1 is counted as the requested
quantity and is checked in the inventory.
In previous versions, the system recognizes the new item quantity as the requested quantity and validates
this value, including previously granted items, in the inventory.
For more information about this SuiteApp, see the help topic Enhanced Validations and Defaulting.
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.
Inspection records are now maintained through standard record forms. Record customizations are
available during setup or inspection maintenance.
Inspection Sampling
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.
NetSuite 2020.1 restricts this data to display numbers, text, and check boxes.
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 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.
Migration
Quality Management inspection data will be migrated to 2020.1 in three stages.
The Shelf-to-Sheet Count SuiteApp includes the following components and features:
■ Shelf-to-Sheet Template - Using this custom record that comes with the SuiteApp, you can create
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
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.
■ Support for Warranty Registration Through SuiteScript and Web Service – You can now create
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.
■ You can select a new option, Do not Assign New UPC Code, in the UPC Code Assignment field on an
item record.
For more information, see the help topic Auto Assign UPC.
Important: Auto Assign UPC SuiteApp version 1.00.0 is released as a beta feature. For
information about this SuiteApp’s general availability, see Auto Assign UPC SuiteApp General
Availability and Enhancements.
The Auto Assign UPC SuiteApp enables you to automatically assign predetermined Universal Product
Codes (UPC) to specific items. This SuiteApp records the assigned UPC and keeps track of their date of
assignment and retirement. The UPC Assignment record is also linked to the item record for convenience.
The Auto Assign UPC SuiteApp is designed to eventually replace the Automatically Assign UPCs
SuiteSolution.
For more information, see the help topic Auto Assign UPC.
For more information, see the help topic Actual vs. Theoretical Variance Reports in the Help Center.
Localization SuiteApps
This release note was updated October 7, 2020.
■ ANZ Localization
■ Belgium Localization
■ China Localization Enhancements to Compliance and Reporting Requirements
■ Contra Account Sheets Now Generally Available
■ Country-Specific Reports (Beta)
■ EMEA Localization
ANZ Localization
The ANZ Localization SuiteApp provides localization features such as customized transaction fields,
records, and report templates specific to Australia and New Zealand.
■ A tax report template for generating the Taxable Payments Annual Report
■ Additional setup and rules for records and transactions specific to Australia and New Zealand
customers and users
■ Automatic updates of new localization features and enhancements for Australia and New Zealand
accounts
The ANZ Localization SuiteApp requires the Tax Reporting Framework SuiteApp to generate tax reports
and is currently only supported in the Legacy environment.
To learn more about the SuiteApp, see the help topic ANZ Localization.
Belgium Localization
The Belgium Localization SuiteApp provides the following features:
■ Provision of SuiteTax report templates – This SuiteApp works with the Tax Reporting Framework
SuiteApp by providing the following Belgium SuiteTax report templates in English, French, and Dutch:
□ Annual Client Listing Form 725
□ EC Sales List
□ Intrastat
□ Belgium VAT Report: Return Form 625
■ Provision of electronic bank payment templates – This SuiteApp works with the Electronic Bank
Payments SuiteApp by providing bank payment templates in the following formats:
□ CIRI-FBF specifications
□ SEPA Credit Transfer specifications of HSBC, ABN AMRO, and Febelfin
The China Localization SuiteApp provides important financial reports that are needed to operate in China.
These reports are updated with the following enhancements:
China Subledger Report ■ Memo field input character limit is extended to 300. Display is truncated for printing
on fixed-line forms such as the 5-line, 8-line, and 2-per-page voucher layouts.
China Cash & Bank
Journal Ledger ■ The Creator, Approver, and Poster fields now show the middle name of each
person.
China Voucher List ■ Standard ISO currency codes are used for label of foreign currency fields.
■ Thegenrally accepted term “FX” is now used for the foreign currency column English
translation.
■ Support for Accounting Context to enable printing of vouchers using China GAAP
accounts or other selected contexts is added.
China Voucher List ■ The China Voucher List page now shows the Creator, Approver, and Poster fields for
each voucher.
■ You can now change the sorting order of the vouchers before printing them. You can
sort by voucher number, date, document type, or document number.
■ You now have the option to select a voucher and print immediately from the Voucher
List search page.
■ Issues on formatting, page splitting, and content printing have been resolved.
China Voucher Printing ■ Support for Accounting Context to enable printing using China GAAP accounts is
Report added.
■ Issues on formatting, page splitting, and content printing have been resolved.
For more information, see the help topic Contra Account Sheets.
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
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.
France Localization
The France Localization SuiteApp provides features that address or comply with accounting and financial
reporting requirements or standards specific to France.
■ 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 General Ledger
□ France Customer General Ledger
□ France Vendor General Ledger
□ France GL Transactions List
□ France Income Statement
□ France Comparative Income Statement
□ 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.
■ 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.
■ Provision of French SuiteTax Reports – For NetSuite accounts with enabled SuiteTax features, this
SuiteApp works with SuiteTax Reports and EMEA Localization by providing the following French tax
report templates:
□ Periodic VAT Return - CA3
□ Declaration of Exchange of Goods (DEB) - Arrivals
□ DEB - Dispatches
□ European Services Declaration (DES)
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.
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.
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.
■ 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.
■ Electronic Invoicing Features for India - To comply with the electronic invoicing requirements for
India, the SuiteApp now enables you to do the following:
□ Generate e-invoices that comply with the GSTIN standards for cash sale, credit memo, invoice, and
vendor credit transactions.
For more information, see the help topics Electronic Invoicing for India and India Goods and Services Tax
(GST).
■ Support for Goods and Services (GST) Compensation Cess calculation for all GST supported
transaction types and the export of calculated cess amount in an E-Way Bill.
■ Automatic selection of the default India HSN or SAC codes on transactions line items when entering
assembly items in a transaction record.
■ Addition of a new Create from Bill ID field that displays the bill ID for which the system created the
TIjournal record.
■ Addition of a new India Vendor Wise Transaction saved search that lists vendor wise transaction
details.
■ Support for Union Territory of Ladakh businesses to enable calculation of taxes on transactions and
generation of reports using the SuiteApp.
For more information, see the help topics India Goods and Services Tax (GST), Applying Tax Deduction at
Source on Vendor Bills, and Tax Deduction at Source Tax Details.
Ireland Localization
The Ireland Localization SuiteApp works with the Tax Reporting Framework SuiteApp by providing the
Irish SuiteTax-based report templates. You can select them from the list of country-specific templates on
the Country Tax Reports page. The following report templates are available:
Ireland Localization SuiteApp also delivers the following payment templates provided by the Electronic
Bank Payment SuiteApp:
Note: Fully paid invoices resulting from applied customer deposits or payments will not be
included in the Transaction Details section of the invoice summary. This means that the amount in
Net Invoice this Period, in the Invoice Details section, may not be accurate.
■ Date
■ Transaction No.
■ Transaction Details (sourced from the new custom field Payment Details)
■ Amount
Also, a new custom field, Payment Details, is available on customer payments, customer deposits,
tegatas, and journals. This section is included in the templates that come with the updated bundle -
default_template_xml and defafult_multi_currency_template_xml. You can customize or remove the
Payment Details section from those templates.
On the Japan Localization Setup subtab, you can configure the following settings:
When you click the Print button on a purchase order, the system automatically logs the number of times
the purchase order was printed. You can find this information in the Number of Times Printed field on
the Print History subtab of the purchase order.
You can also specify where printed purchase orders will be saved. On the Japan Localization Setup subtab,
you can specify a folder in the Save Printed PO In field.
■ Queued
■ Invalid
■ Hanging
■ Error
For generation jobs with Hanging status, the administrator can resubmit them by clicking Resolve
Hanging Generation.
■ AR Adj Debit Invoice Summary – This record is used to subtract accounts receivables from the total
net payments.
■ AR Adj Credit Invoice Summary – This record is used to add accounts receivables to the total net
payments.
The custom transactions are available from Customization > Lists, Records, & Fields > Transaction Types >
AR Adj Debit Invoice Summary or AR Adj Credit Invoice Summary > New Transaction.
If included in the invoice summary, the amounts in these custom transactions are applied or reflected in
the Payments Received this Period of the invoice summary, with AR credits added to this amount and AR
debits deducted from it.
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.
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:
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.
To install the Norway Tax Reports SuiteApp, you must have the following SuiteApps installed in your
NetSuite account:
■ EMEA Localization
■ Norway Localization
■ International Tax Reports
■ Supplementary Tax Calculation
■ Tax Audit Files
■ Tax Reporting Framework
For more information, see the help topic Norway Tax Reports SuiteApp.
Philippine Invoicing
Southeast Asia Localization SuiteApp version 3.00 includes the following features and enhancements in
2020.1:
Note: The following features are targeted to be available in Southeast Asia Localization SuiteApp
version 3.01 by March 2020.
■ Sales Invoice
■ Billing Statement
■ Collection Receipt
■ Official Receipt
■ Credit Memo
You must map these document type templates to corresponding transaction forms. And 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
and Invoicing Templates.
Document Numbering
In version 3.00, 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, you must check the Allow Override box of the document type you want to have
numbering, from Setup > Company > Auto-Generated Numbers page. 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:
For more information, see the help topic Philippine Document Numbering Setup.
For more information, see the help topic Philippine Inclusive Serial Number and PTU Information Setup.
■ 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.
■ 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.
For more information, see the help topic United Kingdom Localization.
For more information, see the help topic United Kingdom Localization.
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.
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.
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.
Administration
To access the Manufacturing Mobile SuiteApp, install the Manufacturing Mobile bundle and the latest
SCM Mobile bundle. To access the Advanced Manufacturing SuiteApp, install the Advanced Manufacturing
bundle.
NetSuite Administrators will need to enable the following NetSuite features: Locations, Bins, Work
Centers, and Work Orders:
■ Work Centers — The Manufacturing Mobile SuiteApp leverages standard NetSuite Work Center
definitions for non-WIP Work Orders.
■ Bins — All consumed quantity is assigned to a staging bin and produced quantities are assigned to
production bins
■ Locations — A work center is associated to a location. A location represents an organization’s
warehouse or production facility.
The Manufacturing Mobile SuiteApp enables shop floor operators to choose to tap the Start Work button
to initiate work on the selected work order.
Tapping Resume Work enables operators to resume uncompleted work where they left off. For example,
the shift ended before the work was completed. When the next shift resumes, the operator taps Resume
Work and picks up the job where they previously left it.
After work is started, the Report Work screen (see Reporting Work Order Context) displays the work
order number, assembly number, and the employee who started the work.
The Manufacturing Mobile SuiteApp enables you to separate shop floor activities and reporting from
transaction processing. The Consumption and Production options can be selected independently. You
can also partially report production and consumption.
After completing your assigned work, go to the Report Work screen to formally end your work in the
Manufacturing Mobile SuiteApp.
■ Adhoc Builds — NetSuite 2020.1 supports expedited updates to inventory and costing anytime
before the work order ends. Production managers can use a NetSuite custom forms to initiate an
Adhoc Build. They cannot do this in the scanner. For example, a customer agreement may require you
to ship products as soon they are finished. Work order production continues as products are shipped.
■ Real-Time Builds — Real-time builds to inventory and costing can be triggered to run automatically
from the work order interface.
■ Backflush Component Quantity During Build — Component quantities can be back flushed based
on the production quantity. This functionality can be set in the work order interface.
■ Validate Data, Review Exceptions, and Correct Data — The 2020.1 Manufacturing Mobile SuiteApp
does not allow data to be corrected from the scanner interface.
Only the Production Manager can correct data recorded in the Manufacturing Mobile SuiteApp.
The manager uses a NetSuite custom form to validate data to ensure the data is consistent in both
NetSuite and the scanner. They will then review the data for any exceptions and potential build errors.
After a data error is identified, the manager can correct the data, revalidate the data, and then trigger
the build process.
Projects SuiteApps
This release note was updated June 24, 2020.
For more information, see the help topic Resource Allocation Chart/Grid SuiteApp.
For more information on this SuiteApp, see the help topic Project Risk Forecast.
Integration SuiteApps
This release note was updated September 16, 2020.
■ NetSuite-Oracle Content and Experience Integration Renamed to Oracle NetSuite Content Cloud
Service
■ NetSuite-Oracle Content and Experience Integration General Availability and Enhancements
■ NetSuite-Oracle Content and Experience Integration (Limited Release) Now Available
For more information on this SuiteApp, see the help topic Oracle NetSuite Content Cloud Service.
■ Using the OAuth2.0 authorization protocol, you must log in through Oracle Identity Cloud Service
(IDCS) using dedicated service administrator credentials to configure the SuiteApp.
■ Using the Single Sign-on feature, you can use Oracle IDCS log in credentials to access NetSuite.
■ You can enter the placeholder {RELATEDRECORDS} in your email template to retrieve information
about any project, project task, or milestone task related to the deleted record.
■ You can use the SuiteApp on project records created from project templates.
■ You can track project records not connected to Oracle Content using a predefined saved search
included in the SuiteApp. This saved search can be added as a reminder on the Reminders portlet or
as a Custom Search portlet on your NetSuite home page.
For more information on this SuiteApp, see the help topic Oracle NetSuite Content Cloud Service.
The NetSuite-Oracle Content and Experience Integration SuiteApp is a cloud-based file repository that
uses Oracle Content and Experience (OCE) Cloud to improve content management and collaboration in
NetSuite. The SuiteApp lets you create corresponding folders in OCE Cloud for your NetSuite records.
When OCE is enabled on a record type, an OCE folder is automatically generated after NetSuite record
creation. You can upload all project-related files in the generated OCE folders, letting you search,
collaborate, and share project documents, digital assets, and content in one location. You can find your
OCE folders and files under the OCE Documents subtab of your NetSuite record. This subtab is available
on supported records and transactions in NetSuite. For this release, the NetSuite-Oracle Content and
Experience Integration SuiteApp can be used on project and project task records only.
For more information about this SuiteApp, see the help topic Oracle NetSuite Content Cloud Service.
Non-Profit SuiteApps
Following are the 2020.1 non-profit enhancements to SuiteApps:
In addition to the CEO, CFO, and Grant Administrator roles, the Social Impact Standard Edition contains
following new roles:
■ Controller
■ Program Manager
■ A/P Clerk
■ A/R Clerk
The Constituent Management feature of Social Impact Standard edition consists of the following:
■ Constituent relationships - You can create and track relationships between different constituents.
■ Households - The Households feature provides the ability to aggregate the information of all the
constituents of a family.
For more information, see the help topic Social Impact Standard Edition.
Non-Profit Finanicals
The following Financial Accounting Standards Board (FASB) Reports which are developed from Financial
Statement Builder are now moved to a separate SuiteApp called NFP Reports:
■ Statement of Activity
■ Statement of Cashflow
■ Statement of Financial Position
■ Statement of Functional Expenses
■ Grant Statement of Activity
For more information, see the help topic Non-Profit Financial Management
Note: The Lot and Serial Number Trace SuiteApp supersedes the SuiteSolutions - Lot Traceability
SuiteApp (bundle ID – 132060).
For more details, see the help topic Lot and Serial Number Trace.
■ Subsidiary-based order guides – You now have the ability to create a separate order guide for each
subsidiary of a customer. You can also maintain preferred and historical order guides per subsidiary of
a customer.
■ Linked order guides – By default, order guides created from order guide templates now maintain
a link with the template. If you add or remove items from the template, you can propagate those
changes to all linked order guides.
■ Excluded Items list – When creating order guides from order guide template, items that cannot
be included in the order guide are now listed in a separate Excluded Items List popup window. A link is
provided in the banner to view the Excluded Items List popup window.
■ Simplified order entry – Updating the quantities for items is now simplified in the Order Guide Entry
popup window from sales orders. You can change the quantity and press the Down key to update the
quantity and move to the next line item quantity.
■ Fewer prerequisites – The Order Guides SuiteApp now does not require Multiple Units of Measure
and Multiple Prices prerequisites.
■ Last Sale Currency – The Last Sale Currency column is now added to the Order Guide Entry popup
window. The column displays the currency in which the item was invoiced for the selected subsidiary of
the customer.
■ Manage Route Shipments page - The Manage Route Shipments page is provided from which you
can perform the following actions:
□ Filter and view routes and orders assigned to the routes
□ Change the stop sequence for orders within a route
□ Move orders between routes as well as ship dates
■ Subsidiary based route and truck records - You can now create route and truck records per
subsidiary.
■ Route determination for intercompany sales orders and CSV imported sales orders – The
SuiteApp now automatically determines the route and ship date when you create intercompany sales
orders or import sales orders using CSV.
For more details, see the help topic Static Route Management.
For more details, see the help topic Auto Close Back Orders
Route Delivery
Using the Route Delivery SuiteApp, you can create delivery truck and route records and include the route
and truck details to the sales orders. The SuiteApp also determines the earliest possible ship date and
route for specified location and shipping address.
Route Delivery is a managed SuiteApp that is automatically updated whenever enhancements or new
features are added.
For more details, see the help topic Static Route Management.
Bill of Lading
A bill of lading is a document that primarily serves as a legally binding agreement between the carrier and
shipper or freight owner. It helps the carrier process the cargo according to the original contract. A bill of
lading is presented to the carrier, outlining the individual shipping orders included in a shipment.
The Bill of Lading SuiteApp provides a simplified interface to print the Bill of Lading document for selected
item fulfillments. With this SuiteApp, you can:
■ Administrators must customize the Employee Center to allow approvers to use this capability.
□ Customize the Employee Center role to set the Bill permission to View.
□ Assign the customized Employee Center role to vendor bill approvers.
■ The SuiteApprovals portlet is accessible from the Personalize Dashboard palette.
When logged in using the custom Employee Center role, the vendor bill approver can add to the
dashboard the SuiteApprovals | Records for Approval portlet.
■ The SuiteApprovals portlet displays the number of vendor bills for approval, and the link to the page
listing the records.
Approvers must still access each vendor bill record to approve or reject the transaction.
For more information, see the help topic SuiteApprovals Version 5.01.00.
Taxation SuiteApps
This release note was updated September 16, 2020.
■ SuiteTax SuiteApps
□ U.S. Sales Tax and Canada GST Now Generally Available
□ SuiteTax Support for Tax Groups
□ SuiteTax Support for Tax Groups for Canada and the United States
□ Canada Data Provisioning Enhancements
□ Automatic Tax Calculation for Shipping in VAT Countries
SuiteTax SuiteApps
Important: The SuiteTax enhancements in this section are applicable only to NetSuite
production and Sandbox accounts where the SuiteTax feature is enabled. For NetSuite accounts
without SuiteTax, see Legacy Tax SuiteApps.
■ Automatic provisioning of tax codes and tax rates for your tax jurisdictions (state, province, county,
city, district)
■ Automated monthly tax rate updates for 110 countries
■ Tax rate change history for each tax code
You also have the option to use an external tax partner solution in SuiteTax. The SuiteCloud Developer
Network (SDN) partners who can integrate with SuiteTax using an API include Avalara, Sovos, Taxjar,
Thomson Reuters, Vertex, and Wolters Kluwer. To learn more about the SDN partners, see SuiteApp.com.
For more information, see the help topics SuiteTax Engine and Tax Records in SuiteTax.
Contact your Account Manager to find out how you can get access to SuiteTax.
Tax groups are beneficial when you need to apply multiple tax codes. For example, you can combine GST
and PST rates for relevant provinces in Canada.
For further information, see the help topic Setting Up Tax Groups in SuiteTax Engine.
SuiteTax Support for Tax Groups for Canada and the United States
In SuiteTax Engine version 2.00.11, you can now create tax groups for Canada and the United States. To
learn more about tax groups, see the help topic Setting Up Tax Groups in SuiteTax Engine.
Previously, there was a restriction on using the United States and Canada nexuses. The restriction is
removed in this update.
For the United States, monthly tax records updates are supported by the SuiteTax Engine.
For Canada, two tax groups are created for PST and RST provinces, and one for QST province:
(PST)/ Retail Sales Tax (RST)/ Quebec Sales Tax (QST), and Harmonized Sales Tax (HST). The SuiteApp
creates separate tax types, tax codes, and tax agencies for each of these Canada sales taxes. In addition,
the Canada nexus default tax codes and tax groups for all the provinces are adjusted based on the new
data structure.
This feature uses the same logic used in the automatic tax calculation for goods. For example, if an entity
default tax code or nexus default tax codes apply to the transaction, they also apply to the shipping
method or shipping item.
This feature also uses the standard lookup logic for goods.
When you generate a country tax report, you can now choose a tax point start and end date on the
period filters. To learn more about generating a tax report using the tax point date, see the help topic
Generating Localized Country Tax Reports.
The Use Tax Point Date feature is automatically enabled for VAT/GST returns, supplementary VAT/GST
reports, and EU cross-border reports. To set up this feature, see the help topic Setting Up Country Tax
Reporting Preferences.
The Tax Reporting Category varies per country and therefore requires support from the regional or
country-specific localization SuiteApp. For more information about Tax Reporting Category and to see the
list of countries that support this feature, see the help topic Assigning a Tax Reporting Category.
■ Expenses entered in Expenses and Items lines of Bill and Bill Credit
Two new Search Type filters are now available in the tax return template to report expenses: Billable
Expenses and Expenses. To learn more about adding these filters to the tax return template, see the
help topic Adding a Tax Return Filter.
Tax Reporting Category Support for Australia and Philippines Tax Reports
SuiteTax Country Tax Reports JAPAC version 1.00.1 supports the Tax Reporting Category feature for
Australia and Philippines. You can now segregate purchases of capital goods from other transactions and
report it separately in the tax report by selecting the following categories in the Tax Reporting Category
column:
To learn more about assigning a tax reporting category to your transactions, see the help topic Assigning
a Tax Reporting Category.
The tax return templates for Australia and Philippines are also updated with the preselected Tax
Reporting Category filters. For more information about using the Tax Reporting Category as a tax return
filter, see the help topic Customizing Localized Tax Returns.
Expense Reports, Billable Expenses, and expenses entered in Expenses and Items lines of Bill and
Bill Credit transactions are now included in VAT/GST reports of APAC countries using the Billable
Expenses and Expenses Search Type filters. For more information, see the help topic Customizing
Localized Tax Returns.
If you have the SuiteTax Reports SuiteApp installed in your account, the bundle details are automatically
updated from SuiteTax Reports version 2.00.4 to Tax Reporting Framework version 1.00.0.
For more information about Tax Reporting Framework, see the help topic Tax Reporting Framework.
Important: The legacy tax enhancements in this section are applicable only to NetSuite
accounts without the SuiteTax feature. For NetSuite accounts with SuiteTax, see SuiteTax
SuiteApps.
For more information, see the help topic Legacy Tax Support in Tax Reporting Framework.
In Tax Audit Files SuiteApp version 1.76.0, the Audit Files Field Mapping page for PT SAF-T Account
Grouping category is updated with the following added filters:
■ Account Type
■ Subsidiary
You can map Account instead of Account Type to the Grouping Category list available on the Value
column of the Mapping page. Summary Accounts that have sub-accounts can now be mapped with
different Grouping Category values.
After updating your account to Tax Audit Files SuiteApp version 1.76.0, the previous Grouping Category
values mapped to the Account Type will be retained and applied to all Accounts under that Account Type.
To learn more, see the help topic Mapping Standard NetSuite fields to SAF-T PT Required Categories.
France Tax Audit Files Support for Period End Journal Entries
Tax Audit Files SuiteApp version 1.76.0 includes support for the Period End Journal Entries feature for the
France Fichier d’Ecritures Comptables (FEC) report.
This feature aims to meet subsidiaries’ statutory requirements to record entries in the general ledger for
period end transactions. The following period end journal entries are supported to be included in the
France FEC report:
■ Income Statement
■ Closing Journal Balance Sheet Closing and Opening Journal
To learn more, see the help topic Setting Tax Audit File Report Preferences.
Portugal Standard Audit File for Tax Purposes (SAF-T PT) Grouping Code Mapping Update
Tax Audit Files SuiteApp version 1.76.0.a includes enhancements for the Audit Files Field Mapping for the
Portugal Standard Audit File for Tax Purposes (SAF-T PT) file.
On the Audit Files Field Mapping page, additional columns for the Grouping Code are available so you can
manually input the Grouping Code values and map these values to the applicable Accounts. You can also
map the Grouping Category and Grouping Code through CSV Import.
To learn more, see the help topic Field Mapping for Portugal.
To learn more, see the help topic Generating a Tax Audit File.
Support for Norway Standard Audit File for Tax (SAF-T) Financial Report
Tax Audit Files version 1.78.0 includes enhancements for the Audit Files Field Mapping page to support
the Norway Standard Audit File for Tax (SAF-T) Financial report.
Starting January 1, 2020, companies with a turnover exceeding 5,000,000 Norwegian Krone are mandated
to comply with the submission of the Norway SAF-T report. The Norway SAF-T Financial report is a
standard file format for exporting various types of accounting transactional data in XML format.
The report structure is based on the SAF-T standard format by the Organization for Economic
Cooperation and Development (OECD).
The first version of the Norway SAF-T Financial report is comprised of three main sections:
■ Header – Shows general information about the company and audit file
■ Master Files – Shows information about general ledger account, suppliers, customers, and tax table
■ General Ledger Entries – Shows accounting transactions
To successfully generate the Norway SAF-T Financial report, you must complete the following tasks:
■ Ensure that you are using Tax Audit Files version 1.78.0
■ Install the latest versions of the following SuiteApps:
□ NetSuite Norway Localization SuiteApp (ID 270800)
□ EMEA Localization SuiteApp (ID 303903)
□ International Tax Reports SuiteApp (ID 43003)
□ Supplementary Tax Calculation SuiteApp (ID 123426)
□ Tax Reporting Framework SuiteApp (ID 237699)
□ Norway Tax Reports SuiteApp (ID 333158)
■ Set the Use Account Numbers preference on the Accounting Preferences page
■ Enable the Multiple Currencies feature on the Enable Features page
Note: When EMEA Localization SuiteApp is installed, ensure that the Registration Number on the
subsidiary record is provided. You must review the related configuration and mandatory fields for
the Norway SAF-T Financial report explained in Norway Standard Audit File for Tax (SAF-T) Financial.
The Account Files Field Mapping page is also updated to support the following account and tax codes
mapping categories for the Norway SAF-T Financial report:
To learn more, see the help topic Norway Standard Audit File for Tax (SAF-T) Financial.
We declare, under the penalties of perjury, We declare under the penalties of perjury that this certificate has
that this certificate is made in good faith, been made in good faith, verified by us, and to the best of our
verified by me, and to the best of my knowledge and belief, is true and correct, pursuant to the provisions
knowledge and belief, is true and correct, of the National Internal Revenue Code, as amended, and the
The updated BIR Form 2307 also includes additional manual input fields to show the Signatory Details in
the PDF format of the form:
To learn more, see the help topic Setting Up Tax Groups in SuiteTax Engine.
International Tax Reports version 3.117.0 includes automatic provisioning of reduced rate tax codes for
newly created Austria subsidiaries and nexuses. These new tax codes are effective from July 1, 2020 until
December 31, 2020:
The Austria VAT report will be updated to properly report R3-AT and ER3-AT tax codes in the following
boxes, respectively:
009 Sales at 5% according to § 28 Abs. 52 Z 1 from July 1, 2020 until December R3–AT
31, 2020
010 5% according to § 28 Abs. 52 Z 1 from July 1, 2020 until December 31, ER3-AT
2020
To learn more about the new tax codes and Austria VAT form update, see the help topics Tax Code Table
for Austria and What goes into each box - Austria VAT report.
S1-IE Standard Rate at 21% from September 1, 2020 to February 28, ■ Rate of 21%
2021
■ Available on both Sales and
Purchases
RC1-IE Reverse charge sales in country from September 1, 2020 until ■ Rate of 0%
February 28, 2021
■ Reverse Charge Code
■ Notional Rate Derived from S1-IE
(21%)
■ Available on both Sales and
Purchases
The Ireland VAT3 form is also updated to properly report the new tax rates in the appropriate boxes.
To learn more about Ireland’s COVID-19 tax response and VAT3 form updates, see the help topics
Temporary Tax Codes for Ireland COVID-19 Tax Response and What goes into each box - Ireland VAT 3
report.
International Tax Reports version 3.116.0 includes automatic provisioning of tax codes for newly created
Saudi Arabia subsidiaries and nexuses with the following properties:
To learn more, see the help topic Tax Code Table for Saudi Arabia.
The update includes automatic provisioning of tax codes for newly created Germany subsidiaries or
nexuses with the following properties:
S2-DE Standard Rate from July 1, 2020 until December 31, 2020 ■ 16% Rate
■ Available on both Sales and
Purchases
R1-DE Reduced Rate from July 1, 2020 until December 31, 2020 ■ 5% Rate
■ Reduced Rate
■ Available on both Sales and
Purchases
ESSP1-DE EC Purchases (Services) from July 1, 2020 until December 31, ■ 0% Rate
2020
■ EC Code
■ Reverse Charge
■ Applies to Service Items
■ Notional Rate Derived from S2-DE
(16%)
■ Available on both Sales and
Purchases
ESSS1-DE EC Sales (Services) from July 1, 2020 until December 31, 2020 ■ 0% Rate
■ EC Code
■ Applies to Service Items
SS1-DE Applicable for Mobile Devices from July 1, 2020 until December ■ 0% Rate
31, 2020
■ Reverse Charge
■ Notional Rate Derived from S2-DE
(16%)
■ Available on both Sales and
Purchases
RC1-DE Reverse Charge from July 1, 2020 until December 31, 2020 ■ 0% Rate
■ Reverse Charge
■ Notional Rate Derived from S2-DE
(16%)
■ Available on both Sales and
Purchases
IS1-DE Purchases of Services from outside EU from July 1, 2020 until ■ 0% Rate
December 31, 2020
■ Reverse Charge
■ Notional Rate Derived from S2-DE
(16%)
■ Applies to Service Items
■ Import
■ Available on both Sales and
Purchases
For more details, see the help topic Germany COVID-19 Tax Response: Temporary Tax Codes.
The tax codes will be reported in the following boxes of Germany Monthly/Quarterly VAT Return:
41 Sales of goods and services transactions within the EU Sales Net Amount of ES1-DE, ER1-DE
35 Sales which are subject to other VAT rates Sales Net Amount of S2-DE, R1-DE
36 Sales which are subject to other VAT rates Sales Tax Amount of S2-DE, R1-DE
95 Intra-community aquisitions, which are subject to other VAT rates Purchases Net Amount of ES1-DE, ER1-DE
98 Intra-community aquisitions, which are subject to other VAT rates Purchases Notional Tax Amount of ES1-
DE, ER1-DE
60 Taxable sales, where recipient is liable for tax payment Sales Net Amount of SS1-DE, RC1-DE
21 Net amount of sales of services within the EU Sales Net Amount of ESSS1-DE
46 Net amount of purchases of services within the EU Purchases Net Amount of ESSP1-DE
47 VAT of purchases of services with standard notional rate within Purchases Notional Amount of ESSP1-DE
the EU
84 Other services (§ 13b para 2 No. 1, 2, 4 to 11 UStG) Purchases Net Amount of SS1-DE, RC1-
DE, IS1-DE
85 Tax amount of other services (§ 13b para 2 No. 1, 2, 4 to 11 UStG) Purchases Notional Amount of SS1-
DE, RC1-DE, IS1-DE
66 Purchase VAT on invoices from other businesses, from services Purchases Tax Amount of S2-DE, R1-DE
provided and from intra-community triangulations
61 Notional tax amount of purchases within the EU Purchases Notional Amount of ES1-
DE, ER1-DE
67 Input VAT from supplies subject to reverse charge Purchases Notional Amount of ESSP1-
DE, IS1-DE, RC1-DE, SS1-DE
To learn more about the details of the VAT form, see the help topic What goes into each box - Germany
Monthly/Quarterly VAT report.
International Tax Reports version 3.112.0 includes enhancements for the latest VAT return for Cyprus. The
update includes automatic provisioning of the following reduced rates tax codes for newly-created Cyprus
subsidiaries:
The update also reflects the correct reporting of the Cyprus tax codes:
7 Net amount of purchases S, R1, R2, E, Z, I, IS, ES, ESSS, EZ, ESSP, RC
To learn more, see the help topics Cyprus Tax Codes and Cyprus VAT Report.
International Tax Reports version 3.112.0 includes support for Singapore's implementation of reverse
charge on imported services and taxing B2C digital services (overseas vendor registration regime).
Effective January 1, 2020, Singapore implements Goods and Services Tax (GST) on the following imported
services:
■ Reverse Charge (RC) mechanism to tax services imported by GST-registered persons (B2B)
■ Overseas Vendor Registration (OVR) regime to tax digital services imported by non-GST persons
including private individuals
The GST F5 return update supports the new boxes related to the new tax codes:
The SRRC-SG and SROVR-SG tax codes are reported in the following boxes of the GST F5 return:
6 Output tax due Tax amount SROVR-SG, notional tax amount SRRC-
SG
■ Box 14: Did you import services subject to GST under Reverse Charge?
■ Box 15: Did you operate an electronic marketplace to supply digital services subject to GST on behalf
of third-party suppliers?
International Tax Reports version 3.112.0 includes updates to enhance the XML version of the Germany
Monthly/Quarterly and Annual VAT returns.
The update for the XML version is necessary to align it with the new FormularDepotXI version 15, which
enables you to continue submitting your VAT returns online.
To learn more, see the help topic Submission of VAT Returns in Germany.
International Tax Reports version 3.114.0 includes enhancements for the latest VAT return for Belgium.
The update includes automatic provisioning of tax code and tax reporting of the purchase of direct cost
service items (for example, software license products). The new tax code EDCSP-BE has the following
properties:
■ Description: Tax code for purchase of direct cost service items within EC
■ Rate: 0%
■ EC Code
■ Reverse Charge Code
■ Notional rate derived from S-BE (21%)
■ Applies to direct cost service items
■ Available on Purchases
EDCSP-BE tax code will be reported in the following boxes of Belgium VAT return:
81 Goods and raw materials and components Net amount of purchase EDCSP
55 VAT due on Intra-Community acquisition and services Notional tax amount of purchases EDCSP
To learn more, see the help topics Belgium Tax Codes and What goes into each box - Belgium VAT report.
International Tax Reports version 3.114.0 includes support for Slovenia’s super reduced tax rate of 5%.
The update includes automatic provisioning of super reduced rate tax codes for newly-created Slovenia
subsidiaries or nexuses with the following properties:
ESSP3-SI EC Purchases (services) - super Enabled 0% SR-SI (5%) Available on both Sales
reduced rate and Purchases
The update will also reflect the correct reporting of the Slovenia tax codes:
24b From acquisition of goods from other EU Member States at a Notional tax amount of purchases ESR-SI
rate of 5%
24c For services received from other EU Member States at a rate of Notional tax amount of purchases ESSP3-SI
5%
25b On the grounds of self-assessment as recipients of goods and Editable field for user manual input of
services at a rate of 5% reporting of Box 25b
To learn more, see the help topics Slovenia Tax Codes and What goes into each box - Slovenia VAT Report.