October 12, 2020

Redundant Department of Redundancy Department

I love SuiteScript 2.0, and 2.1 moreso, but the design of the API can lead to some extremely repetitious, verbose code, e.g. :


While I love that records provide a fluent interface, which lets us chain methods and avoid repeating the variable name, there’s still a little left to be desired from the duplicated method calls (setValue, setValue, setValue, …). The problem gets magnified when you’re calling one of the more verbose methods over and over:


Luckily, plain old JavaScript Arrays give us a lovely way of reducing our repetition and condensing this kind of code block. For all the fields we want to set, we construct an Array of the parameter Objects, and then use the Array’s forEach method to invoke our setValue on each Object:


In 2.0, the only difference is:

.forEach(function (f) { rec.setValue(f); })

​In theory, we should be able to say


without the full function expression, but it seems that NetSuite doesn’t bind the context correctly to rec and fails with an error.

The same pattern can be followed for many other common repetitious scenarios, like Search Filter/Column creation.

I’ve taken quite a liking to this pattern for condensing repeated method calls. How does it look to you?

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Related posts

March 3, 2021

Does the physical location of a competent employee change the amount of value they can deliver for your organization? If it does, I’d be keen to hear your story. If it does not, why ...

Read More

March 2, 2021

Today a friend and former colleague of mine – who happens to now be in a development leadership role for a NetSuite partner – was lamenting the extreme difficulty of finding and hiring NetSuite ...

Read More

March 1, 2021

Software is never finished; clients are always changing and re-prioritizing. NetSuite is ever a moving target – always updating and evolving. Market forces are always shifting and shoving, forcing new demands on your business. ...

Read More