SuiteCloud Development Framework (SDF)
SuiteCloud Development Framework is a development framework for implementing customisations for NetSuite. It is a really useful tool that streamlines the organisation and implementation of any project.
It can be used for developments in individual accounts, as well as for packaging customisations of an organisation such as SuiteApps and thus distributing them to different accounts.
It is very common to develop customisations in NetSuite without using SDF, however, it has many advantages that may make us rethink this behaviour:
Scalable complexity
It allows to manage the robustness of each customisation and its dependencies.
Supports version control of customisations
Provides ease of migration
It is fully customisable
Compatible with process automation
It has support for protecting, marketing and distributing customisations.
Any developer, at any level, will appreciate all these features, especially if they have invested time in customisations of an Enterprise Resource Planning system. These are enough reasons to implement a utility like SDF in your ERP, but it is true that it takes time and learning for a team to adopt it, to refine the formula, to achieve a truly efficient working methodology.
Version control
SDF stores an XML representation of each custom object. Precisely because it is an XML file, it has all the properties of any other text file.
For example, it can be stored on a local hard drive, it can be backed up using cloud storage and, most importantly, it is compatible with version control tools such as git.
This means that it allows you to track changes and maintain multiple versions of your custom objects.
Currently almost all NetSuite custom objects, (fields, records, lists, saved searches, etc.), have an XML representation, although not yet 100% of objects and configurations are covered. Hopefully this gap will be closed in the near future.
Ease of migration
I am absolutely certain that every NetSuite user has at some point wondered how to distribute their customisations between accounts. SDF provides a solution for this.
Whether using SDF’s command line interface or one of its IDE plugins (currently Eclipse & WebStorm), it is very simple to switch accounts and deploy selected customisations with just a few clicks or a simple switch.
A simple XML configuration file manages which files, objects and settings are deployed to the account, so we always have fine-grained control over what is deployed without having to create and manage multiple versions of packages.
In addition, SDF also leverages token-based authentication, so you don’t even need to worry about storing passwords.
Personalizable
Because SDF represents custom objects as XML files, it is not necessary to log into the NetSuite user interface to create or edit custom objects.
We can simply open an object’s XML file, make the appropriate modifications, save and deploy it.
Moreover, for those cases where we need to create several similar custom fields, we can also take advantage of SDF. We have the possibility to create a field from the user interface, download its XML file and have a template to create new fields.
Compatible con automatización
Many development teams leverage tools and build systems to automate much of their work, and SDF allows those systems to interact with custom objects.
Again, SDF converts NetSuite custom objects into XML files, so anything a continuous integration pipeline can do with an XML file, it can do with a NetSuite custom object.
Examples include:
- Automatically implement custom objects when new changes are merged into their main branch.
- Validate that all these objects have an appropriate Script ID before implementation
- Automatically generate and publish documentation from your custom field details
- Monitor our local project for changes to files and automatically deploy them when they change.
These are just a few features that help us to understand the wide range of possibilities available to us using a solution such as SDF in our NetSuite environment.
From my point of view, it is understandable that without going into detail in its implementation, it can be somewhat complex at first, and perhaps this can become a barrier to entry.
However, I hope that this article has been useful for you to understand what enormous advantages this framework can offer over NetSuite, and in the case of working with this ERP, that it also serves to rethink whether it would be worth implementing it in your team projects.