This article is relevant if you are using NetSuite’s Electronic Banking add-in module and you find it cumbersome to edit bank file templates.
Background
NetSuite offers a free and paid-for bundle technology to help produce bank batch files for the distribution of electronic payments. The bundle is “managed” in that NetSuite can push updates into a NetSuite account as needed. The record structures are locked preventing NetSuite administrators from performing traditional point-and-click structural enhancements.
When setting up the Electronic Banking record, an administrator will spend time developing and enhancing the Payment File Format record. This record holds template definition and other validation metadata designed to be applied against business records to ultimately generate the file that is distributed to the bank as payment instructions. Note, my 2021 article, Automating NetSuite Bank File Transmissions, discusses capacities for automating the resulting files to/from the bank.
When working with one or two formats, the record poses no real challenges. However, if you end up having many Payment File Formats and respective template definitions, it becomes cumbersome. This often comes up when performing global banking against many currencies and payment types. Most software developers are comfortable working with code and template definitions in conventional code editors. Most code editors all work with files in batches. The beauty of working with files is that you can apply code revision software, such as GIT, to help manage code/template versions.
Yet, NetSuite’s Electronic Banking Payment File Format expects you to manage template definitions in individual fields. This becomes a heavy back-and-forth copy-paste operation. If you make a mistake in your field update, there is no version control. In addition, if you want to apply a global change to some or all your templates at once, it’s going to be difficult to do as the data is buried in fields across multiple records.
Treating NetSuite Electronic Banking Payment File Formats as Files
Matthew M., Senior Tech Analyst and long-term member in our firm, came up with an innovation to get around this concern. As the record is locked, NetSuite does not allow modification to the Payment File Format. However, the record does support raising conventional User Events. This means that as we load and save the record, even though it is locked for structural modification, we can act on the record’s data and presentation.
The first order of business was for Matthew to automatically create a unique file in NetSuite’s file cabinet that represents the template field on the record. Whenever the Payment File Format is saved, the custom Before Load record script would read the contents of the cabinet file and replace the contents of NetSuite’s native field with the data. I like to think of this as the record automatically slurping up the contents in the file.
To prevent confusion for the end-user, when the Payment File Format record is in edit mode, Matthew used a Before Load script event to do the following:
- Hide the Native Field: we don’t want the user to update NetSuite’s native field — so hide it to not tempt them.
- Draw a File Link: create and present a link to the user to make it easy to get to the right cabinet file.
Now that the files are stored in NetSuite’s cabinet, they thus can be edited using conventional approaches.
Mass Update NetSuite Payment File Format
If there is a requirement to modify some or all the data in the payment file format template, using the conventional file editing tools, this can easily be achieved. Once the edits are complete, the files thus are all updated in the cabinet.
The next order of business is to have the Payment File Format records pull in the file-based data into the native field. This can be achieved by a record “touch”; effectively a record load and save with no deliberate change of data. Prolecto has built a (license-free to clients) utility library and “touch” is one of the features that administrators often need to do to trigger record operations. Thus, using mass update, all the Payment File Format records are updated to slurp up the globally modified file contents.
Watch Payment File Format to File Cabinet Video (3:47)
See a short demonstration of the enhancement (3:47)
Get the Electronic Banking Payment File Format File Cabinet Enhancement
Like all the innovations we do for our clients, this algorithm is license-free for our clients. The pattern can simply be applied to other situations where needed. For example, this may make sense in some of the legacy eCommerce features.
Note, if you are a NetSuite technical expert, you likely immediately know how you would build such a capacity. You may be just the right kind of professional that should be valued for your innovation capacity — perhaps it makes sense to consider working side-by-side with our team to grow your experience and connect with other dedicated professional actors?
If you found this article helpful, feel free to be notified when new articles are published. If you are a NetSuite Administrator and you would like to get this algorithm and/or you hold high standards for care and seek to be affiliated with other like-minded professionals, let’s have a conversation.
Brilliant! I think this will help a lot of folks who have to manage and maintain many payment file templates.
-Roy
Thank you Roy.
Marty
Hi, which role can crate and edit file format?
Hello Luis. We can control the file / folder permissions as necessary as we are using UserEvents and SuiteLets to drive the logic.
Marty
Can you teach how to generate payment file format as XML? For JP for morgan bank account
Hello John,
We would leverage our license-free tool, the Content Renderer Engine (CRE) to craft the content. See here:
https://blog.prolecto.com/2022/04/23/learn-the-framework-to-extend-netsuite-content-generation/