SuiteScript Server Pages
With the introduction of SuiteScript Server Pages (SSP) in this release, NetSuite makes developing Web applications more powerful and flexible. SuiteScript Server Pages enable the rapid creation of highly customized and dynamic applications hosted by NetSuite, and the technology is the foundation for the new NetSuite Ignite Commerce platform and Ignite WebApps. The technology provides the ability to use SuiteScript to embed dynamic content within static HTML pages, as well as easily create custom script assets for RESTful and AJAX applications.
An SSP Application typically consists of separate files for the frontend (.ssp) and the backend (.ss). The .ss files are similar to Suitelets, and can handle processing http requests generated from the .ssp files and return the http response in the desired format such as HTML, XML, JSON, or JS. SSP Applications support named URLs to define access points. All the assets required for the custom application including all the pages, scripts, images, etc. are included in folders, managed out of the NetSuite file cabinet.
SuiteScript Server Pages together with the Ignite Commerce APIs provide a powerful set of tools for Web developers to create a great Ecommerce experience for their customers, enabling the replacement of existing NetSuite applications such as the shopping cart, checkout or customer center with custom implementations. SuiteScript Server Pages are the foundation used in the new reference cart and one page checkout.
CSV Import Performance Improvements
With this release, NetSuite provides powerful improvements to the performance of CSV file imports. With the "Use Multi-Threading" feature, NetSuite enables the creation of multiple threads during the import process, effectively cutting import times by importing rows within the CSV file concurrently.
This feature (available as part of SuiteCloud Plus), can be accessed by enabling a new checkbox within CSV import preferences called "Use Multi-Threading." A key consideration on whether to use this new capability is if the order of the data in the CSV file is not material to the integrity of the data (for example, hierarchical data may require a specific import order).
Once enabled, NetSuite will import more than one row at once. The speed with which the file is imported will depend on the practical bandwidth that NetSuite can allocate to the import.
Another key improvement is the addition of concurrent import queues, also available with a SuiteCloud Plus license. This capability provides up to five concurrent queues, with queue assignment performed on a per import basis. This feature is particularly valuable during large file processing such as data migration, when considerable amounts of data must be imported into the system quickly, or for large organizations that can delegate separate queues to individual departments that frequently import data.
SuiteCloud Enhancements for Manufacturers and
This release provides a number of new SuiteCloud enhancements for manufacturers and wholesale distributors:
- The Item Demand Plan record is an important record for partners and customers who plan to customize NetSuite for manufacturing and distribution deployments. This record is now fully available for SuiteCloud customization, including being accessible in real time by SuiteTalk web services, scriptable using SuiteScript, and available to use for CSV import.
- Within SuiteBuilder, it's now possible to create custom entry forms for the Inventory Detail subrecord, which is utilized as part of the Advanced Bin/Numbered Inventory Management feature. Support for custom forms enables the use of client SuiteScript on inventory detail to perform data validation, custom actions and deliver real-time user feedback when the user is interacting with this sub-record. For example, with this feature it's possible to validate data against the bin record and its custom fields as the user is entering inventory assignments.
New Search APIs in SuiteScript
SuiteScript adds a new set of objects and APIs to improve search capabilities in SuiteScript. This provides the ability to create saved searches, get unlimited search results, and slice, dice and paginate search results more easily using SuiteScript. The nlobjSearch object and its methods provide a means of instantiating new searches easily, as well as accessing existing saved searches and manipulating them in SuiteScript. The search results are returned in a new object called nlobjSearchResultSet.
SuiteScript Governance, Recovery Points and Yield Management
SuiteScript developers now have more granular control over the execution and reliability of scheduled scripts. With NetSuite Version 2012.1, developers can set recovery points in their schedule scripts so that execution can subsequently resume if an unexpected error is encountered. Developers also have the option to let their scheduled scripts yield processing to other scripts at any point during the execution. Yielded scripts will resume execution with all governance usage reset to zero.
This new set of SuiteScript APIs provides:
- Recovery Points that ensure scheduled scripts resume from the last safe "snapshot" of the script execution in the event of an unexpected error. This is particularly valuable for long-running scheduled scripts to avoid the script restarting from the very beginning.
- Yield Management that enables developers to better manage the execution of various scripts they have deployed. For example, all other scripts no longer have to wait in the queue during the execution of a long-running scheduled script.
- Governance Usage Management that ensures governance usage will reset to zero if a longrunning scheduled script hits the governance limit by yielding to other scripts, providing developers with better controls on how to manage their usage limit.
Additionally, there is now no limit to the number of user event scripts deployed on a record. Previously, script deployments were subject to a maximum of 10 deployments per trigger type. This release removes this limit for all scripts in the account including any installed SuiteApps, ensuring more reliable and predictable script deployment and execution.
Custom Plug-ins for SuiteApps
A new object called Custom Plug-in Type provides a framework that enables solution providers to provide deep customization points within their SuiteApps for end implementers to tap into.
Custom Plug-ins are similar to programming interfaces where the provider defines the interface and the consumer implements it. They enable solution providers to expose specific functions within their SuiteScript logic that can be customized. So when the SuiteApp is deployed, the end implementer can specify the routine or code specific to the customer requirement that will run as part of the application and replace the default logic that was provided.
For example, a SuiteApp financial application may need to be flexible to support different calculations/algorithms for operations such as depreciations or forecasts based on the specific customer need. In this case, the solution provider can now design their SuiteApp to make the calculation logic pluggable. At implementation time, new calculation methods could be "plugged in" to the financial application.
Solution providers can provide multiple implementations of Custom Plug-ins where the implementer can select which one to use with the SuiteApp based on specific needs. Alternatively, solution providers can allow end customers to implement their own pluggable logic if required, or to customize an existing Custom Plug-in.
Support for SuiteApp License Agreements within SuiteBundler
For SuiteCloud Developer Network (SDN) partners, SuiteBundler now makes it easy to attach click wrap Terms of Service (TOS) or license agreements to SuiteApps. In addition, for ease of auditing agreement acceptance across customers, NetSuite also tracks a copy of the terms each customer has accepted, along with the last date of the agreement.
With this feature, when a license is attached to a SuiteApp, end customers will be required to agree to the license before they can install or update the SuiteApp. In the case of managed SuiteApps, customers will need to agree to the terms before installing the SuiteApp.
Solution providers will still be able to push SuiteApp upgrades to end customers automatically if the agreement terms haven't changed. When a new TOS or license agreement is published, SuiteBundler messaging functionality can be used automatically to notify end customers that they need to agree to the updated terms.
Easily Hide the Contents of SuiteApps in SuiteBundler
This new functionality makes it easy for solution providers and customers alike to set the display options for SuiteApp contents in the target account.
The Bundle Builder now provides an option to hide bundle contents on customization list pages so that solution providers can decide if the contents of a SuiteApp are displayed or are hidden by default.
In addition, customers (administrators or users with the SuiteBundler permission) who install a SuiteApp can also set display options on their account's SuiteApp details page.
Note: The view setting in the target account overrides any display option that may be set on the SuiteApp by the solutions provider. This makes management of customization objects easier for customers.
New "Merge Data" for Custom Lists/Records in SuiteBundler
SuiteBundler now provides more flexible control over bundling custom record and list data to ensure lists provided by the solution provider are merged with lists the end customer may have updated themselves.
The new "Merge Data" option within SuiteBuilder complements the existing "Preserve Data" and "Replace Data" options that were already available within SuiteBundler's installation preferences.
This new preference splits the ownership of data for the custom record or list between the source and target accounts. The SuiteApp provider continues to maintain custom record or list data in the source and can be assured that when they release an updated SuiteApp to their customers, the data in each customer's existing custom lists and records are not overwritten—the solution provider's data is merged in.
For example, consider a scenario in which a solution provider establishes their initial custom list, then the customer updates it with their own list items, and subsequently the solution provider adds additional choices to the list. The "Merge Data" option ensures the customer sees all the choices in the list that were provided by both the customer and the solution provider.
This release provides numerous enhancements to SuiteFlow, including more flexible and detailed logging, support for the Transform action, support for HTML/PDF email attachments and more:
- Enhanced Logging: New enhanced logging makes troubleshooting workflows easier. With this release, logging is supported for workflows that have been deployed to "Released" status, not just those in "Testing" status.
- Create Transactions via Transform Action: SuiteFlow can now create transactions based on other records by using a "transform" action, providing the power to create sophisticated transactional workflows. For example, it's now possible create a transform to bill a sales order and create an invoice from it.
- New Action Type for Confirmation/Message Popup: SuiteFlow now provides action types that present users with a confirmation or a message popup in addition to error popups. The confirmation popup can show a user a message, and then let the user click OK to acknowledge it and continue, or to cancel. Alternatively, a message popup can show informational text with an OK button, and upon clicking it the user would continue with their task.
- Embed or Attach PDF/HTML Transactions and Statements in Emails: SuiteFlow can now be used to automate highly customized transaction and customer statement emails by including or attaching the transaction to the email in HTML or PDF format. For example, a receivables workflow can send emails to customers with both a custom message and the billing statement attached as a PDF, or a fulfillment workflow can embed an HTML packing slip within a customer email whenever an order is shipped.
SuiteBuilder Internationalization of
Additional Customization Objects
This release makes it even easier to customize NetSuite for multinational needs with the ability to set translations on more customization objects such as Custom Centers, Custom Center Categories, Custom Center Links, Custom Roles and Saved CSV Imports. The newly expanded translation support allows account administrators more flexibility in providing a better end user experience across their global organizations. Additionally, partners and independent solution providers have the means to roll out translated solutions to better fit their international markets.
SuiteBuilder Forms and Fields Enhancements
SuiteBuilder now provides the ability to logically group fields together for easier field management on forms. In addition, a new Time list/record type is available for custom fields:
- Associated Fields on Custom Forms: When customizing an entry form, NetSuite administrators can now specify a main field, and associate other fields to that main field to create a logical grouping. Associated fields will inherit the same user interface settings such as field group, and they will always be displayed on the same line as the main field and inherit the same show or hide setting. This feature also makes more associated fields available on custom forms. For example, the "Credit Hold" field on the customer entry form under the Financials sub-tab now appears as an associated field to the "Credit Limit" field already in the entry form and can be customized independently.
- New Time Custom Field within List/Record: Time (also known as TimeBill) is now available as a list/record type when creating a custom field. This gives NetSuite administrators and developers the ability to track or associate hours worked using custom fields.
More Granular Permission Control for New Custom Record Types in SuiteBuilder
This release provides more granular permission control when defining a new custom record type. These new permission controls provide administrators and solution providers with a finer level of access control to custom records. The Use Permissions checkbox is now called Access Type, and is a dropdown with the following options:
- No Permissions Required: Sets the custom record for public access.
- Require Custom Record Entry Permission: Uses the custom record permission defined on the user's role.
- Use Permissions List: The same Use Permissions checkbox from before, following the permissions defined in the permissions sub-tab on the custom record.
In addition, the new Allow UI Access checkbox makes it possible to specify whether a record can be accessed by users through the user interface.
Administrator Set Defaults for User Preferences
Administrators can now set the default user preferences for each role, providing a better experience and reducing training requirements for a new user's first interaction with NetSuite. While administrators can set the default as standard, it provides the flexibility for a user to subsequently set their own preference value.
Dashboard KPI Scorecard Highlights and Headlines
This release adds key performance indicator (KPI) highlighting and supports headlines for KPI Scorecards. The setting of thresholds and headlines on KPI Scorecards provides visual cues to draw attention to the most important metrics, as well as to those that are outside an acceptable range.
Business users can now set an absolute threshold for a KPI, or one based on a comparison between KPIs, and highlight the KPI with specific formatting when the criteria has been met. Also, a KPI can now be shown as a headline on the top of the KPI Scorecard in large font. In addition, the ability to configure headlines has been added to KPI Portlets.
Easily Manage Translations for Columns and Labels in Searches
Set Report Filters Directly from the Report Footer
Set Permissions on a Per-Report Basis
Translation Support for Column
Labels/Descriptions in Saved Searches
While creating saved searches, authors can now specify language translations for the search title as well as the column labels for the search. This makes it easy to extend searches to international users. Also, Search can be used in translated bundles, where they will typically appear as part of sub-lists.
User-Defined Footer Filters in Reports
With this new feature, user-defined footer filters can be placed and selected from directly on the report, making ad hoc analysis on reports more efficient and intuitive by eliminating the need to go back and forth between the report and the filter definition screen to modify filter values.
Per-Report Permission Management
In NetSuite Version 2012.1, report authors now have an even greater degree of control over allowing or preventing user access to specific reports, whether summary or detail. Report authors can specify access to aggregate-level reports such as in financial reports, but bar subsequent access to granular drill-down detail that may harbor sensitive information. It enables report authors to explicitly specify who has access to a given report, and by doing so, override any other permission that has been set for the user.
For example, this with this new report permission, a user may have permission to access a report that shows summary payroll information, but not have permission to drill into the related detail report that has underlying individual payroll information.
This release further enhances QuickView "hovers" that provide quick access to information and actions simply by hovering the mouse pointer over key fields. With this release, it's now possible to customize the fields that are shown in QuickViews by adding, reordering or removing them. Also, QuickViews can now be defined on custom records, and have been added to item, case and issue records.
NetSuite for iPhone App Now Supports iOS5
NetSuite's native application for the Apple iPhone is now fully certified for use with iOS5, Apple's latest version of iOS. By upgrading to this latest version of NetSuite's app, users benefit from full multitasking support enabling rapid switching between the NetSuite app and other iPhone apps without having to relaunch the NetSuite app each time.