Programming on any cloud platform can be a really frustrating experience. NetSuite has a lot of the same quirks and annoying things that other platforms have whether it be Salesforce, SharePoint, or something else. All of that aside, there are some good things if you try to be self sufficient and aren’t scared to reach out to NetSuite or have a decent network of other developers or consultants.
NetSuite SuiteAnswers
It can be incredibly frustrating because of really inconsistent documentation. The most annoying part of doing development for NetSuite is that there isn’t really a lot of resources online to help solve problems. There can be some really bad naming conventions that exist within NetSuite. For example, the transaction status codes are really strange
Generally, the 2010 looking website does have my answer or something close enough to help me reframe my query to find what I need.
Know JavaScript
If you already know JavaScript a lot of the potential problems can be solved by using SuiteHelp or SuiteAnswers. For the most part, I can get my answers on SuiteHelp it’s just annoying not being able to easily search using Google.
Under the hood NetSuite uses the Rhino javascript compiler to compile javascript to java files for execution. Assuming you use the most recent version of SuiteScript, you can do most things that you can in a browser (ie promises, async/await, etc).
Older versions of SuiteScript (v1) used really long internal API names for objects or methods. Newer SuiteScript thankfully uses a more object oriented approach.
Client Side Scripting
Thankfully, the Client Side Scripting APIs nearly identical on the client side as they are on the server side. This allows us to potentially test and debug our server side code in the browser. We just need to open up the Chrome Developer Tools or use Firebug to see where issues are potentially happening.
Performance
Like Salesforce and other cloud platforms, NetSuite can have a really challenging programming environment because you can’t exactly predict what the performance of your scripts will be.
It’s really important that you pay attention to whether queries are executing in a loop or not, making sure that you are using the right data types, and ensure that you are handling the limits. Hitting limits causes exceptions to be thrown which generally can’t be caught.
Transaction Handling
One of the potentially cool, and sometimes strange, things of NetSuite is that all the line items of a transaction be accessed as separate transactions. Sales Orders, Cash Sales, refunds can be accessed separately or at the same time even.
Wrapping It Up
NetSuite development and customization is not without it’s quirks. It can be really rewarding to work cross functionally with a lot of different departments and teams to solve problems.
The biggest thing with NetSuite is needing to be able to search for exactly what you need and not being scared to ask others.