Are you a NetSuite Developer who missed SuiteWorld this year? If so, in this blog we’re going to cover all the relevant information that you need to be in the know.
There were several new features introduced in the most recent release, as well as those that can be expected in the near future, those that we will cover here are:
SuiteCloud Development Framework (SDF):
From a NetSuite developer’s perspective, it is safe to say that the highlight of SuiteWorld 2017 was the feature dubbed the “SuiteCloud Development Framework (SDF)”. Although it is still in BETA, NetSuite is so proud of this announcement that they expanded on this single feature over three different break-out sessions. It is one of the mind blowing features in this new release that we were looking for!
The concept of SDF was actually first introduced as SuiteCloud IDE in 2015 as an Eclipse plug-in. The purpose was to provide developers a better coding environment. The features included: files download/upload, code auto completion and embedded library.
These were probably not interesting enough to sway developers to use Eclipse if it wasn’t already their IDE of choice. So, SuiteCloud Development Framework also had a few limitations. To give an example, SDF had trouble supporting subfolders hierarchy. As a result, directories were not copying files over to the file cabinet correctly to match what was in Eclipse’s folder structure.
Now SDF has evolved to a whole new level and was just released before SuiteWorld 2017. SDF now allows developers to export configuration of customizations including workflow, scripts, forms, saved searches and more into Eclipse (users can also opt to use command line if other IDEs are preferred) in xml format and to deploy them to another account.
The folder issue described above is also fixed so that developers can have the same folder structure as what they have in the File Cabinet in NetSuite. Developers also have the ability to validate deployments before they are scheduled.
That might not seem like a lot to a non-technical person. However, it is huge when you think about the fact that now all customization can be stored in xml form (as code). It means that you can now store NetSuite configuration and customizations in your repository, which enables users/developers to do the following:
Not to mention SDF users can now deploy all customizations to an account with one click. Remember the time you spent bundling your customization and creating individual custom records in a new account? Gone. Remember the days debugging your application because somebody changed your field sourcing? Also, gone. It could change the way customizations and SuiteApps are developed and maintained (in a better way). Nice job, NetSuite!
Token Based Authentication:
Token Based Authentication (TBA) has been available since 2015.1, allowing token authorization for RESTlets and WebServices. In a nutshell, token authorization allows applications to interact on your behalf without using credentials. It is essentially the Oauth 1.0 spec and grants a few security and convenience features:
Techfino has developed integrations utilizing token based authentication already and we plan on releasing a separate blog and guide detailing our experience.
Application Performance Management (APM):
This is one essential tool for the account owner or IT administrator. It could also play an important role in optimization projects. Data is provided under visual form in bar diagrams, heat maps and more using the Portlet on one’s NetSuite Dashboard. With this SuiteApp, users will be able to view account performance at any given time. It also makes it possible to identify a performance issue without any knowledge of the SuiteCloud or any customizations done to an account. It includes the following features:
SuiteScript 1.0 vs 2.0
SuiteScript 2.0 has been released for more than a year. It is still not as widely accepted as 1.0 due to several reasons including that documentation and error handling are not as mature as 1.0. It is pretty obvious that NetSuite is trying to give a real push to 2.0 and encourage everybody to move to 2.0. So, now is the time to get into 2.0 if you haven’t done so already. Below is what we learned regarding 1.0 vs 2.0 from SuiteWorld:
Query with Multi-Level Joins
If you have been working with SuiteCloud, chances are you already know that we can only do one level join when creating a search. This often leaves developers/designers some limitations whenever usage or even runtime is concerned. With this coming feature, developers/designers will have a whole lot more room to work on different designs.
From a SuiteCloud perspective, users can now use one search in place of numerous searches. This will lower the usage consumption and increase performance so that things that could only be done in a Scheduled or Map/Reduce script can be moved to User Event scripts. Real time heavy lifting integration won’t be impossible any more.
Now, NetSuite has been talking about this feature for some time because they are working on a few backend processes that need to be changed. We’ve been waiting for over a year and there is still no timeline available on when it will be released, but we’re sure it will make development and reporting in NetSuite much easier when it is finally released.
SuiteFlow Item Sublist Support:
There are numerous considerations to take into account when deciding between a workflow or a script for a particular solution. Workflows are easier to read and can be maintained without needing to know code, however they have limitations and aren’t as “powerful” as scripts.
One major limitation SuiteFlow has in comparison to scripts relates to line level detail, “Workflow Actions cannot manipulate line items on a record…“ (SuiteAnswer 62615). Netsuite is now filling this gap with the promise of the following features under their safe harbor statement:
These new features will allow simpler solutions to be appropriately handled in workflows as opposed to needing a script. Allowing for more custom solutions to be created in SuiteFlow will lower reliance on technical support and allow for focus to be placed on other solutions where scripting is necessary.
{REST}:
NetSuite has teased at a new type of web service integration with a somewhat confusing name due to their already existing RESTlets. There were a few details released, but nothing significant. The integration will have the same record exposure as SuiteScript and was noted to utilize JSON as opposed to XML, which is utilized for SOAP integrations. {REST} does not require a deployment and appears to operate similarly to existing web services taking generic calls as opposed to script defined logic for processing.
SuiteCloud Processors:
NetSuite revisited the management of queues in NetSuite moving towards an automated approach. Currently, accounts with multiple queues can run scheduled and Map/Reduce scripts concurrently in each queue. Queues are assigned manually on deployments, however, which can get complicated in large implementations by keeping processes from fully utilizing the hardware provided. The new queue processing feature has considerations on priority for certain scripts and utilizes a scheduler and load balancer that will automatically place scripts in queues. Here are NetSuite’s released initial metrics with the automated SuiteCloud Processor:
Data Center Expansion and Sandbox:
NetSuite also revisited sandbox accounts, focusing on unifying the production and sandbox domains by migrating the sandbox domains to the production domain, (https://system.netsuite.com). Sandbox accounts will appear in the same list of roles with a new column added specifying the sandbox or production account type.
While combining both production and sandbox into a single domain simplifies development and configuration, the separation also provides clear and well defined differences between accounts which can give peace of mind when testing and developing.
Did you attend SuiteWorld 2017 and hear all about these in-demand features for developers? Let us know your thoughts! And be sure to contact us with any questions about these features you may have.