Sign up to receive SuiteScript examples and advice directly in your email inbox.

Best laid plans

Created: November 16, 2018

No plan survives contact with the enemy, and today the enemy was my 15-year old car. I had every intention of having a shiny new Subrecord video for you all today, and then the rear brakes went out on my car, so I've had to spend the day dealing with that instead.

Despite our best intentions and our most detailed plans, no matter how many years of experience we have, life will always have wrenches and curveballs and brake jobs to throw at us, and so will SuiteScript. No matter how much you study or how much you build, NetSuite and SuiteScript will always surprise you. There will always be a new error or an UNEXPECTED one; NetSuite's features and designs and APIs are in a constant state of change. It can be maddening!

It can be, but it doesn't have to be. I am a firm believer in learning and mastering the basic foundations and concepts. These will always serve you much better than the flavor-of-the-week JavaScript technique or some cool hack you found in a Stack Overflow answer. The stronger our foundation and the more consistent habits we develop around that foundation, the larger and more impressive things we'll be able to build on top of it.

Maybe I'm rambling; the point is that learning the foundational concepts like NetSuite's data model, its Script types, its event triggers, and establishing consistent, healthy patterns for common tasks and troubleshooting will make you a much, much better and less frustrated SuiteScript developer in the long run. It doesn't pay to memorize the methods of the N/runtime module if you don't understand what a Script Parameter is.