Commerce · Commerce Applications Commerce · Site Management Tools
- SMT UX Sustainability
- Sass Pre-Processor Enhancements Commerce · Commerce Merchandising
- Improved Process for Applying Merchandise Hierarchy Attributes to Items
- Merchandise Hierarchy Visual Layout Enhancements
- Standard Merchandise Hierarchy SuiteAnalytics Workbook Commerce · Commerce Platform
- New Domains Setup Procedure
- Redirect URL Domain Enhancements
- Creating and Editing Web Sites by Type
- Adding Items to Item Collections using Saved Searches
- Creating Item Collections using CSV Import
- Introducing Web Store Order Workbook Template
- Update to Commerce Elevated Permission Framework
- Account-Specific Domains for Marketing Campaigns and Online Forms
- System Email Template Customization
- Commerce Category Customer Segment Assignment
- Commerce Category Multi-Language Support Commerce · SuiteCommerce InStore
- New APM Sensors SuiteCloud Platform SuiteCloud Platform · SuiteApp Distribution
- Bundle Support During Release Phasing
- SuiteApp Control Center Now Generally Available
- New SuiteApp Marketplace Available for Distributing SuiteApps
- Localization Context Filtering Supported for Scripts in Bundles
- Translatable Field References to Terms in Translation Collections Supported in Bundles
- SuiteBundler Support Updates SuiteCloud Platform · SuiteBuilder - Customization
- Sales and Purchase Custom Transactions Available Change NetSuite 2020.1 Release Notes 6
- System Notes v2 Page Available for Custom Transaction Configuration and Roles and Permissions
- Account–Specific Domains Supported in Custom Fields and Custom Center Links
- New Languages Supported in Advanced Printing Templates
- Updates to Third-Party Libraries Used in Advanced Printing
- Improvements to Error Messages and Handling of Corrupted Custom Segments SuiteCloud Platform · SuiteAnalytics
- Dataset Separation in SuiteAnalytics Workbook
- New Date Filters for SuiteAnalytics Workbook Pivot Tables and Charts
- New Table View Tab in SuiteAnalytics Workbook
- Idle Session Timeout for SuiteAnalytics Connect
- 2020.1 Connect Browser SuiteCloud Platform · CSV Import
- Newly Supported Record Types for CSV Import
- Enhanced Size of the Name and Translation Fields in CSV Import Map Translation
- Sales and Purchase Custom Transactions Available for CSV Import
- Commerce Category Translation Sublist Import
- Effective Dating for Employee Record Changes Available with CSV Import SuiteCloud Platform · SuiteFlow (Workflow Manager)
- Support for Expenses Sublists in Workflows
- Change to Default Behavior of Context Selection in Workflows and Actions SuiteCloud Platform · SuiteScript
- Introducing SuiteQL API
- SuiteScript 2.1 Now Generally Available for Server Scripts
- SuiteScript 2.1 Debugger (Beta)
- Enhancements to Execution Contexts for Scripts and Workflows
- Localization Context Filtering for SuiteScript 2.0
- Sales and Purchase Custom Transactions Available in SuiteScript
- Map/Reduce Concurrency Limit Is Adjusted to Target Account Limit for SDF Projects
- Change to Scripts on the Subsidiary Record Currency Field
- Deprecation of Script Queue Monitor (Beta)
- Method Added to N/redirect Module
- Support for Relative File Paths in the N/file Module
- 2020.1 SuiteScript Record Exposures
- 2020.1 SuiteScript Records Browser SuiteCloud Platform · SuiteTalk Web Services Integration
- Changes in the URL Structure of REST Web Services
- REST Web Services Support for CRUD Operations on Custom Records Change NetSuite 2020.1 Release Notes 7
- Fully Supported Record Types for REST Web Services in 2020.1
- New REST API Browser
- Record Action Execution Through REST Web Services
- Support for Record Transformation Through REST Web Services
- SuiteQL Query Execution Through REST Web Services
- Changes in SuiteAnalytics Workbook Execution Through REST Web Services
- SuiteScript Execution Context for REST Web Services
- REST Web Services Requests and Responses Tracked in the Execution Log
- Sales and Purchase Custom Transactions Available in SOAP Web Services
- New GetConcurrencyGovernance Operation in SOAP Web Services
- Operations Removed in 2020.1 SOAP Web Services Endpoint
- Governance Enabled for All Accounts
- Integration Record Enhancements Related to OAuth 2.0
- Field Type Change in the Project Task Record
- SOAP Web Services Version 2020.1
- Araxis Merge Diff File for the 2020.1 Endpoint
- 2020.1 SOAP Schema Browser SuiteCloud Platform · SuiteCloud SDK
- 2020.1 SuiteCloud CLI for Java Is Not Yet Available
- 2020.1 SuiteCloud Plug-in for WebStorm Is Not Yet Available
- 2020.1 SuiteCloud Plug-in for Eclipse Is Not Yet Available SuiteCloud Platform · SuiteCloud Development Framework
- Custom Code and Action Tabs in Custom Forms Support
- Sales and Purchase Custom Transactions Support
- Additional Transaction Form Types Can Be Customized
- Translatable Fields Support
- Map/Reduce Concurrency Limit Adjusts to Target Account Limit
- Financial Institution Connectivity Plug-in Support
- Parser Plug-in Support
- Minor Updates to Custom Objects SuiteApps SuiteApps · SuiteApps (Bundles) Released by NetSuite
- Accounting SuiteApps
- Administration SuiteApps
- Banking SuiteApps
- SuitePeople SuiteApps
- Order Management SuiteApps
- Inventory Management SuiteApps Change Accounting 8
- Localization SuiteApps
- Manufacturing SuiteApps
- Projects SuiteApps
- Non-Profit SuiteApps
- Food and Beverage SuiteApps
- Taxation SuiteApps Accounting NetSuite 2020.1 includes the following enhancements to accounting features:
- New Feature to Balance Transactions by Segments
- Advanced Revenue Management Enhancements
- Entity Merge User Interface Enhancements
- SuiteAnalytics for Accounting Enhancements
- Transaction Email Enhancements
- Budgets for Secondary Subsidiaries
- Fixed Assets Management Enhancements
- SuiteApprovals Enhancements
- Contra Account Sheets (Beta)
- Country-Specific Reports (Beta)
- France Localization
- Germany Central Bank Reports (Beta)
- Germany Localization (Beta)
- GL Matching
- New Japan Trial Balance and Enhancements to Financial Statements New Feature to Balance Transactions by Segments With the new Balancing Segments feature you can now balance transactions by segments. In NetSuite, the general ledger always balances for the company or, in OneWorld accounts, for the subsidiary. Now you can identify custom segments to balance for other dimensions. For example, you can create balancing segments for product lines or business units. When you run the new Balancing by Segments process, NetSuite automatically balances your transactions by their balancing segments. For instructions to set up the Balancing Segments feature, see 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 Change Accounting 9 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 Segment. 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 Balancing Segments and Journals. Advanced Revenue Management Enhancements NetSuite 2020.1 delivers some significant enhancements to the Advanced Revenue Management feature. The following sections provide a brief summary of the enhancements for this feature:
- New Revenue Summary Subtab for Revenue Arrangements
- Enhanced Revenue Allocation Support for SuiteBilling Change Orders
- Return of Element Renamed to Linked Element
- Documentation Enhancements For more information about Advanced Revenue Management, see the help topic Advanced Revenue Management. New Revenue Summary Subtab for Revenue Arrangements The Revenue Elements subtab of revenue arrangements includes a new Revenue Summary subtab. This subtab combines key information from the Revenue Element subtab with recognized revenue from the general ledger and amounts actually invoiced. In addition, the subtab consolidates revenue Change Accounting 10 elements from related sources when you merge revenue arrangements. By default, the subtab collapses consolidated lines as shown in the following screenshot. You can expand the consolidated lines to view the details. When you add the amounts in each column of the detail lines, they equal the amount in the summary line for the column. (The detail lines are outlined in red in the following screenshot.) Use the Expand All and Collapse All buttons, or click the plus and minus signs to expand and collapse individual lines. The amounts in the previous screenshots show values for the January activity in a reclassification example in the Help Center. Note that the billed amounts include only the invoice in this example. The customer credit has not yet been generated. For details, see the help topic Foreign Currency Combined Revenue Arrangement Prior to Billing. Enhanced Revenue Allocation Support for SuiteBilling Change Orders Prior to 2020.1, subscription change orders updated the original revenue elements for the subscription. The update sometimes overrode the dates or allocation of existing elements. A new accounting preference, Create Revenue Elements for Subscription Revisions, lets you chose whether to keep the current behavior or create new revenue elements for subscription change orders. When you check the box for Create Revenue Elements for Subscription Revisions, you can use either retrospective or prospective merge to combine revenue arrangements for subscriptions. When the preference box is clear, you can only merge revenue arrangements for subscriptions retrospectively. For more information about retrospective and prospective merges, see the help topic Combination and Modification of Performance Obligations. For more information about the accounting preference Create Revenue Elements for Subscription Revisions, see New Accounting Preference Related to Advanced Revenue Management. Return of Element Renamed to Linked Element Previously, the Return of Element field only linked revenue elements from a return (negative elements) with their associated positive element (sales element). Now you can also link the revenue element from Change Accounting 11 a subscription revision with the original element for the subscription line or other associated revenue element. The new name for the field is Linked Element to indicate the expanded function. 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. Entity Merge User Interface Enhancements NetSuite 2020.1 includes the following changes to the Entity Merge user interface:
- 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. SuiteAnalytics for Accounting Enhancements SuiteAnalytics now includes the following accounting enhancements:
- 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 SuiteAnalytics Workbook Data Source Overview and Transaction Detail Workbook (Beta). Transaction Email Enhancements In NetSuite 2020.1, you can use the Standard Transaction Email Template at Documents > Templates > Email Templates and build customized email templates. You can also set custom templates as the default Change Accounting 12 for standard transactions with a new Default Email Template preference at Setup > Company > Email > Email Preferences > Transactions subtab. For more information, see the help topics Working with Email Templates and Setting Email Preferences. Budgets for Secondary Subsidiaries If you use the Multi-Subsidiary Customer feature, in 2020.1 you can create a budget for any of the customers’ assigned secondary subsidiaries. For information about creating budgets, see the help topic Setting Up a Budget. Administration NetSuite 2020.1 includes the following enhancements to Administration features:
- Account Setup and Maintenance
- Deprecation Plan for the Full Access Role
- See Differences in Employee Access Permissions on the Role Permission Differences Page
- New File Cabinet Default for Hide Attachments Folder Preference
- Antivirus Scanning on File Cabinet Files in All Accounts
- Internationalization
- Introducing Localization Context – User Event and Client Script Association
- Subsidiary Hierarchy Modification
- Automated Intercompany Management Preferences Relocated
- Internal Tags Displayed in Translated Record and Transaction Names
- Authentication
- OAuth 2.0 Delegated Access for REST Web Services and RESTlets
- Deprecation of Google OpenID SSO and NetSuite Inbound SSO Features
- TBA Authorization Flow Enhancements
- Inbound SSO Access to Commerce Websites Through OpenID Connect (OIDC)
- Service Provider-Initiated Flow Support for SAML Single Sign-on Access to Commerce Websites
- Session Invalidation on Commerce Websites Can Result from Changes to User Credentials
- Password Policy Changes for Commerce Websites
- Embedding Sensitive Website Pages in an iFrame is Prohibited
- Cloud Infrastructure
- Data Center-Specific NetSuite Domains for Integrations are Targeted for Deprecation
- Automated Conversion of Data Center-Specific Domains in NetSuite
- New Content Delivery Network Available for Secure Commerce Websites
- Incorrect HTTP Status Code 206 is Changing to 500
- SuiteApps
- Operation ID Field Added on Page Time Details
- Deprecation of Script Queue Monitor (Beta) Change Administration 13 Account Setup and Maintenance Deprecation Plan for the Full Access Role The Full Access role has been deprecated since NetSuite 2019.1 and is targeted to be disabled as of 2021.1. As an interim step in this process, as of January 2020, this role will be set to inactive. The Full Access role will no longer appear in the list of roles available for users who have this role assigned. 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:
- The Full Access role was renamed to Full Access (deprecated).
- You cannot assign the Full Access role to new users.
- When users log in with the Full Access role, they see a notification indicating that the Full Access role is being deprecated.
- A permission called Core Administration Permissions became available. This permission provides access to some of the same functions that are currently available to users with the Full Access role. You may be able to use Core Administration Permissions as an alternative to the Full Access role. For more information, see the help topics Full Access Role, Customizing or Creating NetSuite Roles and Core Administration Permissions. See Differences in Employee Access Permissions on the Role Permission Differences Page You can use the Role Permission Differences feature to quickly compare permissions between roles. As of NetSuite 2020.1, it is possible to see differences in Employee Access permissions and restrictions between different roles. Differences in Employee Access permissions are shown in their own category called Employee Access. This is useful when you want to, compare Employee Access permissions between a customized role and the role on which it is based. 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 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. New File Cabinet Default for Hide Attachments Folder Preference To ensure that only users with adequate permissions can access confidential records and associated files in the File Cabinet, the attachments folder is now hidden by default. As of 2020.1, the Hide Attachments Folder box on the General Preferences page is checked for all new customers. Change Administration 14 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. Antivirus Scanning on File Cabinet Files in All Accounts As of 2020.1, all NetSuite accounts are protected against viruses and malware to provide increased security. An embedded antivirus scanner automatically scans all new and updated files as they are uploaded to the File Cabinet. Files are uploaded only if they pass the scan. Files attached to email messages are also scanned for viruses. All scanning is done automatically. No configuration or setup is required. For more information, see the help topic Antivirus Scanning on File Cabinet Files. Internationalization Introducing Localization Context – User Event and Client Script Association NetSuite 2020.1 introduces support for record localization context, and the ability to filter script execution according to localization context. Developers can use these features to tailor scripts for certain countries, and to prevent these scripts from deploying unnecessarily on records associated with other countries. Limiting script execution in this manner can improve record performance. For more information about these features, see the following:
- Determining the Localization Context
- Records That Support Localization Context
- Localization Context–Aware Scripts 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. Determining the Localization Context The localization context of a record represents the country or countries associated with that record. The system automatically determines the localization context of a record on the basis of the values in specific country fields, such as subsidiary and tax nexus fields. These values represent individual countries, such as France, United Kingdom, or Germany. Change Administration 15 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: START What is the Subsidiaries Item Record Type? Entity (Country) Transaction Is the Record The record type is Type a Fulfillment? Yes now set to a fulfilled transaction. No Subsidiary (Country) Is the Record + Type an inter-company Yes ToSubsidiary transfer order? (Country) Does the item No include child Yes Subsidiary + Children subsidiariers? (Country) Is the Does the Record Type a Nexus (Country) Yes Record Instance have Yes No Taxable Transaction? a Nexus? Subsidiary (Country) No No Subsidiary (Country) 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:
- A user changes a field which is used to determine the localization context of a record.
- Context determination is immediately triggered again to make sure that the localization context is correctly set.
- 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 Localization Context. Change Administration 16 Records That Support Localization Context Use of the localization context feature is currently limited to standard records of the following types:
- Item
- Transaction
- Entity For more details about supported records, see Records that Support Localization. Localization Context–Aware Scripts As of NetSuite 2020.1, administrators and other users with access to scripts can set up a localization context association rule for a SuiteScript 2.x user event or client scripts. You can set a localization context association rule on the script deployment record by selecting the country or countries for which a script is relevant. Script deployments with a localization context association rule result in context–aware scripts. 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: 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. Subsidiary Hierarchy Modification As of 2020.1, NetSuite enables users with appropriate permission to modify their subsidiary hierarchy structure, if required. Businesses may need to modify their subsidiary hierarchy when they change the headquarter subsidiary, or to elevate a subsidiary in the hierarchy. For details about the subsidiary hierarchy modification functionality, see Subsidiary Hierarchy Structure Modification. Contact Customer Support for assistance with subsidiary hierarchy modification. Automated Intercompany Management Preferences Relocated As of 2020.1, the Automated Intercompany Management feature preferences have been removed from the Items/Transactions subtab on the Accounting Preferences page. These preferences are now located 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 Intercompany Preferences. Change Administration 17 Internal Tags Displayed in Translated Record and Transaction Names You may see internal tags in translated record and transaction names in the user interface. For example, instead of Record, you may see {#Record#}. These tags may be related to record renaming. If you find these tags displayed in the user interface, please contact NetSuite Customer Support so that we can make a correction in a future release. 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 OAuth 2.0 Delegated Access for REST Web Services and RESTlets A new approach to access REST Web Services and RESTlets is now available. OAuth 2.0 provides an alternative to Token-based Authentication. OAuth 2.0 is more straightforward to implement, because request signing is not required. OAuth 2.0 has a standard authorization code grant flow at the end of which an application gets 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. After the access token expires, the application uses the refresh token to request a new access token, without the requirement to initiate the flow from the very beginning. 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:
- An authorization request is sent to the authorization endpoint URI.
- If there is no active session, the user logs in NetSuite. When the authorization request is received, a consent screen displays where the user can allow or deny authorization for an application to access protected NetSuite resources. If the user grants access to the application on the consent screen, the redirect follows to redirect URI with the authorization code received.
- The application exchanges the authorization code for the access and refresh tokens on the Token Endpoint URI. 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. Defining OAuth 2.0 on Integration Records To define OAuth 2.0 on integration records, go to Setup > Integration > Manage Integrations. To edit a record, click the name of the record. To create a new record, click New. 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. Change Administration 18 Important: The transport-layer security is mandatory on the Redirect URI.
- 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. New OAuth 2.0 Permissions The OAuth 2.0 feature introduces two new permissions:
- OAuth 2.0 Authorized Applications Management:
- Is primarily for Administrators or roles with Core Administration Permissions.
- Requires two-factor authentication (2FA).
- Enables users to view or revoke any OAuth 2.0 authorized applications in the account.
- Log in using OAuth 2.0 Access Tokens – enables users to:
- Access REST Web Services and RESTlets using OAuth 2.0 access tokens.
- View their OAuth 2.0 authorized applications.
- Revoke OAuth 2.0 authorized applications they authorized previously. Deprecation of Google OpenID SSO and NetSuite Inbound SSO Features Google OpenID Single Sign-on (SSO) and the NetSuite proprietary Inbound Single Sign-on (SSO) features are targeted for deprecation. Partners and customers with solutions based on these features must update these solutions to use an alternative inbound single sign-on feature. 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 topic OpenID Connect (OIDC) Single Sign-on. See also 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. The deprecation schedule is as follows:
- 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. Change Administration 19
- 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). See Operations Removed in 2020.1 SOAP Web Services Endpoint. See also Token- based Authentication (TBA) and Token-based Authentication and Web Services. TBA Authorization Flow Enhancements The Token-based Authentication (TBA) Authorization Flow has been enhanced to improve the experience for application developers. Enhancements include:
- 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://
.restlets.api.netsuite.com/rest/tokeninfo, where 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. Inbound SSO Access to Commerce Websites Through OpenID Connect (OIDC) As of 2020.1, OpenID Connect (OIDC) can be used to access Commerce websites as an alternative to SAML Single-Sign on. With OIDC, users have autonomy over security administration because an OpenID Connect Provider (OP) manages security administration. 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. Change Administration 20 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 a valid configuration of OIDC is present for a website:
- 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. Note: Single logout (SLO) is not supported at this time. Service Provider-Initiated Flow Support for SAML Single Sign- on Access to Commerce Websites Users can now access Commerce websites using the Service Provider-Initiated Flow for SAML Single Sign-on. If you have a valid configuration of SAML Single Sign-on for a website, the Service Provider- Initiated flow starts with a SAML request from the Service Provider. Users authenticate themselves with the Identity Provider (IdP). After authentication, users are redirected to the requested protected resource. Support for this feature is available only in accounts where the SAML Single Sign-on feature is enabled. The following restrictions apply to the Service Provider-Initiated Flow:
- 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. Session Invalidation on Commerce Websites Can Result from Changes to User Credentials For enhanced security, if a user’s credentials are changed during an active Commerce website session, the user is now automatically logged out of the website. This change in behavior is referred to as explicit Change Administration 21 session invalidation. A change in a user’s credentials ends the session if the change occurs while the user is logged in. User credentials include a user’s password, if the assigned role exists or an entity is active. For example, logged-in users who change their passwords are now automatically logged out of the website. These users must log in to the website again, creating new sessions using their new passwords. This automatic logout also occurs if a website administrator makes changes to a user’s credentials while the user is logged in to the website. Explicit session invalidation applies to all SuiteCommerce Advanced, SuiteCommerce, SuiteCommerce My Account, and Site Builder websites. Password Policy Changes for Commerce Websites As of 2020.1, a stronger password policy is now enforced for Commerce websites. The stronger policy applies to any newly created or changed password for users who register on Commerce websites and to users logging in with the Customer Center role. The stronger policy is not enforced for existing users with passwords that do not match the new criteria, unless the existing users change their passwords. Changes to the password policy include:
- The minimum password length has changed from six characters to eight characters.
- Easy to guess or potentially compromised passwords are now prohibited. Embedding Sensitive Website Pages in an iFrame is Prohibited Oracle NetSuite prohibits the presentation of sensitive pages in an iFrame (an inline frame, using the HTML tag
- 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 Change Administration 22 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. Automated Conversion of Data Center-Specific Domains in NetSuite Before 2016.2, all NetSuite domains contained a data center identifier as part of the domain name. This data center identifier made it difficult to move an account to a different data center. To take full 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. Assistance with the Transition to Account-Specific Domains The NetSuite application offers several methods to assist you during the transition to account-specific domains:
- Automatic Redirection
- Automatic On-Read Translation of Data Center-Specific URLs
- Traffic Health 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. Change Administration 23 Automatic On-Read Translation of Data Center-Specific URLs 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. For more information, see the following release notes:
- Account–Specific Domains Supported in Custom Fields and Custom Center Links
- Account-Specific Domains for Marketing Campaigns and Online Forms 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. 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. For more information, see the help topic How to Transition from Data Center-Specific Domains New Content Delivery Network Available for Secure Commerce Websites A new Content Delivery Network (CDN) is available for secure Commerce websites. The new CDN, a new hosting infrastructure, and a new type of SSL certificate work together to increase the security of your Commerce website. When you change over to a different CDN, it is a good practice to change the keys used by the SSL certificate. Changes to the SSL certificate renewal process support this practice. 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. Change Administration 24
- 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. For more information, see the help topic Prerequisites for Setting Up Secure Domains. Incorrect HTTP Status Code 206 is Changing to 500 In the past, some browsers inappropriately processed the HTTP status code 500 (Internal Server Error). As a work-around for such situations, NetSuite began using the HTTP status code 206 (Partial Content). The problem that caused some browsers to inappropriately process the 500 error code has long been resolved. However, this work-around (returning the 206 status code) continued to be used in NetSuite. In 2020.1, NetSuite will start returning the correct HTTP status code 500 instead of returning status code
Important: Attention NetSuite customers, partners, the Software Development Network (SDN), and NetSuite Professional Services (PSG): You may have created customizations (for example, RESTlets or Suitelets) where the way the error is handled depends on the HTTP status code 206 (Partial Content). If so, these customizations should be modified so that they also support the correct status code 500 (Internal Server Error). HTTP status code 500 corresponds to the actual error situation that may occur in NetSuite. This workaround (incorrectly returning the 206 status code) is targeted to be removed from NetSuite in June 2020. Change Banking 25 Banking NetSuite 2020.1 includes the following enhancements to banking features:
- Bank Feeds
- Financial Institution Connectivity API
- Bank Data Matching Improvements
- 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. 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 Configuring a Connection to a Financial Institution. 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 Mapping Accounts for Direct Connectivity. After you save the format profile, NetSuite securely downloads the last 60 days of available bank data, by default. NetSuite also schedules daily updates of your financial data. Note: This schedule is generated by the system and cannot be modified. 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 Updating Imported Bank Data. Change Banking 26 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. Financial Institution Connectivity API Note: The Financial Institution Connectivity API replaces the Bank Connectivity API, which is deprecated as of 2020.1. 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 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 Financial Institution Connectivity Plug-in Overview. For details on the Parser Plug-in, see the help topic Parser Plug- in Overview. You can also use the Financial Institution Connectivity API to develop plug-ins in the SuiteCloud Development Framework (SDF). 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. 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 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. Change Banking 27 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 Configuring a Connection to a Financial Institution. For information on mapping accounts in a format profile that uses the direct connectivity method, see Mapping Accounts for Manual Import. Bank Data Matching Improvements NetSuite 2020.1 includes the following enhancements to the matching process:
- Exclude Imported Bank Data
- Bank Feeds with a Manual Update Function
- Resize Column Width and Reorder Grid Columns
- Workflow and Label Improvements Exclude Imported Bank Data On the Match Bank Data page, you can now review and exclude imported bank data from the matching process on the To Be Matched subtab (previously called Unmatched). You may want to exclude a transaction if it is old or a duplicate. To exclude data, see Excluding Bank Data from the Matching Process. Bank Feeds with a Manual Update Function Previously, financial institution account data on the Confirm Transaction Matches page was static. You had to manually import new data for reconciliation. In 2020.1, if the administrator configures a format profile for direct connectivity, 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 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 Posting Transactions During Matching. Resize Column Width and Reorder Grid Columns The process to view unmatched and matched data includes the following improvements:
- 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 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 Filtering Imported Bank Data and Account Transactions. Change Banking 28 Workflow and Label Improvements The bank data matching workflow includes the following improvements:
- 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 for reconciliation, 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 for reconciliation. 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:
- Manager Self-Service Enhancements for Employee Change Requests
- CSV Import for Effective Dating
- Advanced Employee Permissions Customizable Restrictions
- Advanced Employee Permissions Exclusion of Employees Permission
- New Permission for Advanced Employee Permissions
- Bonuses in Compensation Tracking
- Expense Account Override
- Employee-Specific Expense Report Attachments in File Cabinet
- Time Modification Enhancements
- Vendor Time Thresholds
- New Employee Fields and Reports Added for U.K. Localization Change Employee Management 29
- Onboarding Checklist Enhancements Manager Self-Service Enhancements for Employee Change Requests In NetSuite 2020.1, the Employee Change Request feature has been enhanced with two improvements:
- Guidelines and relevant links
- Salary and job duration insights 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. CSV Import for Effective Dating In NetSuite 2020.1, customers can use CSV Import to perform bulk updates to the employee record for a past, current, or future date. This feature supports all effective-dated fields in the employee record. To use CSV Import for Effective Dating, you must have:
- Full permissions for Import CSV Records
- Full Employee permissions
- Full Employee Record permissions
- Edit permissions for Employee Effective Dating
- Edit permissions for Employee Change Reason 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. The imported changes can be viewed in the Effective Date Log. Advanced Employee Permissions Customizable Restrictions In NetSuite 2020.1, you can now customize restrictions for Advanced Employee Permissions to restrict a role’s access to employee records by location and subsidiary. Previously, you could only select from the following restrictions: Change Employee Management 30
- Active & Non-Terminated
- Subordinates
- Own Only
- Inherit From Role To customize restrictions for Advanced Employee Permissions, you must have the Manage Custom Restrictions permission. For details, see Custom Restrictions for Advanced Employee Permissions. Advanced Employee Permissions Exclusion of Employees Permission In NetSuite 2020.1, the Lists > Employees permission takes precedence over any of the employee permissions that are part of the Advanced Employee Permissions feature. This change is a step in separating the legacy permission model from the Advanced Employee Permissions feature. The Lists > Employees permission gives full-record access to employee records. The Advanced Employee Permissions feature makes it possible to give access to only specific fields and sublists on employee records. 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. New Permission for Advanced Employee Permissions In NetSuite 2020.1, the Advanced Employee Permissions feature now includes the Employee Record Full permission. A role with this permission can access all the information on the employee record, except for the fields and sublists that the Employee System Access permission exposes. For more information, see Employee Record Full Permission Overview. Bonuses in Compensation Tracking The Compensation Tracking feature now supports employee bonuses. You can create multiple bonus types, such as annual bonus, sign-on bonus, and so on. You can also track bonus targets and bonus awards for your employees. If you use SuitePeople U.S. Payroll, you can pay bonuses to your employees. For more information, see the help topic Compensation Tracking. Pay Employee Bonuses with SuitePeople U.S. Payroll When you use the Compensation Tracking feature and SuitePeople U.S. Payroll together, you can pay bonuses to your employees. On a payroll batch, to include bonuses for the pay period, you can check the new Pay Bonuses box. You can also set a preference to check the Pay Bonuses box by default. For more information, see Integrating Bonuses with Payroll. Workbook Template – Employee Bonus History and Current Compensation The Compensation Tracking feature includes a SuiteAnalytics workbook template, Employee Bonus History and Current Compensation. This workbook template provides a summary of employees’ current Change Employee Management 31 base compensation and a history of employees’ bonuses, if applicable. For more information, see Employee Bonus History and Current Compensation Workbook. Expense Account Override In NetSuite 2020.1, you can now select an expense account for individual expense items on an expense report. Previously, expense accounts on line items were only determined by the selected expense category. The Account field is automatically hidden on expense report forms for line items. You must customize your expense report forms to enable expense account override. 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. Employee-Specific Expense Report Attachments in File Cabinet NetSuite 2020.1 introduces two features to support a new expense report file structure in the File Cabinet. The new structure is required in NetSuite 2020.2. To enable the employee-specific attachments, go to > Setup > Company > Enable Features. Under Data Management, check the Enhanced File Security – 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. Time Modification Enhancements NetSuite 2020.1 introduces the following enhancements to bulk update time entries:
- 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. Change Employee Management 32
- 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.
- 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. Vendor Time Thresholds In NetSuite 2020.1, you can now disable time thresholds on vendor time. Previously, time thresholds applied to both employee and vendor time. A new preference is available at Setup > Accounting > Accounting Preferences > Time & Expenses > Time Tracking. NetSuite sets this preference by default. To disable time thresholds for vendor time, clear the Apply Time Threshold to Vendor Time box. For more information, see the help topic Time Thresholds. Item Record Management NetSuite 2020.1 includes the following enhancement to item record management features:
- Inventory Costing Preferences Inventory Costing Preferences NetSuite 2020.1 does not allow you to access run costing after you create a transaction entry. NetSuite Administrators can still set the run costing frequency to Every Hour or Based on a Custom Schedule. Note: If there are test accounts that need the After Transaction Entry option for demonstration purposes, please contact NetSuite Professional Services. Inventory Management NetSuite 2020.1 includes the following enhancements to Inventory Management features:
- Supply Allocation Exceptions Management
- Partially Receive Transfer Order Fulfillment Quantities when Transfer is at Cost
- Warehouse Management System Enhancements
- Support for GS1 Bar Code Types
- Inbound Shipment Management Integration
- Multi-App Support
- Export and Import of Custom Mobile Processes
- SuiteScript Exposure of Warehouse Management Records
- Supply Chain Control Tower Enhancements Change Inventory Management 33
- Quality Management – High Volume Sampling
- Shelf-to-Sheet Inventory Count
- Warranty and Repairs Management Enhancements
- Support for Printing Shelf-to-Sheet Count Records Supply Allocation Exceptions Management In NetSuite 2020.1, Supply Allocation Exceptions Management is designed to help you make informed reallocation choices. To respond to supply shortages, you can review all sources of supply and order allocations to ensure that high priority sales orders ship complete and on time. 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. Exceptions on Demand Orders The Reallocate Order Items column has been added to the sales order page in the items subtab. This column displays a Reallocate link. When a supply order has allocated demand, a link is displayed in the Allocated Demand column. Clicking this link opens the Allocated Demand window. In the Allocated Demand window Reallocate Order Item column, clicking the Reallocate link opens the Reallocate Order Item page where you can reallocate items. Exceptions on Supply Orders When a supply order has allocated demand, the Allocated Demand column displays a link to the Allocated Demand window. You can click this link to open the Reallocate Order Item page where you can reallocate items. Change Inventory Management 34 Reallocate Order Item The new Reallocate Order Item window is available in NetSuite 2020.1. The new Reallocate Order Item window provides the following functionality:
- You can Generate Recommendations.
- Accept Recommendation and Reallocate to allocate the resources.
- The targeted Sales Order # is displayed in the Reallocate Orders Item page header.
- The Select Orders for Reallocation subtab displays possible source orders resources.
- The Affected Orders subtab displays a system recommended list of orders, resources, and order impact.
- The Allocated Supply subtab displays the available supplies to target and candidate orders after you allocate supplies. Change Inventory Management 35 The Order Page After you allocate resources, the original order page reopens to display the following:
- The updated Expected Ship Date.
- Empty Days Late and Reallocate Order Item fields.
- Updated Allocated Supply and Quantity fields. Partially Receive Transfer Order Fulfillment Quantities when Transfer is at Cost NetSuite 2020.1 Supply Chain Management enables you to receive a quantity that is less than the quantity on the fulfillment of a transfer order. 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. Supply chain management supports the following costing methods:
- Standard
- Average
- Group Average
- FIFO Note: Accounts with multi-book cannot partially fulfill a transfer order receipt when the transfer order is at cost. Warehouse Management System Enhancements Note: Use of the Warehouse Management System (WMS) feature requires that you install the SCM Mobile and Oracle NetSuite WMS SuiteApps. See the help topic NetSuite WMS SuiteApps. NetSuite WMS 2020.1 includes the following enhancements to existing functionality:
- 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. Change Inventory Management 36
- 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 - To improve the tracking, display, and sorting of wave transactions, NetSuite WMS now generates sequential wave numbers. 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. 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. NetSuite WMS 2020.1 introduces the following new functionality:
- Support for GS1 Bar Code Types
- Inbound Shipment Management Integration
- Multi-App Support
- Export and Import of Custom Mobile Processes
- SuiteScript Exposure of Warehouse Management Records Support for GS1 Bar Code Types NetSuite WMS 2020.1 supports the following GS1 bar code types:
- 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. Change Inventory Management 37 Inbound Shipment Management Integration Inbound Shipment Management Integration enables you to process inbound shipments for your warehouse. On a mobile device, you can receive items from inbound shipments, which updates the associated order and inbound shipment transactions. You can post item receipts manually or configure NetSuite to automatically generate item receipts for received orders. This integration introduces the Enable Receive All system rule for inbound shipments. You can receive all lots and serial numbers for items on which NetSuite populates the inventory detail on inbound shipment lines. 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. Export and Import of Custom Mobile Processes NetSuite WMS 2020.1 supports the export and import of custom mobile processes. You can export a mobile process that you customize. Then, you can also import the custom mobile process to another NetSuite account. When you configure an imported process, you can specify the roles that can access it on a mobile device. SuiteScript Exposure of Warehouse Management Records In NetSuite WMS 2020.1, the following records and transactions are exposed to SuiteScript 2.0:
- Wave transaction
- Pick task record
- Pick task strategy record
- Zone record
- Item family group record
- Item process group record You can create or update these records through CSV import, with the exceptions of wave transactions and pick task records. Supply Chain Control Tower Enhancements NetSuite 2020.1 provides the following enhancements to the Supply Chain Control Tower. 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. Change Inventory Management 38 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 these fields on location records:
- Vendor Predicted Days Late/Early — Default Value is 0 days
- Vendor Predicted Risk Confidence — Default Value is 100%
- Sales Order Predicted Days Late/Early — Default Value is 0 days
- Sales Order Predicted Risk Confidence — Default Value is 100%
- Transfer Order Predicted Days Late/Early — Default Value is 0 days
- Transfer Order Predicted Risk Confidence — Default Value is 100% Supply Chain Predicted Risks NetSuite 2020.1 provides a Supply Chain Predicted Risks feature that leverages NetSuite’s IntelligentSuite capabilities to make predictions for purchase orders and transfer orders. The predictions appear in the Predicted Risks portlet of the Supply Chain Control Tower. If the feature does not a trained model to make predictions, it uses the values specified in the location record. This feature requires a past history of data to be able to create a trained model from which predictions can be made. When the Supply Chain Predicted Risks feature is enabled, the following steps occur:
- The feature confirms that you have met the history thresholds. For purchase orders, this threshold is 500 purchase orders per vendor over the past two years. For transfer orders, this threshold is 500 transfer orders per location pair in the past two years.
- The feature begins training the model.
- When complete, the trained model is used to generate predictions.
- Predictions are available in the Predicted Risk portlet the day after a purchase order is created.
- The model is retrained every three months or when the feature is enabled. Supply Chain SuiteAnalytics Workbook NetSuite 2020.1 provides a Supply Chain Control Tower workbook that gives you access to key supply chain metrics and analytics. You can use the workbook to you can generate the standard pivot tables and charts, or customize them according to your business requirements. This workbook uses Past Due Transactions as the source, and includes the following data columns:
- 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. Change Manufacturing 39 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. Outsourced Manufacturing includes the following functionality:
- 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. Change Manufacturing 40 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. Assembly Build Helper The new Assembly Build Helper enables you to override existing production data, such as component quantity, lot and serial numbers, or bin–related information. Change Manufacturing 41 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. Actual Production Dates In NetSuite 2020.1, Actual Production Dates are automatically calculated by default for related work order transactions. Actual production dates are available in Assembly Builds for Standard Work Orders, Issue Components, and Work Order Completions for WIP Work Orders. This functionality is automatically available when you upgrade to 2020.1. 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,
- 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 Mobile features:
- iOS Push Notification Changes iOS Push Notification Changes In 2020.1, server-side updates have been made to the push notifications feature in NetSuite for iOS. To continue receiving push notifications to your devices, after your account has been updated to 2020.1, log in to your NetSuite for iOS app. This one-time action automatically applies the updated server configuration. No further action is required to continue receiving push notifications. Order Management NetSuite 2020.1 includes the following enhancements to order management features:
- Subscription Revisions
Change
Order Management 42
- Changes to Change Orders for Subscription Revisions
- New Accounting Preference Related to Advanced Revenue Management
- Automatically Extend Estimated Revenue Recognition End Date
- Multi-Subsidiary Customer Integration with Billing Accounts
- Set Subscription Charge Periods to Align with the Subscription Start Date
- Enhancements to Standard Roles and Permissions
- Search Enhancements
- Enhanced Visibility into Automatic Fulfillment Request Creation
- Create Automatic Fulfillment Requests on Expected Ship Date
- Improved Handling of Rejected Payments
- Visa Cards on File Mandate Compliance with Payment Instruments Enabled
- View Automation Usage Figures on the Billing Information Page
- Electronic Bank Payments Enhancements
- Grid Order Management Enhancements
- Subscription Billing Bulk Operations
- Pricing Interval UI Enhancements
- Add Interval to Multiple Subscription Lines
- Route Delivery
- Philippine Invoicing
- Auto Close Back Orders 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. You can see a subscription revision in the following records:
- 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: Change Order Management 43 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. Changes to Change Orders for Subscription Revisions A subscription revision saves the history of changes to subscriptions made using change orders. You can track contract and revenue changes made after activation to a specific change order. You also can track changed values over an entire contract term. 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. You cannot edit a voided change order. To revert a subscription line to Pending Activation status, you must void all its change orders. New Accounting Preference Related to Advanced Revenue Management You can use the new Create Revenue Elements for Subscription Revisions accounting preference to determine whether to create individual revenue elements for each subscription change order. When 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 Subtab 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. Change Order Management 44 Automatically Extend Estimated Revenue Recognition End Date You can now automatically extend the estimated revenue recognition end date when you create a new evergreen subscription. This improvement means that you can ensure an uninterrupted revenue stream from the subscription. You never need to manually extend the end date. To automatically extend the estimated revenue recognition end date for evergreen subscriptions, go to Setup > Accounting > Invoicing Preferences. On the Subscription Management subtab, locate the new invoicing preferences:
- Months To Extend Estimated Revenue Recognition End Date
- Months Prior To Estimated Revenue Recognition End Date To Initiate Auto-Extend 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. Multi-Subsidiary Customer Integration with Billing Accounts The Multi-Subsidiary Customer feature is now available for SuiteBilling. If you have billing accounts across subsidiaries, you can take advantage of all Multi-Subsidiary Customer features. For more information about this feature, see the help topic Multi-Subsidiary Customer Hierarchy. You can add secondary subsidiaries to customers after you complete these steps, in the following order:
- Enable SuiteTax. See Subscription Billing Bulk Operations.
- Enable Multi-Subsidiary Customer. See the help topic Enable the Multi-Subsidiary Customer Feature. 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. Set Subscription Charge Periods to Align with the Subscription Start Date The Align Charge Amounts with Subscription preference separates charge generation and the recurring charge pattern from the bill dates. You can now generate charges that align with the subscription start date rather than its bill dates. With prior NetSuite versions, the recurring pattern of a subscription line was always aligned with the next bill date, resulting in prorated charges and misaligned recurring charges across subscription lines. With the NetSuite 2020.1 release, all lines within a single subscription also now have a charge pattern aligned with the subscription start date instead of its bill dates. Multiple-year subscriptions with multiple charge frequencies (for example, monthly, quarterly, and annual) can now recur based on the subscription start date for better alignment of invoices. Change Order Management 45 When a subscription is in the draft or pending activation status and you set the preference, the subscription lines may display the original recurrence start date until you activate the subscription. You can set or clear the Align Charge Amounts with Subscription preference at any time. However, subscriptions have the recurrence pattern defined by the preference setting at the time of activation. For instructions, see Aligning Charge Amounts with the Subscription Start Date. Enhancements to Standard Roles and Permissions All roles have the following new viewing or editing permissions for the following records:
- 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 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:
- Advanced Partner Center
- CEO
- CFO
- System Administrator The System Administrator role provides full access to the subscription record. For instructions, see Granting Permissions to Subscription Records. The System Administrator role can set up standard pricing that cannot be modified through the following actions:
- Limit the number of users who can edit the subscription pricing
- Reduce the permissions to edit a specific price plan, subscription change order, or price book 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. Change Order Management 46 Search Enhancements Subscription and Subscription Change Order searches now have Default Renewal Subscription Plan and Default Renewal Price Book columns. Enhanced Visibility into Automatic Fulfillment Request Creation A new log is available in NetSuite 2020.1 that provides information on the creation of fulfillment requests. This log enables you to audit the automation process. You can view the log directly in Business Events Processing History, under the System Information subtab of a sales order. In addition, you can use the log data to create a saved search or a SuiteAnalytics workbook. For more information, see the help topic Fulfillment Request Creation. Create Automatic Fulfillment Requests on Expected Ship Date In 2020.1, NetSuite can automatically create a fulfillment request when an expected ship date is reached. This new option is on the Advanced Order Management Setup page. 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. Improved Handling of Rejected Payments Rejected payments no longer block invoices and no longer appear as usable credit. Visa Cards on File Mandate Compliance with Payment Instruments Enabled All merchants that process credit cards must comply with the new Visa Stored Credential Transaction framework. The framework includes mandates to identify the initial storage and subsequent use of payment credentials. The mandates apply to either a Visa card or a gateway token that represents a Visa card. If you enable the Payment Instruments features, and your gateway provider supports this feature, your Visa card processing through NetSuite becomes automatically compliant with the new Card on File mandate from Visa. Note that failing to comply with the Card on File mandate may result in penalties. View Automation Usage Figures on the Billing Information Page You can now view automation usage figures on the Billing Information page in your NetSuite account. Go to Setup > Company > NetSuite Account Information > View Billing Information to view the Billing Change Order Management 47 Information page. Usage figures are based on the number of automated sales orders created in your account with any of the following Advanced Order Management (AOM) processes:
- Automatic location assignment
- Automatic fulfillment request creation 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:
- Advanced Project Budgets Enhancements
- Advanced Project Profitability Enhancements
- Project Revenue Recognition Enhancements
- Preferred First Day of a Week Available for RACG Calendar Advanced Project Budgets Enhancements The Advanced Project Budgets feature now enables you to track costs and revenue and lets you define a fully customizable work breakdown structure within each budget. Advanced Project Budgets feature offers a better understanding of how to consume project budgets within individual projects and across projects. With Advanced Project Budgets, you can now:
- Generate budget vs. actual reports across multiple projects.
- Estimate costs based on items.
- Estimate costs based on project resources.
- Display actual costs which the work breakdown structure or budget does not include.
- Generate a budget cost burn chart.
- Display a progress bar for the forecasted margin in relation to the current budget.
- Display the total amounts of the budget in the total row.
- Edit a new version of the budget. NetSuite 2020.1 brings the following report updates:
- 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:
Change
Projects 48
- 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. Advanced Project Profitability Enhancements NetSuite 2020.1 includes enhancements to the Advanced Project Profitability feature. If you have the Administrator role, you can now select whether to recalculate financial data once or periodically. Go to Setup > Accounting > Project Profitability > Performance to set preferences for cache, recalculation, and pre-filter of financial data. The following additional enhancements include:
- 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. Project Revenue Recognition Enhancements In NetSuite 2020.1, a new warning appears to indicate incorrect combinations of charge-based billing and project revenue recognition rules. 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. Vendors, Purchasing, and Receiving NetSuite 2020.1 includes the following enhancements to the vendors, purchasing, and receiving features: Change Vendors, Purchasing, and Receiving 49
- Associate Vendor Prepayments with a Purchase Order
- Automatic Application of Vendor Prepayments
- Vendor Prepayments Enhancements
- Vendor Bill Approvals in the Employee Center Associate Vendor Prepayments with a Purchase Order As of NetSuite 2020.1, you can associate one or more vendor prepayments with a purchase order. You can associate a purchase order and a vendor prepayment in one of two ways:
- 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. Automatic Application of Vendor Prepayments When you associate a vendor prepayment with the corresponding purchase order, you can configure NetSuite to automatically apply the vendor prepayment to the vendor bills using the new Auto-Apply Vendor Prepayments accounting preference. When you set this new preference, you do not need to manually apply vendor prepayments to bills. The Auto-Apply accounting preference records the vendor prepayment application automatically in the background. For stand-alone prepayments with no associated purchase order, you must complete the application manually. The following diagram shows the different options when applying vendor prepayments: 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 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. Vendor Prepayments Enhancements The core Vendor Prepayments functionality is improved and extended in NetSuite 2020.1. You can now use the NetSuite Advanced PDF and HTML feature to print and customize vendor prepayment vouchers. Change Vendors, Purchasing, and Receiving 50 You can create custom vouchers using the NetSuite Template Editor, print vouchers in PDF format, or attach vouchers in your communications using the Communication subtab. Additionally, Vendor Prepayments in NetSuite 2020.1 includes:
- Overall usability improvements.
- Support for Custom GL Lines. For more information, see the help topic Custom GL Lines Plug-in Overview.
- Improved validations to minimize errors when multiple users work with vendor prepayments concurrently.
- Exposure of Vendor Prepayment records in SuiteScript. For more information, see the help topic Transactions in the SuiteScript Records Guide. Vendor Bill Approvals in the Employee Center Previously, users with the Employee Center role could not approve vendor bills. As of NetSuite 2020.1, the Employee Center role includes the necessary permissions to review and approve vendor bills. These permissions are:
- Bills – Grants users the permission to view vendor bills.
- Vendor Bill Approval - Grants users the permission to approve or reject vendor bills. 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 Vendor Bill Approvals in the Employee Center. Taxation NetSuite 2020.1 includes the following enhancements to taxation features:
- SuiteTax Support for Non-Claimable Reverse Charge Tax Types
- Portugal Tax Audit Files Field Mapping Page Update
- Philippines Certificate of Creditable Tax Withheld at Source (Form 2307) Update
- Cyprus VAT Return Enhancement
- Singapore Goods and Services (GST) F5 Return Update
- Germany VAT Return Update
- Tax Reporting Category for Country Tax Reports
- Tax Reporting Category Support for Australia and Philippines Tax Reports
- Tax Point Date Support for SuiteTax Reports
- JAPAC Support for SuiteTax Reports
- EMEA Tax Audit Files Support for SuiteTax Reports
- SuiteTax Support for Tax Groups Change Taxation 51
- Belgium Localization
- EMEA Localization
- Netherlands Localization
- New Simplified India GST Tax Return Reports
- Sweden Tax Reports
- United Kingdom Localization SuiteTax Support for Non-Claimable Reverse Charge Tax Types In NetSuite 2020.1, a new non-claimable reverse charge tax type is available to ensure that both reverse charge and post to item cost can be selected on the same tax type. 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 Non-Claimable Reverse Charge Tax Type. User Interface NetSuite 2020.1 includes the following enhancements to the NetSuite User Interface:
- Submit an Advanced Customer Support Case Through SuiteAnswers
- Help Center Available in Chinese
- Advance Notice: Microsoft Internet Explorer 11 End of Support Submit an Advanced Customer Support Case Through SuiteAnswers You can now raise an Advanced Customer Support (ACS) case directly from SuiteAnswers. You can submit a case by clicking the Contact ACS Support Online button on the right of the home page under Submit a Case. When you submit a case, you can select one of the following product areas:
- SuiteCloud
- SuiteCommerce
- POS | SCIS
- ERP
- CRM | SFA
- OpenAir Change User Interface 52 After you fill in all of the required fields and provide a detailed description, you can review and update your created case in the NetSuite Account Center. For more information about contacting ACS, see the SuiteAnswers article Submitting an Advanced Customer Support Case (ID 89362). Help Center Available in Chinese In addition to German, English (U.S.), Japanese, and Spanish (Latinoamérica), the Help Center is now also available in Chinese. To change the Help Center language, click the current language in the upper right corner of the Help Center page and select a language from the list of available languages. Note: The language preference for the Help Center is independent of the language preference specified for the NetSuite user interface. Advance Notice: Microsoft Internet Explorer 11 End of Support As of 2020.2, the NetSuite application will no longer support Microsoft Internet Explorer 11 or its rendering engine embedded in other browsers. Users will still be able to log in to NetSuite using Internet Explorer 11. However, support will not be offered for defects specific to this browser or its rendering engine. If you are using Microsoft Internet Explorer 11, you should switch to another supported browser. Users relying on enterprise features of the browser are encouraged to discuss options with their respective vendors. For more information, see the help topic Supported Browsers for NetSuite. Commerce Applications Release notes for the 2020.1 release of SuiteCommerce and SuiteCommerce Advanced will be published at a future date. See the help topic 2019.2 Release of SuiteCommerce and SuiteCommerce Advanced for release notes on the current release. Commerce Extensions Commerce Extensions provide additional functionality to your Commerce web store. Complete release notes are available here: Commerce Extensions Release Notes. Important: Commerce Extensions are only available if they are provisioned and set up in your account. For more information, see the help topic Commerce Extensions. Site Management Tools This version of SuiteCommerce Site Management Tools includes the following enhancements:
- SMT UX Sustainability Change Site Management Tools 53
- Sass Pre-Processor Enhancements SMT UX Sustainability This release enables browser bar navigation when you are logged in to Site Management Tools. This lets the forward and backward buttons of the browser function properly so you can browse your own history in the SMT screens. The SMT admin URL is always visible and editable. With the switch to route-based screens, you can now share URLs to direct screens in SMT instead of being taken to the home page immediately after you log in. The base markup for the frame, sidebar, and toolbar are updated to reduce the overall amount of code used. Sass Pre-Processor Enhancements The Sass precompiler enables server-side Sass compiling for extension activation. This lets SuiteCommerce display previews of the theme skin variables while you are logged in to Site Management Tools. You can view the changes to the theme skin variables as you make the changes. The edits you see are a preview only and a full rebuild is done to the site when requested or after an idle timeout. Commerce Merchandising NetSuite 2020.1 includes the following enhancements to commerce merchandising features:
- Improved Process for Applying Merchandise Hierarchy Attributes to Items
- Merchandise Hierarchy Visual Layout Enhancements
- Standard Merchandise Hierarchy SuiteAnalytics Workbook Improved Process for Applying Merchandise Hierarchy Attributes to Items In NetSuite 2020.1 we have improved the process for applying attributes to items in a merchandise hierarchy. Now users can apply attributes directly to a selected item in the Hierarchy Manager without using a mass update. For more information, see the help topic Applying Attributes to Items in a Merchandise Hierarchy. Merchandise Hierarchy Visual Layout Enhancements We have introduced navigation improvements to the visual hierarchy tree in the Hierarchy Manager for NetSuite 2020.1. The new navigation features make it easier for users to view and move around their entire hierarchy tree structure. Users can now:
- Collapse and expand branches of the hierarchy tree
- Activate an overview map that displays their location within the hierarchy tree
- Retain their point of reference in the tree after performing an update to the hierarchy structure For more information, see the help topic The Hierarchy Manager. Change Commerce Merchandising 54 Standard Merchandise Hierarchy SuiteAnalytics Workbook From NetSute 2020.1 we have provided a new preconfigured standard Merchandise Hierarchy workbook in SuiteAnalytics. This workbook lets you analyze sales and inventory performance at both product category and attribute level. Furthermore, it can be accessed directly from the Hierarchy Manager. For more information, see the help topic Using Merchandise Hierarchy to Analyze Sales and Item Performance. Commerce Platform Commerce Platform includes platform capabilities that you can use to build and deploy a more interactive and engaging shopping experience for customers. NetSuite 2020.1 includes the following enhancements:
- New Domains Setup Procedure
- Redirect URL Domain Enhancements
- Creating and Editing Web Sites by Type
- Adding Items to Item Collections using Saved Searches
- Creating Item Collections using CSV Import
- Introducing Web Store Order Workbook Template
- Update to Commerce Elevated Permission Framework
- Account-Specific Domains for Marketing Campaigns and Online Forms
- System Email Template Customization
- Commerce Category Customer Segment Assignment
- Commerce Category Multi-Language Support New Domains Setup Procedure The Domains Setup form has been redesigned to simplify setting up domains for web stores. The new process lets you select the type of domain you want to set up and then displays a form with the essential fields required for that domain type. Advanced domain setup options are also available. For information on how to set up different types of domains, see the help topic Set Up a Web Store Domain. Redirect URL Domain Enhancements The following enhancements have been made to the Redirect URL domain type:
- Secure Redirect URL Domains - Prior to 2020.1, if a redirect domain was set up for a secure domain, visitors to the secure domain were redirected to an unsecure domain. From 2020.1 onwards, the Redirect URL domain type can be set to be a secure domain. For example: Prior to 2020.1:https://www.olddomain.com would redirect to http://www.newdomain.com 2020.1 onward:https://www.olddomain.com redirects to https://www.newdomain.com
- Option to preserve file path and parameters - The second enhancement to Redirect URL domains is that it is now possible to preserve the original path requested by the website visitor when redirecting them to the Redirect URL domain. Prior to 2020.1, regardless of the original path requested, redirection was done to the main Redirect URL domain. For example: Change Commerce Platform 55 Prior to 2020.1:https://www.olddomain.com/product-a would redirect to http:// www.newdomain.com 2020.1 onward:https://www.olddomain.com/product-a?param=1 can redirect to https:// www.newdomain.com/product-a?param=1 or http://www.newdomain.com, depending on the selected option Preservation of the file path and parameters is an optional feature activated using the Include File Path and Parameters in the Redirect checkbox on the domain setup form. Creating and Editing Web Sites by Type This new 20.1 feature enables you to to filter and to create sites based on the selected type or Commerce web store product offering. Each web site record is now associated to a specific type, and can be filtered accordingly. As a result, only the specific filtered sites are displayed across the system in lists, dropdown menus, etc. Previously, Commerce web sites could only be filtered as either belonging to Site Builder or to SuiteCommerce Advanced. With the introduction of this new feature, you can create, edit, and update your site based on the selected Edition:
- Site Builder
- Advanced (this includes SuiteCommerce, SuiteCommerce Advanced, SuiteCommerce My Account, SuiteCommerce InStore) To use this feature, you must have the relevant Commerce product enabled for your account. Once the feature is enabled, you can use it by going to Setup > Site Builder / SuiteCommerce Advanced > Web Site Set Up. For information on the available site types, see Commerce Web Site Types. Adding Items to Item Collections using Saved Searches From 2020.1 onwards, you can create dynamic item collections and assign items to them using saved searches. Every time an item meets the saved search criteria, it is automatically added to the item collection. For example, you can set search criteria to create an item collection of all items manufactured by a particular company. When a new item manufactured by the company is added to the item catalog, the item automatically becomes a member of the dynamic item collection. If the manufacturer discontinues an item and the item is removed from the item catalog, that item is removed from the item collection automatically. Another change to item collections is that creating an item collection and adding items to it is now a single step process. For more information on creating dynamic item collections, see the help topic Creating Item Collections. Creating Item Collections using CSV Import CSV imports are now available for static item collections. Creating a static item collection using CSV Import is a two step process because you must import item collections and the item collection members separately. Item Collection records and Item Collection-Item Map records are linked together using the Item Collection External ID which ensures that the correct items are mapped to the correct item collection. Change Commerce Platform 56 Note: It is essential that the CSV import file for Item Collection-Item Map contains the related Item Collection External ID in the correct format. For a template and instructions on how to create the file correctly, see the help topic Item Collection Item Map. The following CSV import types are available:
- Item Collection - this creates an Item Collection record for each item collection listed in the CSV import file.
- Item Collection-Item Map - this creates an Item Collection-Item Map record for each item collection. Note: CSV imports are not available for dynamic item collections and their members. For more information on creating item collections using CSV imports, see Item Collections CSV Import. Introducing Web Store Order Workbook Template As part of 20.1 release, NetSuite is making a new workbook template available for SuiteAnalytics users. The workbook template is named Web Store Orders, and it helps track and retrieve data regarding the items that were ordered through a web store. Furthermore, workbook users can also analyze which items have been purchased in which site. As such:
- The Web Store Order report provides an overview on the items ordered through the web store. It shows transactions which were submitted from the web store and groups them by item name.
- The Customers Ordering Items report provides visibility into customers and the items they ordered.
- The Items Ordered by Customers report helps visualize the items that were ordered.
You can access this workbook template by going to Analytics > Standard Workbooks > Web Store Orders.
For more information on how to use this workbook template, see Web Store Order Workbook Template.
Update to Commerce Elevated Permission Framework
Elevated permissions enable .ss and .ssp files to access records that are not normally available for
execution by the Anonymous Shopper role. In 2020.1, the list of records for which elevated permissions
are available has been optimized.
For more information on elevated permissions, see the help topic Link Website Customizations to
User Roles (SuiteScript 1.0) or Link Website Customizations to User Roles (SuiteScript 2.1). For a list of
supported records, see Records Supported by Elevated Permissions Framework.
Account-Specific Domains for Marketing Campaigns and
Online Forms
In the past, NetSuite domains were always specific to the data center where your account was hosted.
Links in online customer, case, and customer forms pointed to these data center-specific domains.
Similarly, links in marketing templates also pointed to the data center-specific domains. These data
center-specific links have made it difficult to seamlessly move NetSuite accounts among different data
centers.
Change
Commerce Platform 57
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
. .netsuite.com, where is a variable that represents your NetSuite account ID, and 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. System Email Template Customization In the 20.1 release, System Email Templates (SETs) receive an updated interface that provides a more intuitive way for customizing templates. In previous releases, you were able to customize SETs by clicking Edit on the SETs list. The name of this button has now been updated to Customize. In addition, a Customize button has been added to standard SETs. You can access the SET customization feature by going to Setup > Company > Email > System Email Templates (in administrator mode) and pressing Customize next to the email you want to customize. For more information on how to customize SETs, see the help topic Customizing Templates for System- Automated Email. Commerce Category Customer Segment Assignment With Personalized Catalog Views enabled, this feature lets you directly associate a category with a customer segment from the category form. Previously, you had to use the Customer Segment Manager in NetSuite administration to create the associations. Now there is a tab on the commerce category form in NetSuite administration that lets you assign the category to one or more customer segments. For more information on using Personalized Catalog views, see the help topic Personalized Catalog Views. For more information on using Customer Segment Assignment, see Commerce Category Customer Segment Assignment. Commerce Category Multi-Language Support The 2020.1 release adds the ability to use multiple languages for commerce categories and subcategories. There is a language selector at the top of the edit form that lets you select which language you want to edit. On this form, only the translatable fields display when a language other than the company base language is used. There is a domain switcher on the toolbar that displays all domains associated with the website, grouped together by language. If the multi-language features are not in use, the domains are listed in a single, ungrouped list. Change Commerce Platform 58 For more information, see Commerce Category Multi-Language Support. SuiteCommerce InStore SuiteCommerce InStore (SCIS) uses a phased release process to distribute managed-bundle upgrades. Each phase consists of a different group of customers that receive the latest SCIS release. Administrators set up for customers within a phased group receive an email notification listing when their upgrade will occur. Note: Contact your account representative or Customer Support if you have questions about the availability of SCIS 2020.1. This SCIS release provides behind-the-scenes performance improvements and new Application Performance Management (APM) sensors. New APM Sensors We added the following sensors to assist you with monitoring and managing performance at the SCIS point of sale. - Display add customer form — Lists the time used to prepare and display a form for adding a new customer. Begins when sales associate taps option to add new customer. Ends when customer form displays.
- Apply line-item discount, cart ready — Measures the time used to add a discount to an item in the cart. Starts when sales associate applies the discount from the discount form. Ends when the associate can resume interacting with the cart.
- Retrieve transaction from scan — Displays the time spent retrieving transaction information via a NetSuite search initiated by SCIS. Begins when sales associate scans transaction code on receipt. Ends when SCIS receives the information from NetSuite.
- Display retrieved transaction — Shows the time used to display scanned-transaction information retrieved from NetSuite, Begins when information is made available to SCIS. Ends when SCIS displays the information to the sales associate.
- Display store transaction history — Measures the time required to display a transaction from the store’s history option. Begins when sales associate taps option to display history and ends when the transaction list displays.
- Begin return from transaction details — Displays the time spent preparing a return from transaction details. Starts when sales associate initiates return from transaction details. Ends when return form opens and associate can begin selecting return options. Associate can start return via receipt scan, transaction history list, or customer timeline. SuiteApp Distribution SuiteApp distribution includes SuiteBundler and SuiteApp Marketplace capabilities that you can use to distribute customizations to accounts. View the SuiteApp Distribution Mechanism 2020.1 New Feature Training. NetSuite 2020.1 includes the following changes:
- Bundle Support During Release Phasing Change SuiteApp Distribution 59
- SuiteApp Control Center Now Generally Available
- New SuiteApp Marketplace Available for Distributing SuiteApps
- Localization Context Filtering Supported for Scripts in Bundles
- Translatable Field References to Terms in Translation Collections Supported in Bundles
- SuiteBundler Support Updates Bundle Support During Release Phasing Bundle support during phasing of 2020.1 is consistent with the support provided during previous releases. During phasing of 2020.1, some accounts continue to use 2019.2 at the time that other accounts are upgraded to 2020.1. Therefore, you may be using a different version than some of the accounts where your bundles are installed. Review the descriptions below for a reminder of how bundles from different versions are handled during release phasing.
- Bundles developed with 2019.2 can be installed in accounts that are already using 2020.1.
- Bundles developed with 2020.1 can be installed in accounts that are still using 2019.2, but note the
following limitations:
- When a user in a 2019.2 account installs a bundle from a 2020.1 account, the bundle installation stops if there are object types in the bundle that are not supported in 2019.2.
- A bundle with a script that uses a new API available only in 2020.1 can be installed into a 2019.2 account, but the script may not function correctly because 2019.2 does not support the API. SuiteApp Control Center Now Generally Available In NetSuite 2020.1, SuiteApp Control Center is now generally available for defining and managing your SDF SuiteApp distribution process in a single location. If you are a SuiteApp release manager, you can deploy SuiteApp projects to the SuiteApp Control Center and distribute them to users as SuiteApp releases in the SuiteApp Marketplace. You can set the SuiteApp Marketplace availability for a SuiteApp to one of the following:
- Public – All NetSuite customers can view and install the SuiteApp.
- Shared – Only specific companies can install the SuiteApp. When the availability is set to Shared, all NetSuite customers can still view the SuiteApp.
- Unlisted – Only specific companies can view and install the SuiteApp. For more information about setting SuiteApp availability, see the help topic Setting SuiteApp Listing Access. The Allowed Accounts list is a single location that is shared between Shared and Unlisted SuiteApps. The Allowed Accounts list specifies which company accounts can install the Shared and Unlisted SuiteApps. Additionally, upgrades can be pushed only to company accounts that are listed in the Allowed Accounts list. For information on how to add company accounts to the Allowed Accounts list, see Managing Allowed Accounts for Shared and Unlisted SuiteApps. To make a SuiteApp available to users for installation in the SuiteApps Marketplace, the SuiteApp must have an application ID in the Advanced Partner Center (APC) record and must have completed both a listing review and a Built for NetSuite (BFN) review. For more information about the requirements for distributing SuiteApps in the SuiteApp Marketplace, see the help topic Requirements for SuiteApp Listing Availability. Change SuiteApp Distribution 60 New SuiteApp Marketplace Available for Distributing SuiteApps As of 2020.1, the SuiteApp Listing page has been replaced with the new SuiteApp Marketplace. You can use the SuiteApp Marketplace to find and install SuiteApps created using SuiteCloud Development Framework. The SuiteApp Marketplace is currently available to Administrators and users with the SuiteApp Marketplace permission. To access the SuiteApp Marketplace, go to Customization > SuiteCloud Development > SuiteApp Marketplace. The following screenshot shows how SuiteApps are listed in the SuiteApp Marketplace: You can view all public and shared SuiteApps in the SuiteApp Marketplace. Each SuiteApp is represented by a SuiteApp tile that contains the SuiteApp name, publisher, and first release date. Users can also sort the SuiteApp tiles by SuiteApp Name, Publisher, or Latest Release Date. Change SuiteApp Distribution 61 Click a SuiteApp tile to view the details of the SuiteApp. The following screenshot shows the SuiteApp details page for a SuiteApp in the SuiteApp Marketplace: To learn about the information that is available on the SuiteApp details page for each SuiteApp, see the help topic Viewing SuiteApp Listings. Users can perform the following actions in the SuiteApp Marketplace:
- Install SuiteApps that are shared to their account and support their NetSuite account version. For more information, see the help topic Installing from the SuiteApp Listing Page.
- Upgrade SuiteApps that have been installed in their account when a new SuiteApp version is available. For more information, see the help topic Upgrading from the SuiteApp Listing Page.
- View the status of a SuiteApp after an install, upgrade, or uninstall has initiated. Users can view only some states of the SuiteApp in the SuiteApp Marketplace. For more information on the states that can appear on the SuiteApp details page of the SuiteApp Marketplace, see the help topic Viewing SuiteApp Installation or Uninstallation Status. To view and uninstall SuiteApps obtained from the SuiteApp Marketplace, go to Customization > SuiteCloud Development > Installed SuiteApp List. For the desired SuiteApp, select Uninstall from its action menu. Localization Context Filtering Supported for Scripts in Bundles As of 2020.1, localization context filtering is supported for SuiteScript 2.0 user event and client scripts included in bundles. If a script included in a bundle has localization context filtering set up, that filtering works in all target accounts where the bundle is installed. Change SuiteApp Distribution 62 A record’s localization context represents the country or countries associated with that record. Localization context filtering is set up in the Localization Context field on the Context Filtering subtab of the script deployment record. This setting controls the records on which user event and client scripts run, based on the localization context of the records. For example, if a script has the localization context of France set on its deployment record, it runs only on records that have a localization context of France. It does not run on records with other localization contexts. For more information about localization context filtering, see:
- Introducing Localization Context – User Event and Client Script Association
- Determining the Localization Context
- Localization Context Filtering for SuiteScript 2.0 For information about using the Bundle Builder to bundle SuiteScript objects, see the help topic Objects Available in Customization Bundles. Translatable Field References to Terms in Translation Collections Supported in Bundles When you bundle custom objects that contain translatable fields with references to terms in Translation Collections, those translation collections are also included in the bundle. For information about translatable fields, see Translatable Fields Support and Translation Collections as XML Definitions. SuiteBundler Support Updates Note the following changes to SuiteBundler support in 2020.1: Newly Supported Notes SuiteBundler Object Expense Sublist on Expense You can include workflows on the Expense sublist for expense report record in Report bundles. For more information about the Expense sublist, see Support for Expense Sublist on Expense Report. For information about adding workflow custom objects to bundles, see the help topic Bundling a Workflow. Financial Institution You can include Financial Institution Connectivity plug-in custom objects in bundles. Connectivity Plug-in The plug-in provides a way for NetSuite to use the Financial Institution Connectivity API to directly connect customers to a specific financial institution. For information about customizing and using the Financial Institution Connectivity plug-in, see Financial Institution Connectivity API. For information about adding custom objects to bundles, see the help topic Objects Available in Customization Bundles. Sales and Purchase Custom You can include sales and purchase custom transaction types in bundles. For Transactions information about sales and purchase custom transactions in NetSuite, see Sales and Purchase Custom Transactions Available and Sales and Purchase Transaction Types Overview. For information about including custom transaction types in bundles, see the help topic Custom Transaction Types in Bundles. Change SuiteBuilder - Customization 63 SuiteBuilder - Customization NetSuite 2020.1 includes the following enhancements to SuiteBuilder features:
- Sales and Purchase Custom Transactions Available
- System Notes v2 Page Available for Custom Transaction Configuration and Roles and Permissions
- Account–Specific Domains Supported in Custom Fields and Custom Center Links
- New Languages Supported in Advanced Printing Templates
- Updates to Third-Party Libraries Used in Advanced Printing
- Improvements to Error Messages and Handling of Corrupted Custom Segments Sales and Purchase Custom Transactions Available NetSuite 2020.1 extends custom transactions flexibility with the addition of two new custom transactions types: sales and purchase. With sales and purchase transaction types, you can create custom transactions similar to invoices, cash sales, credit memos, vendor credits, bills, and more. You can utilize most of the standard sales and purchase transactions functionality like the Items sublist, taxes (SuiteTax only), and revenue recognition. You can also include your name and define numbering sequences and permissions for your custom transactions. If you have the Custom Transactions feature enabled on your account, the new sales and purchase custom transaction types are available. For more information, see the help topic Enabling the Custom Transactions Feature. Sales and purchase custom transaction types enable you to:
- Comply with local requirements, such as those in Latin America (e.g. demonstrations and goods for repair) or JAPAC (e.g. adjustment invoices).
- Comply with expectations of specific business verticals, such as not–for–profit (e.g. donations and grants).
- Create solutions designed for specific types of customers. Sales and Purchase Custom Transactions Support Sales and purchase custom transaction types provide the functionality of standard sales and purchase transactions. Change SuiteBuilder - Customization 64 New Accounting Subtab A new Accounting subtab is available on the Custom Transaction Type page. Use the Accounting subtab to enter all relevant information for defining the GL impact (main line account) of the transaction. You can perform line-level adjustments using the Custom GL Lines plug-in. For more information, see the help topic Custom GL Lines Plug-in. Sales and Purchase Custom Transaction Instances When creating sales and purchase custom transaction instances, you can apply promotions, gift certificates, discounts, revenue recognition, amortization schedules, installments and more. System Notes v2 Page Available for Custom Transaction Configuration and Roles and Permissions System Notes v2 is available for custom transaction type configuration, and roles and permissions configuration. System Notes v2 captures details, including changes to sublists, and groups the changes using summary actions. The audit trail enables you to see the types of changes performed on record fields, such as create, update, change, and so on. You can also see the date and time each change was performed and by whom. System Notes v2 also retains information for deleted transactions and records. In System Notes v2, changes are listed in reverse chronological order, with the most recent changes at the top of the page. The System Notes page shows information about the level of actions that have been performed. Details of the action are grouped underneath and can be expanded and collapsed for viewing. This condensed format reduces the amount of data first displayed when you browse the audit trail so that you can track or investigate the history. Note: System Notes v2 and System Notes are separate systems. There is no change to the existing System Notes. As of 2020.1, System Notes v2 captures audit trail information for custom transaction type and roles and permissions configuration pages. To view information about changes made to roles and permissions prior to 2020.1, use the System Notes subtab on the role record. Viewing System Notes v2 To access System Notes v2, click System Notes located in the top right of the following pages:
- Custom Transaction Type
- Role
System Notes v2 groups audit data by action as shown in the following example.
Change
SuiteBuilder - Customization 65
Viewing System Notes v2 from a SuiteAnalytics Workbook
You can use the System Notes v2 workbook available in SuiteAnalytics Workbook to view and analyze
system notes for custom transaction type and roles and permissions configuration. The System Notes v2
workbook is available in every account. To create a custom SuiteAnalytics workbook, select the System
Notes v2 Workbook dataset in SuiteAnalytics Workbook. For more information, see the help topic System
Notes v2 (Beta) Workbook.
Account–Specific Domains Supported in Custom Fields and
Custom Center Links
NetSuite 2020.1 introduces account-specific domains in custom fields and custom center links. You
should use account–specific domains instead of data center-specific URLs.
Previously, NetSuite domains were specific to the data center where your account was hosted. Links in
custom fields and custom center links used these data center–specific domains. NetSuite domains are no
longer specific to data centers. Instead, they are account–specific domains, which are domain specific to
your account, not to the data center where the accounts are hosted. For more information, see the help
topic URLs for Account-Specific Domains.
The account–specific domains feature automatically translates current data center–specific URLs to
the appropriate account–specific domain URLs. For example, a system.eu2.netsuite.com link in your
custom center automatically becomes
.app.netsuite.com, where 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 New Languages Supported in Advanced Printing Templates The following languages are now available to use with Advanced PDF/HTML Templates: - Hebrew Change SuiteBuilder - Customization 66
- Armenian
- Bengali
- Gujarati
- Hindi
- Marathi
- Kannada
- Tamil
- Telugu For more information about languages available for advanced printing, see the help topic Languages for Printed Forms that Use Advanced Templates. Updates to Third-Party Libraries Used in Advanced Printing Advanced PDF/HTML templates now use updated versions of the BFO library and CKEditor for additional stability and security.
- The BFO library has been updated to version 1.1.70.
- CKEditor has been updated to version 4.12.1. For more information, see the help topic Third-Party Notices and Licenses. Improvements to Error Messages and Handling of Corrupted Custom Segments A custom segment can sometimes become corrupted if any of its required components are missing. A completely defined custom segment must contain one custom record component, and one each of the following five custom field component types: Body, Column, Entity, Event, and Item. For information about the components of a custom segment, see the help topic Creating a Custom Segment. If any components are missing from the custom segment, you receive a segment corrupted error on the Custom Segment configuration page. However, you can continue to use the custom segment configuration page with limited operations available. As of 2020.1 if you installed a custom segment from a bundle and it is damaged, you can reinstall the bundle to correct the error. If you created a custom segment manually and it is damaged, delete the custom segment definition and recreate it. When you edit the definition of a corrupted custom segment, only the Cancel button is available. Depending on your permissions, the Delete button might also be available. If a form or applied record accesses a corrupted custom segment, you can save or view the record without the custom segment value. For more information, see the help topic Adding a Custom Segment to a Bundle. SuiteAnalytics NetSuite 2020.1 includes the following enhancements to SuiteAnalytics: Change SuiteAnalytics 67
- Dataset Separation in SuiteAnalytics Workbook
- New Date Filters for SuiteAnalytics Workbook Pivot Tables and Charts
- New Table View Tab in SuiteAnalytics Workbook
- Idle Session Timeout for SuiteAnalytics Connect
- 2020.1 Connect Browser Dataset Separation in SuiteAnalytics Workbook Prior to 2020.1, you defined, visualized, and analyzed your workbook source data in a single workbook object. As of 2020.1, workbooks and datasets exist as separate objects, each with their own respective owners and accessibility rights. In a dataset, you define your workbook source data by selecting record types, fields, and criteria for further analysis in a workbook. Conversely, in a workbook you visualize and analyze your data using tables, pivot tables, and charts. Separating workbooks and datasets enables you to connect a single dataset to multiple workbooks, reducing the number of redundant workbooks in your account and preventing data discrepancies. Only dataset owners and users with administrator permissions can edit the datasets in your account. Any changes to a dataset are automatically propagated to the connected workbooks. Furthermore, you can now create workbooks using any of the existing datasets that you have access to in your account. This saves you time during the workbook authoring process and enables less experienced users to create complex workbooks. To support this feature, the following enhancements have been made throughout SuiteAnalytics Workbook:
- Workbook Accessibility Changes
- Analytics Home Page Updates
- New Authoring Workflows
- New Table View
- Changes to Migrated Workbooks Workbook Accessibility Changes Like in previous releases, your access to a workbook depends on the features enabled in your account, the role you use to log in to NetSuite, and the permissions assigned to you. In 2020.1 however, you must also have access to a dataset before you can a workbook that uses the dataset. Only the owner of a dataset or a user with administrator permissions can give you access to a dataset that you did not create. If you are an administrator, or if you have the Analytics Administrator permission, you can access, edit, and delete any workbooks or datasets in your account. For more information about accessing workbooks and datasets, see the help topic Accessing and Sharing Workbooks. For more information about the Analytics Administrator permission, see the help topic The Analytics Administrator Permission. Analytics Home Page Updates The Analytics Home page has been redesigned to display both datasets and workbooks. Change SuiteAnalytics 68 From this page, you can create new workbooks and datasets, or share, edit, and delete any of the workbooks or datasets that you own. If you are an administrator or if you have the Analytics Administrator permission, the Analytics Home Page displays all workbooks and datasets in your account. For more information, see the help topic Workbook Listing Page. New Authoring Workflows In 2020.1, you can create workbooks based on any of the existing datasets that you have access to. If you are an administrator or if you have the Analytics Administrator permission, you can create workbooks based on all the datasets in your account. Furthermore, although workbooks and datasets now exist as separate objects, you can still make changes to a dataset from within a workbook. Additionally, when you make those changes, you can now preview the effect of your edits throughout the workbook before you save them. For more information, see the help topic Custom Workbooks. New Table View If you want to explore your workbook source data without accessing or editing the connected dataset, you can use the new Table View component. For more information, see New Table View Tab in SuiteAnalytics Workbook. Changes to Migrated Workbooks Any workbooks you created prior to 2020.1 have been migrated as two separate dataset and workbook objects. The data and selections you made within your workbooks is unchanged, however the Dataset tab now exists as its own dataset object and as a Table View within the workbook object. For more information, see the help topic Custom Workbooks. New Date Filters for SuiteAnalytics Workbook Pivot Tables and Charts In 2019.2, SuiteAnalytics Workbook introduced new filtering options for pivot tables and charts, such as the ability to filter the top or bottom results based on a specific measure. Change SuiteAnalytics 69 In 2020.1, SuiteAnalytics Workbook adds support for filtering results using date conditions. You can base these conditions on specific dates or custom date ranges. For more information, see the help topic Pivot Table and Chart Filters. New Table View Tab in SuiteAnalytics Workbook In 2019.2, you could create multiple charts and pivot tables in a workbook, but you were limited to one Data Grid. This limitation meant that any changes made in the Data Grid would impact all workbook components. Therefore, you could not use the same dataset to explore different combinations of fields, filters, and sorting options in a single workbook. To do so, you had to re-create the dataset in a new workbook. In 2020.1, you can use the new Table View to explore your datasets without altering the source data of any associated workbooks. You can also add multiple Table Views in a single workbook, which lets you try different combinations of fields, filters, and sorting options. Using the Table View does not require complex customizations. Table Views enable you to view your data without having to set a layout or define fields from joined records or custom formulas. To create a Table View, drag the fields from the Fields list to the Table Viewer. After you add the fields to the Viewer, you can filter and sort them as needed. Viewing your data on a Table View can be helpful to decide how to build your charts and pivot tables. As with charts and pivot tables, you can also rename each instance of the Table View in your workbooks. The icons for the three workbook components are as follows:
- Table Views are represented by the icon.
- Pivot Tables are represented by the icon.
- Charts are represented by the icon. Idle Session Timeout for SuiteAnalytics Connect As of 2020.1, SuiteAnalytics Connect enforces idle session timeout policies to enhance the security of your connections and optimize system resources. After 90 minutes of inactivity, SuiteAnalytics Connect sessions automatically time out. The idle session timeout change is available for testing in 2020.1 Release Preview accounts when your Release Preview account is ready to use. For details about Release Preview, see the help topic Release Preview Availability. If you exceed the time limit of inactivity, you are logged out of your session. To access the Connect Service, you must log in again. Note: The time during which a query is running is not considered time of inactivity. You should always close all sessions that you are not using. As of 2020.1, sessions automatically time out after 90 minutes of inactivity. The time limit will be set to a lower value in an upcoming release. The idle session timeout applies to ODBC, JDBC, and ADO.NET drivers. Note: The idle session timeout occurs when you query the NetSuite.com and NetSuite2.com data sources. For more information, see the help topics New Connections and Types of NetSuite Sessions. Change SuiteAnalytics 70 2020.1 Connect Browser The 2020.1 Connect Browser is not yet available. CSV Import NetSuite 2020.1 includes the following enhancements to CSV Import:
- Newly Supported Record Types for CSV Import
- Enhanced Size of the Name and Translation Fields in CSV Import Map Translation
- Sales and Purchase Custom Transactions Available for CSV Import
- Commerce Category Translation Sublist Import
- Effective Dating for Employee Record Changes Available with CSV Import Newly Supported Record Types for CSV Import Record Type Notes Inbound Shipment The inbound shipment record tracks such key shipment information as expected delivery dates, items in the shipment, quantity to be received, and links to associated documentation and transactions. To import inbound shipment data, in the Import Assistant, set the Import Type to Transactions, and the Record Type to Inbound Shipment. For more information, see Inventory Details on an Inbound Shipment. Item Collection Order Release records:
- Item Process Family
- Item Process Group
- Pick Strategy records
- Zone
- Wave Enhanced Size of the Name and Translation Fields in CSV Import Map Translation As of 2020.1, the Name and the Translation fields in the CSV Import Map Translation dialog have been enhanced and you can now enter up to 64 characters. This enhancement allows the translation of names and descriptions, even when the translation is longer than the original or when it uses a different alphabet. For more information see the help topic Translating Import Map Name and Description. Sales and Purchase Custom Transactions Available for CSV Import As of 2020.1, you can use the CSV Import Assistant to import sales and purchase custom transactions. Change CSV Import 71 Additionally, the following sublists and subrecords are available for sales and purchase custom transactions: Sublist or Subrecord Availability Related Help Topics Revenue Recognition Sales custom transactions. Revenue Recognition Amortization Purchase custom transactions. Amortization Feature Overview Shipping Sales custom transactions with the option of enabling item Shipping line shipping and shipping to custom addresses. Promotions Sales custom transactions. Promotions Landed Costs Purchase custom transactions with the option of enabling Landed Cost landed cost per line or landed cost for the whole transaction. Installments Sales custom transactions and purchase custom Creating Installments for sales. transactions. Vendor Installment Payments for purchases. For more information on how to import custom transactions, see the help topic Custom Transactions Import. Commerce Category Translation Sublist Import The 2020.1 release adds the option to import translations for Commerce Categories. Translations are based on Locale and result in the creation of a translation sublist record on the commerce category record. The following fields are available for import:
- External ID
- Addition To
- Description
- Heading
- Locale
- Name
- Page Banner
- Page Title
- Thumbnail Image For more information on importing translations for Commerce Categories see Commerce Category Translation Sublist. Effective Dating for Employee Record Changes Available with CSV Import As of 2020.1, you can import changes to the employee record that are effective as of a past or future date, using the CSV Import Assistant. For more information about the effective dating feature for employee information, see the help topic Effective Dating for Employee Information. Change CSV Import 72 For details about the permission requirements for effective dating, see the help topic Effective Dating Permission Requirements. For more information about importing employee record changes with effective dating, see Import of Employee Record Changes with Effective Dating. SuiteFlow (Workflow Manager) NetSuite 2020.1 includes the following enhancements to SuiteFlow features:
- Support for Expenses Sublists in Workflows
- Change to Default Behavior of Context Selection in Workflows and Actions Support for Expenses Sublists in Workflows As of 2020.1, sublist actions are now supported on the Expenses sublist on Expense report records. With this change, you can run workflows and create sublist action groups set to execute on the Expenses sublist. Previously, sublist actions were only supported on the Items sublist on Transaction records. The following table shows the workflow actions supported on the Expenses sublist on Expense report records, and indicates whether support is available for different workflow elements: Workflow Actions Server Triggers Client Triggers* Entry/Exit Sublist Action Scheduled Group Create Line Yes Yes Yes Create Record Yes Return User Error Yes Yes Set Field Value Yes Yes Set Field Display Yes Yes Yes Label Set Field Mandatory Yes Yes Yes *Supported client triggers vary based on the workflow action. The addition of support for the Expenses sublist on the Expense report record allows you to further customize your workflows to meet your specific business needs. You can use the Expenses sublist to add or update individual expenses on an Expense report record. For more information about the Expenses sublist, see the help topic Expense Report Sublist Fields. For more information about workflow actions, see the help topic Workflow Actions Overview. Change to Default Behavior of Context Selection in Workflows and Actions As of NetSuite 2020.1, the default behavior of context selection in workflows and actions is different than earlier versions of NetSuite. Previously, when you created a workflow or added an action to a workflow, all of the contexts were selected by default, including Web Store and Web Application. Change SuiteFlow (Workflow Manager) 73 Now when you create a workflow or add an action to a workflow, all of the contexts are selected by default, except for Web Store and Web Application. Additionally, the Context field displays how many contexts you have selected. This change in behavior does not impact existing workflows and actions. The default behavior does not affect how you select contexts, and you can still select the Web Store and Web Application contexts. These contexts are just not selected by default. The change to the default behavior of context selection was made to address performance issues associated with the Web Store and Web Application contexts. In adition, this release includes minor changes to the execution contexts supported for scripts and workflows. For a list of these changes, see Enhancements to Execution Contexts for Scripts and Workflows. For more information about contexts and workflows, see the help topic Workflow Context Types. SuiteScript Refer to the following sections for details on SuiteScript updates for NetSuite 2020.1:
- Introducing SuiteQL API
- SuiteScript 2.1 Now Generally Available for Server Scripts
- SuiteScript 2.1 Debugger (Beta)
- Enhancements to Execution Contexts for Scripts and Workflows
- Localization Context Filtering for SuiteScript 2.0
- Sales and Purchase Custom Transactions Available in SuiteScript
- Map/Reduce Concurrency Limit Is Adjusted to Target Account Limit for SDF Projects
- Change to Scripts on the Subsidiary Record Currency Field
- Deprecation of Script Queue Monitor (Beta)
- Method Added to N/redirect Module
- Support for Relative File Paths in the N/file Module
- 2020.1 SuiteScript Macro Exposures
- 2020.1 SuiteScript Record Exposures Change SuiteScript 74
- 2020.1 SuiteScript Records Browser Introducing SuiteQL API In NetSuite 2020.1, SuiteQL API is available as a new feature in the N/query module. This feature provides another way to use SuiteQL (which was made available in a previous release) in addition to SuiteAnalytics Connect. SuiteQL is a query language based on the SQL-92 revision of the SQL database query language. It provides advanced query capabilities you can use to access your NetSuite records and data. For more information, see SuiteQL. For more information about SuiteQL API in this release, see the following sections:
- New Object and Methods
- SuiteQL Support in Map/Reduce Scripts
- Support for Pagination and Aliasing New Object and Methods SuiteQL API provides the following new object and new methods in the N/query module:
- A new object, query.SuiteQL, represents a SuiteQL query. It includes properties that represent the query type, the SuiteQL string representation of the query, result columns to return from the query, and any additional parameters the query requires. You can use SuiteQL.run() to run the query as a non-paged query or SuiteQL.runPaged(options) to run the query as a paged query.
- A new object-level method, Query.toSuiteQL(), converts an existing query (as a query.Query object) to its SuiteQL representation (as a query.SuiteQL object).
- Two new module-level methods, query.runSuiteQL(options) and query.runSuiteQLPaged(options), let you run an arbitrary SuiteQL query. You can specify this query as a SuiteQL string, query.SuiteQL object, or generic JavaScript Object containing a required query property and an optional params property. Here is an example of how to load an existing query, convert it to SuiteQL, and run it: var myLoadedQuery = query.load({ id: ‘custworkbook237’ }); var mySuiteQLQuery = myLoadedQuery.toSuiteQL(); var myResultSet = mySuiteQLQuery.run(); SuiteQL Support in Map/Reduce Scripts In the getInputData(inputContext) stage of a map/reduce script, you can specify how you want to generate the input data. For example, you can generate the data using an array, a JavaScript Object, a search.Search object, or one of several other data types. In NetSuite 2020.1, you can generate the data using a SuiteQL query. In the getInputData(inputContext) stage, you can return an object that represents a SuiteQL query by including the following properties:
- type — The type of data you are providing. For SuiteQL queries, this type is suiteql.
- query — The SuiteQL query as a string. If the query accepts parameters, you can use question marks (?) as placeholders in the query string. You specify parameter values using the params property.
- params — Values for any parameters the SuiteQL query uses. This property is an array, and the order of values you specify should match the order the parameters appear in the query string. Change SuiteScript 75 Here is an example of how to construct a simple query in SuiteQL and return it from the getInputData(inputContext) stage of a map/reduce script: function getInputData() { var mySuiteQLQuery = “SELECT ” + ” “TRANSACTION”.tranid AS tranidRAW, ” + ” “TRANSACTION”.trandate AS trandateRAW, ” + ” “TRANSACTION”.postingperiod AS postingperiodDISPLAY ” + “FROM ” + ” “TRANSACTION” WHERE “TRANSACTION”.”ID” = ? ”; return { type: ‘suiteql’, query: mySuiteQLQuery, params: [271] }; } In this example, the parameter value 271 is the internal ID of a transaction record. Support for Pagination and Aliasing SuiteQL API supports paginated query results. Paginated query results help you process large result sets more efficiently by retrieving a subset (or page) of the full result set at a time. You can obtain paginated query results by using the following approaches:
- If you have a query.SuiteQL object already in your script, you can use SuiteQL.runPaged(options) to obtain paginated results for that SuiteQL query.
- If you do not have a query.SuiteQL object, you can use query.runSuiteQLPaged(options) to obtain paginated results for an arbitrary SuiteQL query. These methods accept an optional parameter, pageSize, that lets you specify the number of query results on each page. The default value is 50 results per page. SuiteQL API also supports standard SQL aliasing using the AS keyword. You can specify an alias for a field name, and this alias is used when you retrieve mapped query results using ResultSet.asMappedResults() or Result.asMap(). For example, you can use the following approach to create an alias for the entityid field on a customer record: var results = query.runSuiteQL( ‘SELECT entityid AS friendlyname, email FROM customer WHERE email IS NOT NULL’ ).asMappedResults(); In the mapped query results, friendlyname appears as an alias for the entityid field. SuiteScript 2.1 Now Generally Available for Server Scripts In NetSuite 2020.1, SuiteScript 2.1 is now generally available for server scripts. SuiteScript 2.1 was previously available as a beta feature. SuiteScript 2.1 is the latest minor version of SuiteScript, and it is backward compatible with SuiteScript 2.0. This version is based on the ECMAScript 2018 (ES2018) edition of the ECMAScript specification, and it includes new language capabilities and functionality. It supports all server-side script types (such as user event scripts, scheduled scripts, and Suitelets). SuiteScript 2.1 and future versions of SuiteScript will Change SuiteScript 76 also support features planned for future editions of the ECMAScript specification using ES.Next. For more information, see SuiteScript 2.1 Beta. For more information about SuiteScript 2.1 in this release, see the following sections:
- SuiteScript 2.x Notation
- Transition Period for SuiteScript 2.x Scripts SuiteScript 2.x Notation When you write a script, you must include a JSDoc comment block that specifies the version of SuiteScript to use. For scripts other than SuiteScript 1.0 scripts, you can specify the following versions:
- 2.0
- 2.1
- 2.x The 2.0 and 2.1 values indicate that the script uses that version of SuiteScript. The 2.x value usually represents the latest version of SuiteScript that is generally available and does not represent any versions that are released as beta features. However, this does not yet apply to SuiteScript 2.1. In this release, the 2.x value indicates that a script uses SuiteScript 2.0, not SuiteScript 2.1. You can still use SuiteScript 2.1 and all of its features in your server scripts, but you must specify a version of 2.1 explicitly. Your 2.x scripts will not run as SuiteScript 2.1 scripts until a future release. For more information, see SuiteScript 2.1 Versioning. Transition Period for SuiteScript 2.x Scripts NetSuite is providing a transition period of one year for you to test your existing scripts and make sure they work as expected using SuiteScript 2.1. This transition period starts with the NetSuite 2020.1 release and ends with the NetSuite 2021.1 release. During this period, the 2.x value will indicate that a script uses SuiteScript 2.0. After this transition period (in NetSuite 2021.1 and subsequent releases), the 2.x value will indicate that a script uses SuiteScript 2.1. The following table indicates which version of SuiteScript the 2.x value uses in each release: NetSuite Release SuiteScript 2.x Maps To NetSuite 2020.1 SuiteScript 2.0 NetSuite 2020.2 SuiteScript 2.0 NetSuite 2021.1 and subsequent releases SuiteScript 2.1 Account administrators will receive notifications throughout this period reminding them of the changes that will occur and to prepare for them. An administrator will receive these notifications if there is at least one script in their account that uses the 2.x notation. SuiteScript 2.1 Debugger (Beta) Warning: The SuiteScript 2.1 Debugger is a beta feature. The contents of this feature are preliminary and may be changed or discontinued without prior notice. The documentation for this feature is also considered a beta version and is subject to revision. The SuiteScript 2.1 Debugger beta release is targeted to be available by March 2020. This release of the debugger supports the following scripts: Change SuiteScript 77
- On demand scripts written directly into the debugger window
- Server scripts in your account, including Suitelets and scheduled scripts In our effort to offer a modern coding experience to our developers, the SuiteScript 2.1 Debugger uses Chrome DevTools. This approach allows users to debug their scripts using functionality that is similar to debugging JavaScript in the Google Chrome browser. To use the SuiteScript 2.1 Debugger, select 2.1 in the API Version field on the Debugger page. When you click the Debug Script button, a new browser tab opens with the Chrome DevTools interface for debugging your script. Your script is displayed on the new tab and you can perform typical debug actions, such as pause/resume execution, set breakpoints, and step through your code line by line. The SuiteScript 2.1 Debugger is fully supported when using NetSuite in the Chrome browser. Other browsers, such as Mozilla Firefox, Microsoft Internet Explorer, Microsoft Edge, and Apple Safari, have limited or no support. Debugger functionality is not guaranteed in these browsers. The SuiteScript 2.1 Debugger is available for all SuiteScript developers. The legacy SuiteScript Debugger is still available for SuiteScript 1.0 and SuiteScript 2.0 scripts. For more information on the SuiteScript Debugger, see the help topic SuiteScript Debugger. For specific information on the SuiteScript 2.1 Debugger, see Debugging SuiteScript 2.1 Scripts. Enhancements to Execution Contexts for Scripts and Workflows NetSuite 2020.1 includes enhancements to execution contexts supported for user event scripts, client scripts, and workflows. Execution contexts provide information about how or when a script or workflow is triggered to execute. For example, a script can be triggered in response to an action in the NetSuite application or an action occurring in another context, such as a web services integration. You can use execution context filtering to ensure that your scripts or workflows are triggered only when necessary. This filtering can improve performance in contexts where the scripts or workflows are not required. Change SuiteScript 78 In this release, several execution context filter values have been added to give you more control over script and workflow execution. The following contexts are new in 2020.1:
- Bank Connectivity
- Bank Statement Parser
- Financial Institution Connectivity
- Platform Extension
- REST Web Services
- SOAP Web Services
- Revenue Management The Web Services context, which was available in previous releases, is no longer available. It has been renamed to SOAP Web Services. A related context, REST Web Services, is new in this release. For more information, see SuiteScript Execution Context for REST Web Services. For scripts, you set up execution context filtering on the Context Filtering tab when you create or edit a script deployment record: For workflows, you set execution context filtering in the Event Definition section when you create or edit a workflow: Change SuiteScript 79 Execution context filtering behavior is now consistent for scripts and workflows. The same values are available for both scripts and workflows, and the default selections are the same. By default, all contexts are selected except for Web Application and Web Store. Often, it is not required to trigger scripts in these contexts, so they are disabled by default to improve performance. If you want your script or workflow to be triggered in these contexts, make sure to select them explicitly when you create your script deployment record or workflow. For scripting, execution context values are available using the runtime.ContextType enum. You can use this enum to programmatically determine how a script was triggered and take appropriate action. For example, you may want different script logic to execute depending on whether the script was triggered as a client script or in response to a UI action. For more information about execution contexts, see the following:
- Change to Default Behavior of Context Selection in Workflows and Actions
- runtime.ContextType Localization Context Filtering for SuiteScript 2.0 As of 2020.1, you can define the localization context in which a client or user event script can execute. Localization context filtering allows you to execute a script based on the country associated with the active record or transaction and prevents scripts from executing unnecessarily. For a list of records and transactions that support localization, see Records that Support Localization. You can specify the execution order of localized client and user event scripts. A maximum of 10 localized and 10 non-localized client scripts are supported. For more information, see the help topic The Scripted Records Page. The system automatically determines the localization context for records and transactions based on their values for country fields such as subsidiary and tax nexus. It is important to understand this determination before you set up localization context filtering for scripts. For details, see Determining the Localization Context. The localization context feature includes:
- Localization Context Field — The Localization Context field on the Context Filtering tab has been added to the script deployment record. This field lists the countries for which the script is relevant. All countries are selected by default. When this field is set to a value other than the default, the script runs only on records associated with the selected country or countries, based on records’ localization context.
- Entry Points for Client Scripts — There are two new entry points for SuiteScript 2.0 client scripts. These entry points are required to use localization context filtering in client scripts. localizationContextEnter is executed when the record enters the localization context that is specified on the script deployment record. localizationContextExit is executed when the record exits that context.
- Locale Parameter — scriptContext.locale is a new parameter for the localizationContextEnter and localizationContextExit entry points. This parameter lists the countries representing the new localization context. The following table shows how you can specify the localization context based on the script type. Script Type Defining Localization Context Filtering SuiteScript 2.0 Client Script Complete the following steps to add localization context filtering to client scripts: Type
- Use the localizationContextEnter and localizationContextExit entry points in your script. Change SuiteScript 80
- Define the localization context on the Context Filtering tab on the script deployment record. For more information, see Localization Context. SuiteScript 2.0 User Event Define the localization context on the Context Filtering tab on the script deployment Script Type record only. For more information, see Localization Context. If a script deployment is localized on the Context Filtering tab, the pageInit entry point of the script is ignored, and no other entry points of the script are called before localizationContextEnter or after localizationContextExit. It is possible that the record may never enter a localization context. In this case, no callbacks of the script are executed. For more information, see the help topic SuiteScript 2.0 Client Script Entry Points and API. Sales and Purchase Custom Transactions Available in SuiteScript As of 2020.1, sales and purchase custom transaction types are available in SuiteScript. Additionally, the following sublists and subrecords are available for sales and purchase custom transactions: Sublist or Subrecord Availability Related Help Topics Revenue Recognition Sales custom transactions. Revenue Recognition Amortization Purchase custom transactions. Amortization Feature Overview Shipping Sales custom transactions with the option of enabling item Shipping line shipping and shipping to custom addresses. Promotions Sales custom transactions. Promotions Landed Costs Purchase custom transactions with the option of enabling Landed Cost landed cost per line or landed cost for the whole transaction. Installments Sales custom transactions and purchase custom Creating Installments for sales. transactions. Vendor Installment Payments for purchases. For more information on custom transactions in SuiteScript, see the help topic Custom Transaction. Change SuiteScript 81 Map/Reduce Concurrency Limit Is Adjusted to Target Account Limit for SDF Projects In NetSuite 2020.1, the behavior of the concurrency limit for map/reduce script objects in SDF projects has been updated. Previously, a SDF project validation failed with an error if the SDF project contained a map/reduce object that set the concurrency limit to a value that was greater than the target account limit. Now, if the concurrency limit in the map/reduce object is greater than the target account limit, SDF adjusts the concurrency limit to the target account limit. For more information, see Map/Reduce Concurrency Limit Adjusts to Target Account Limit. Change to Scripts on the Subsidiary Record Currency Field Previously, getting the text or value of the Currency field on the subsidiary record returned inconsistent results depending on whether the field was being accessed in edit or read-only mode. As of 2020.1, this behavior is changed to ensure results are consistent. To avoid unexpected results after your account is upgraded to 2020.1, you should modify any scripts that get the text or value of the subsidiary record Currency field while in read-only mode. The Currency field is read-only after a subsidiary record is created and saved. For example, in previous releases, scripts returned the following for these APIs in read-only mode: Version API Current Value Returned SuiteScript 1.0 nlapiGetFieldValue(‘currency’) The text value stored in the field. For example, “USD.” nlapiGetFieldText(‘currency’) null nlapiGetFieldValue(‘currencyvalue’) The internal ID of the value stored in the field. For example, 1. SuiteScript 2.0 record.getValue({fieldId:‘currency’}) The text value stored in the field. For example, “USD.” record.getText({ fieldId: ‘currency’}) The text value stored in the field. For example, “USD.” record.getValue({ fieldId: The internal ID of the value stored in the ‘currencyvalue’}) field. For example, 1. As of 2020.1, these SuiteScript APIs return the following: Version API 2020.1 Value Returned SuiteScript 1.0 nlapiGetFieldValue(‘currency’) The internal ID of the value stored in the field. For example, 1. nlapiGetFieldText(‘currency’) The text value stored in the field. For example, “USD.” nlapiGetFieldValue(‘currencyvalue’) The internal ID of the value stored in the field. For example, 1. This field ID will be deprecated in 2020.2. SuiteScript 2.0 record.getValue({fieldId: The internal ID of the value stored in the field. ‘currency’}) For example, 1. Change SuiteScript 82 Version API 2020.1 Value Returned record.getText({ fieldId: The text value stored in the field. For example, ‘currency’}) “USD.” record.getValue({ fieldId: The internal ID of the value stored in the field. ‘currencyvalue’}) For example, 1. This field ID will be deprecated in 2020.2. Deprecation of Script Queue Monitor (Beta) Important: The target date for the deprecation of Script Queue Monitor (SQM) (Beta) was changed from September 3, 2019 to December 10, 2019. As of 2019.2, the Script Queue Monitor (Beta) SuiteApp (Bundle ID: 56125) is deprecated. The target date for this deprecation was December 10, 2019, shifted from a previous target of September 3, 2019. After this SuiteApp’s deprecation, you can no longer use it to monitor script deployments of accounts that continue to use queues. You must start to monitor your queues on either the Script Queue Monitor (SQM) dashboard or the SuiteCloud Processors Monitor tool that are integrated in Application Performance Management (APM). If you want a better view of jobs handled by SuiteCloud Processors, scheduling queues, or both, you must use the SuiteCloud Processors Monitor tool. You have to meet certain requirements, such as using an Administrator role or a role with specific permissions, to use the APM SuiteApp. After you install the APM SuiteApp, you can access the SQM dashboard at Customization > Performance > Script Queue Monitor. You can access the SuiteCloud Processors Monitor at Customization > Performance > SuiteCloud Processors Monitor. For more information, see:
- Using the Script Queue Monitor Dashboard in APM
- Monitoring SuiteCloud Processors Performance Method Added to N/redirect Module A new redirect.toRecordTransform(options) method has been added to the redirect module. The method opens the form of the destination transaction and uses information from the source transaction to fill in fields on the form. For more information, see the help topic N/redirect Module. Support for Relative File Paths in the N/file Module You can specify a relative file path when you load a file using the file.load(options) method in the N/file module. Relative paths always start with ./ or ../. Previously, you could load a file only by specifying the internal ID of the file or the absolute file path to the file in the File Cabinet. For more information, see the help topic N/file Module. This feature was introduced in NetSuite 2019.2. 2020.1 SuiteScript Macro Exposures Record Type Macro ID UI Button Label Notes Project Work Breakdown getAmountsFields Get Amounts Fields Gets the contents of all amounts field Structure names. Change SuiteScript 83 Record Type Macro ID UI Button Label Notes Project Work Breakdown setAmountFieldValue Set Amount Field Sets the value of the amount field. Structure Value Project Work Breakdown getAmountFieldValue Get Amount Field Gets the value of the amount field. Structure Value Project Work Breakdown getUnmatchedActuals Get Unmatched Gets the unmatched actuals. Structure Actuals 2020.1 SuiteScript Record Exposures Record Type Notes Balance Transactions by To use the balance transactions by segments record, you must enable the Balancing Segments Segments and Custom Segments feature. The balance transactions by segments record is scriptable in server SuiteScript only. The record is partially scriptable, you can create, read, and search it using SuiteScript. Bonus To use the bonus record, you must enable the Compensation Tracking feature. The bonus record is scriptable in both client and server SuiteScript. Bonus Type To use the bonus type record, you must enable the Compensation Tracking feature. The bonus type record is scriptable in both client and server SuiteScript. Item Process Family Item Process Group Memorized Transaction Memorized transaction templates and definitions must be created in the NetSuite user Definition interface, but existing memorized transaction definitions can be called using SuiteScript. Memorized transaction definitions are scriptable in both client and server SuiteScript. Automatically-created transactions do not support server-side scripting. Memorized transaction definitions support only the Read, Update, Delete, and Search functions. Order Type Pick Strategy Pick Task Project Work Breakdown To use the project work breakdown structure record, you must enable the Job Costing Structure and Project Budgeting, Advanced Project Accounting, Custom Records, Custom Segments, and Activity Codes features. The project work breakdown structure event record is scriptable in both client and server SuiteScript. Copy and transform are not supported. Vendor Prepayment The vendor prepayment record is scriptable in both client and server SuiteScript. The script user must have the required permission level for the Vendor Prepayment permission. Vendor Prepayment The vendor prepayment application record is scriptable in both client and server Application SuiteScript. Change SuiteScript 84 Record Type Notes The script user must have the required permission level for the Vendor Prepayment Application permission. Wave Zone 2020.1 SuiteScript Records Browser The 2020.1 SuiteScript Records Browser is not yet available. SuiteTalk Web Services Integration NetSuite 2020.1 includes the following enhancements to web services features:
- Changes in the URL Structure of REST Web Services
- REST Web Services Support for CRUD Operations on Custom Records
- Fully Supported Record Types for REST Web Services in 2020.1
- New REST API Browser
- Record Action Execution Through REST Web Services
- Support for Record Transformation Through REST Web Services
- SuiteQL Query Execution Through REST Web Services
- Changes in SuiteAnalytics Workbook Execution Through REST Web Services
- SuiteScript Execution Context for REST Web Services
- REST Web Services Requests and Responses Tracked in the Execution Log
- Sales and Purchase Custom Transactions Available in SOAP Web Services
- New GetConcurrencyGovernance Operation in SOAP Web Services
- Operations Removed in 2020.1 SOAP Web Services Endpoint
- Governance Enabled for All Accounts
- Integration Record Enhancements Related to OAuth 2.0
- Field Type Change in the Project Task Record
- SOAP Web Services Version 2020.1
- Araxis Merge Diff File for the 2020.1 Endpoint
- 2020.1 SOAP Schema Browser Changes in the URL Structure of REST Web Services As of 2020.1, you can access NetSuite resources through REST web services by using URLs specific to either record or query service. To use CRUD operations on records, you can use a URL similar to the following: Change SuiteTalk Web Services Integration 85 PATCH https://demo123.suitetalk.api.netusite.com/services/rest/record/v1/customer/42 To access resource metadata, you can use a URL similar to the following: GET https://demo123.suitetalk.api.netsuite.com/services/rest/record/v1/metadata-catalog For information about using metadata, see the help topic Working with Resource Metadata. To execute saved datasets, you can use a URL similar to the following: GET https://demo123.suitetalk.api.netusite.com/services/rest/query/v1/workbook/custworkbook123/result For more information, see the help topic REST Web Services URL Schema and Account-Specific URLs. REST Web Services Support for CRUD Operations on Custom Records As of 2020.1, you can use all CRUD (create, read, update, and delete) operations on custom record instances. You can use CRUD operations to perform business processing on custom records and move dynamically between custom records. In NetSuite, you track all of the information in your account using records. Users with the Custom Record Entries permission can create custom records that collect information specific to the needs of their business. Creating custom record types through REST web services is not supported. To work with custom record definitions, you must have the Custom Records feature enabled on your account. To enable the feature, go to Setup > Company > Setup Tasks > Enable Features, and select Custom Records on the SuiteCloud subtab. You must create a custom record type in the UI, and then you can work with instances of the custom record type through REST web services. For information, see the help topic Creating Custom Record Types. You also can use SDF to create custom record types. For information, see the help topic Custom Record Types as XML Definitions. For information about using CRUD operations, see the sections under Working with Records. Fully Supported Record Types for REST Web Services in 2020.1 The following table lists the records that are fully supported as of 2020.1. Record Type Notes Billing Account Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Price Book Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Price Plan Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Change SuiteTalk Web Services Integration 86 Record Type Notes Subscription Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. Subscription Line Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. A subscription line record is always tied to a subscription record. Subscription Plan Available if SuiteBilling features are enabled. For information, see the help topic Enabling SuiteBilling Features. A subscription requires a subscription plan, but the subscription plan is not always tied to a subscription. Subsidiary You must use NetSuite OneWorld or have the Subsidiaries feature enabled to use the subsidiary record. The POST (create), PATCH (update), and DELETE operations are not supported. Apart from these fully supported records, all records listed in the REST API Browser are available as beta records in REST web services. For information, see the REST API Browser. For information about working with the browser, see the help topic The REST API Browser. New REST API Browser The REST API Browser is a browser that provides a visual overview of the structure and capabilities of the REST web services Record API. The REST API browser includes information such as the following:
- The support level of records. Beta records are marked with a beta label.
- The summary of all records, sublists, schema definitions, and other objects.
- The available operations you can perform on a record.
- The description of URLs, HTTP methods, and request parameters used for CRUD operations.
- The structure of responses you can receive after performing an operation.
- The description of field names and field types, and the properties of fields. To access the browser, see the REST API Browser For more information about working with the browser, see the help topic The REST API Browser. Record Action Execution Through REST Web Services Warning: Record action execution through REST web services is a beta feature. The contents of this feature are preliminary and may be changed or discontinued without prior notice. Any change may impact the feature’s operation with the NetSuite application. Warranties and product service levels do not apply to this feature or the impact of this feature on other portions of the NetSuite application. We may review and monitor the performance and use of this feature. The documentation for this feature is also considered a beta version and is subject to revision. REST web services support APIs that provide the programmatic equivalent of clicking a button in the NetSuite user interface. With the record action APIs, you can use REST web services to trigger the same business logic that is triggered by the click of a UI button. Change SuiteTalk Web Services Integration 87 By using record actions, you can update the state of a record. Approve and reject are two examples of record actions. When an approve or a reject action is executed on a record, the approval status of the record is saved immediately. REST web services support the same record actions supported by SuiteScript. For a list of supported actions, see the help topic Supported Record Actions. For more information, see Executing Record Actions. Support for Record Transformation Through REST Web Services Warning: Support for record transformation through REST web services is a beta feature. The contents of this feature are preliminary and may be changed or discontinued without prior notice. Any change may impact the feature’s operation with the NetSuite application. Warranties and product service levels do not apply to this feature or the impact of this feature on other portions of the NetSuite application. We may review and monitor the performance and use of this feature. The documentation for this feature is also considered a beta version and is subject to revision. As of 2020.1, you can use REST web services to transform a record from one type into another. In REST web services, you use the POST method to send a record transformation request. All record transformations available in SuiteScript are also available in REST web services. For information about the supported transformation types, see the help topic record.transform(options). For more information about record transformation through REST web services, see Transforming Records. SuiteQL Query Execution Through REST Web Services Warning: SuiteQL query execution through REST web services is a beta feature. The contents of this feature are preliminary and may be changed or discontinued without prior notice. Any change may impact the feature’s operation with the NetSuite application. Warranties and product service levels do not apply to this feature or the impact of the feature on other portions of the NetSuite application. We may review and monitor the performance and use of this feature. The documentation for this feature is also considered a beta version and is subject to revision. As of 2020.1, you can execute SuiteQL queries through REST web services. SuiteQL is a query language based on the SQL database query language. SuiteQL provides advanced query capabilities that can be used to access NetSuite records. To execute SuiteQL queries through REST web services, send a POST request to the suiteql resource, and specify the query in the request body after the query parameter q. The following example shows a SuiteQL query executed through REST web services.
POST https://demo123.suitetalk.api.netsuite.com/services/rest/query/v1/suiteql Prefer: transient . { . “q”: “SELECT email, COUNT(*) as count FROM transaction GROUP BY email” . } For more information about SuiteQL in general, see the help topic SuiteQL. Change SuiteTalk Web Services Integration 88 For more information about executing SuiteQL queries through REST web services, see Executing SuiteQL Queries Through REST Web Services. Changes in SuiteAnalytics Workbook Execution Through REST Web Services Warning: Support for SuiteAnalytics workbook execution through REST web services is a beta feature. The contents of this feature are preliminary and may be changed or discontinued without prior notice. Any change may impact the feature’s operation with the NetSuite application. Warranties and product service levels do not apply to this feature or the impact of this feature on other portions of the NetSuite application. We may review and monitor the performance and use of this feature. The documentation for this feature is also considered a beta version and is subject to revision. SuiteAnalytics Workbook is an analytical tool available in NetSuite. With SuiteAnalytics Workbook, you can create customizable workbooks that combine queries, pivot tables, and charts using a single tool that leverages a new data source. For information about working with SuiteAnalytics workbooks in the UI, see the help topic SuiteAnalytics Workbook. In REST web services, you can run saved workbooks and retrieve their results. You can execute both standard and custom workbooks. As of 2020.1, the URL structure for executing workbooks through REST web services changed and a result parameter was added to the URL. To execute a workbook, you send a GET request similar to the following: GET https://demo123.suitetalk.api.netsuite.com/services/rest/query/v1/workbook/ExampleWorkBook1/result When you work with SuiteAnalytics workbooks in REST web services, consider the following:
- Workbooks cannot be created, filtered, or edited through REST web services.
- Metadata is not provided for saved analytics workbooks.
- The response from a saved analytics execution returned through REST web services may have a different format and values than responses for record instance requests. For more information, see the help topic Working with SuiteAnalytics Workbooks in REST Web Services. SuiteScript Execution Context for REST Web Services NetSuite 2020.1 introduces the REST web services script execution context. For NetSuite user event and client scripts, you can set up execution context filtering to control the contexts in which these scripts can run. You can set up execution context filtering in the Execution Context field on the Context Filtering subtab of the Script Deployment record. For more information, see Enhancements to Execution Contexts for Scripts and Workflows. If a script has its execution context set to REST web services, the script only executes if it is triggered through a REST web services request. For example, you can deploy a script similar to the following on customer records. In this example, the beforeSubmit script is only executed on the record if the request is triggered through REST web services. define([‘N/record,’ ‘N/runtime’], function(record, runtime) { Change SuiteTalk Web Services Integration 89 function beforeSubmit(context) { var ctx = runtime.executionContext var isRestWs = (runtime.ContextType.REST_WEBSERVICES === ctx); log.debug(ctx + ”: Before submit of ” + context.newRecord.type); } For more information about script execution contexts, see the help topic runtime.executionContext. For information about execution context behavior in workflows, see Change to Default Behavior of Context Selection in Workflows and Actions. REST Web Services Requests and Responses Tracked in the Execution Log As of 2020.1, you can access the contents of REST web services requests and responses through the REST Web Services Execution Log. To access the REST Web Services Execution Log, go to Setup > Integration > Integration Management > Manage Integrations, and select the integration record you want to view. On the integration record, go to REST Web Services on the Execution Log subtab, and click View to download a request or a response. The requests and responses logged in the execution log contain the values of sensitive fields in masked format. For information about using an encrypted format on custom fields, see the help topic Encrypted Custom Field Stored Values. For more information about REST Web Services logging, see the help topic Using the REST Web Services Execution Log. Sales and Purchase Custom Transactions Available in SOAP Web Services As of 2020.1, sales and purchase custom transaction types are available in SOAP web services. Additionally, the following sublists and subrecords are available for sales and purchase custom transactions: Sublist or Subrecord Availability Related Help Topics Revenue Recognition Sales custom transactions. Revenue Recognition Amortization Purchase custom transactions. Amortization Feature Overview Shipping Sales custom transactions with the option of enabling item Shipping line shipping and shipping to custom addresses. Promotions Sales custom transactions. Promotions Landed Costs Purchase custom transactions with the option of enabling Landed Cost landed cost per line or landed cost for the whole transaction. Installments Sales custom transactions and purchase custom Creating Installments for sales. transactions. Vendor Installment Payments for purchases. Change SuiteTalk Web Services Integration 90 Sales and purchase custom transactions differ in a few things from other custom transaction types in SOAP web services. To understand these differences, read the topic Sales and Purchase Custom Transaction Types. New GetConcurrencyGovernance Operation in SOAP Web Services As of 2020.1 you can use the getAccountGovernanceInfo and the getIntegrationGovernanceInfo operations in SOAP web services. With the getAccountGovernanceInfo operation, you can get the Account Concurrency Limit and the Unallocated Concurrency Limit. With the getIntegrationGovernanceInfo operation, you can get the Concurrency Limit for the integration (integrationConcurrencyLimit) and the limitType, which can be:
- _integrationSpecific, when a limit has been allocated.
- _internal, when it is an internal application. In this case the limit is not displayed.
- -accountLimit, when no specific limit has been allocated to the integration. For more information about governance, see Web Services and RESTlet Concurrency Governance. Operations Removed in 2020.1 SOAP Web Services Endpoint The following operations have been removed in 2020.1 SOAP web services endpoint:
- login
- logout
- ssoLogin
- mapSso
- searchMore
- searchNext You should use Token-based Authentication for logging into NetSuite instead. For more information, see the help topic Token-based Authentication (TBA). Note: The operations remain available for earlier endpoints. For more information on which endpoints are supported, see the help topic Support for Existing WSDL Versions. Governance Enabled for All Accounts As of 2020.1, web services and RESTlet account governance has been enabled for all accounts, so the Web Services and RESTlet Account Governance Enabled box has been removed. Note: The Web Services and RESTlet Account Governance Enabled box was visible for administrators in production accounts, but was editable only in Sandbox environment. For more information about governance, see Web Services and RESTlet Concurrency Governance. Change SuiteTalk Web Services Integration 91 Integration Record Enhancements Related to OAuth 2.0 A new approach to access REST Web Services and RESTlets is now available. OAuth 2.0 provides an alternative to Token-based Authentication. OAuth 2.0 has a standard authorization code grant flow that generates a pair of tokens: an access token and a refresh token. The access token is valid for 60 minutes and is used to access the protected resource. For detailed information about OAuth 2.0, see OAuth 2.0 Delegated Access for REST Web Services and RESTlets. You can configure settings related to OAuth 2.0 on the integration record of your REST web services or RESTlet integration application. For information, see Defining OAuth 2.0 on Integration Records. For general information about working with integration records, see the help topic Creating an Integration Record. Field Type Change in the Project Task Record The field type of the remainingWork and actualWork fields in the projekt task record changes in 2020.1 endpoint from double to duration type. You must take this change of field type into consideration when upgrading to the 2020.1 endpoint to avoid any issues with your integration. Earlier endpoints will not be affected by this field type change. SOAP Web Services Version 2020.1 SOAP web services version 2020.1 is available. When your implementation is upgraded to 2020.1, the 2020.1 WSDL becomes available in your production account. You do not need to upgrade your WSDL when the new version is generally available. NetSuite supports each endpoint for three years. For information about the supported generally available versions, see the help topic Support for Existing WSDL Versions. Araxis Merge Diff File for the 2020.1 Endpoint The Araxis Merge Diff file highlights 2019.2 – 2020.1 schema changes. The diff file is not yet available, but this section provides details about the types of information it will include.
- About the Araxis Diff File
- Using the Araxis Diff File About the Araxis Diff File NetSuite publishes an Araxis Diff File for every new endpoint. Depending on the scope of the release, changes described in the Araxis Diff File may include:
- New record types
- Elements (fields) that have been added, removed, or changed
- New sublists (lists)
- New joins
- New search filters and search return columns Change SuiteTalk Web Services Integration 92
- New platform operations Using the Araxis Diff File Important: The figures in this section are for illustrative purposes only. They do not reflect changes related to any specific endpoint. The diff file is generated using Araxis Merge. When you click the diff file link (when it is available), a page appears that offers an overview of all schema changes. The following screenshot shows how this summary page looks. In this example, the rows highlighted in purple indicate that an XSD has been modified. The integers at the center indicate the number of changed lines in the file. To see the exact differences, click the report link in the column to the right, or click the name of the file in either column. When you click any of these links, the diff file shows a page with two columns. The previous version of the file is displayed on the left, and the new version on the right. Changed elements are highlighted. For example, the following screenshot shows an excerpt from the report on platform.commonTypes.xsd. Notice the addition of two values to the PermissionCode enumeration: _accessPaymentAuditLog and _advancedPDFHTMLTemplates. The diff file also shows changes to data types. The following screenshot is a snapshot of transactions.sales.xsd. Notice that the chargeType element changed from an enumeration to a RecordRef. Change SuiteTalk Web Services Integration 93 2020.1 SOAP Schema Browser The 2020.1 SOAP Schema Browser is not yet available. SuiteCloud SDK SuiteCloud Software Development Kit (SuiteCloud SDK) is a set of tools you can use to develop SuiteCloud Development Framework (SDF) projects, the SuiteCloud IDE plug-ins, and SuiteCloud CLI. SuiteCloud SDK for 2020.1 includes the following features and updates:
- 2020.1 SuiteCloud CLI for Java Is Not Yet Available
- 2020.1 SuiteCloud Plug-in for WebStorm Is Not Yet Available
- 2020.1 SuiteCloud Plug-in for Eclipse Is Not Yet Available Generally, 2020.1 plug-in behavior changes are designed to support SDF. In addition, SuiteCloud IDE plug-ins for versions 2017.1 and later have compatibility requirements. The version of your plug-in must match the version of your NetSuite account before you can use the plug-in to create SDF projects. For information about additional features that impact SuiteCloud IDE plug-ins and SuiteCloud CLI, see the release note for SuiteCloud Development Framework. 2020.1 SuiteCloud CLI for Java Is Not Yet Available SuiteCloud Command-Line Interface for Java (SuiteCloud CLI for Java) 2020.1 is targeted for release in March 2020. SuiteCloud CLI for Java is the SDF (SuiteCloud Development Framework) command-line interface. You can use the CLI for Java with your own integrated development environment (IDE) to create SDF projects, including SDF SuiteApps. You can also create batch and shell scripts that use CLI commands to automate your project validation and deployment processes. When used with your own IDE, CLI for Java acts as an alternative to SuiteCloud IDE. For more information about CLI for Java, see the help topic CLI for Java Guide. CLI for Java is supported on Windows, Linux, and Mac OS X. For more information, see the help topic CLI for Java Installation Prerequisites. 2020.1 SuiteCloud Plug-in for WebStorm Is Not Yet Available The 2020.1 SuiteCloud plug-in for WebStorm is targeted for release in February 2020. Important: When your account is upgraded to 2020.1, your instance of the plug–in is not updated automatically to 2020.1. After your account upgrade, you must manually update the plug–in to the latest version. For more information, see the help topic Adding the SuiteCloud IDE Plug-in to WebStorm. 2020.1 SuiteCloud Plug-in for Eclipse Is Not Yet Available The 2020.1 SuiteCloud plug-in for Eclipse is targeted for release in February 2020. Change SuiteCloud SDK 94 Important: When your account is upgraded to 2020.1, your instance of the plug–in is not updated automatically to 2020.1. After your account upgrade, you must manually update the plug-in to the latest version. For more information, see the help topic Updating Eclipse for Use with SuiteCloud IDE Plug-in. SuiteCloud Development Framework SuiteCloud Development Framework (SDF) is a development framework and deployment mechanism. Customers and partners can use SDF to create customization projects for internal use within their organizations or for commercial distribution. For more information about SDF, see the help topic SuiteCloud Development Framework Overview. For a complete list of custom records and customizations that are supported by SDF, see the help topic Customizations Supported by SuiteCloud Development Framework. With the release of SuiteCloud Development Framework, the SuiteCloud Terms of Service were updated in September 2016 to specifically include SuiteCloud Development Framework as one of the listed SuiteCloud Technologies and to make other clarifying changes. You can review the complete updated terms at http://www.netsuite.com/termsofservice. NetSuite 2020.1 includes the following enhancements to SDF features:
- Custom Code and Action Tabs in Custom Forms Support
- Sales and Purchase Custom Transactions Support
- Additional Transaction Form Types Can Be Customized
- Translatable Fields Support
- Map/Reduce Concurrency Limit Adjusts to Target Account Limit
- Financial Institution Connectivity Plug-in Support
- Parser Plug-in Support
- Minor Updates to Custom Objects
Custom Code and Action Tabs in Custom Forms Support
SuiteCloud Development Framework (SDF) supports the Custom Code and Action tabs in custom forms.
In NetSuite, the Custom Code tab and Actions tab are used together to define custom buttons for custom
forms. Custom buttons are a way for your users to intentionally execute client SuiteScript on custom
forms. The buttons are useful for executing a specific function when the user clicks the button on the
form, such as creating a customized invoice. You can add custom buttons to custom forms in SDF by
specifying the actionBar element to define the Action tab.
The following example defines two custom buttons. The first button has the label Invoice Client, and
that button runs the function invoiceClient. The second button has the label Generate Report, and runs
the function generateReport. To execute, both functions must be defined in the client SuiteScript file
referenced by the scriptFile field for the customCode element in the same custom form object.