This article is relevant when you need NetSuite to generate documents, emails, PDFs or other outputs based on a set of user inputs or questions.
Background
A client in the wine distribution industry needed a flexible price book system. Earlier this year, I wrote an article on how to Gain Full Control with Custom Generated NetSuite Customer Price Lists, but this client had unique requirements that called for a custom pricing solution.
The system had to integrate with sales processes, such as quoting and order entry. Additionally, the client’s salesforce needed access to tailored price lists for various sales campaigns. Given the large wine catalog, each salesperson required the ability to customize their price lists accordingly.
To meet these needs, we developed an input selection screen that allowed the sales team to generate price lists tailored to their specific requirements, with output options in either PDF or CSV format.
Solving for the Basic Inquiry Screen / Targeted Output Pattern
The client’s requirement fits a typical business application design that I refer to as the “Basic Inquiry Screen / Targeted Output” pattern.
The NetSuite platform offers all the fundamental mechanics to address this. However, there isn’t a single, definitive method that stands out as superior. A typical NetSuite developer might approach the solution in the following way:
- Create a Custom Record to represent the input selection options.
- Use point-and-click customization to design a form that presents the options to the user.
- Allow the user to interact with the form and, upon clicking save, use the data captured in the record to help generate the output.
- Now, trigger a workflow or script upon saving the record.
- In the workflow or script logic, leverage NetSuite’s capabilities to generate the targeted output. Scripting will likely give more flexibility.
While this approach is functional, it has important shortcomings:
- The custom record is not ideal for this operation. Its primary function is to save records, not to act as a user-friendly interface for targeted outputs.
- The program logic for generating the output is hardcoded into the script or workflow. This work is not trivial. Any future changes require modifying the code, creating a higher dependency on the original developer responsible for the solution.
A Superior Pattern for Targeting Complex NetSuite Outputs
The solution I outline below uses license-free tools that we offer to all our clients. This approach builds on key components that deliver greater flexibility, making development, changes, and usage more efficient and straightforward.
Leverage Prolecto’s License Free Content Renderer Engine
Our Content Renderer Engine (CRE) is the key tool for addressing this challenge. This tool enhances NetSuite’s Advanced PDF capabilities by allowing analysts to build a complex data model, which can then drive any type of output—whether PDF, CSV, Excel, Email, HTML, or even formats like XML, JSON, Flatfile, or custom JavaScript.
The simplified pattern works as follows:
- Build the Input Form: The custom record approach can be used to craft a user input form. What it lacks in control, it makes up for in rapid development.
- User SuiteLet: Alternatively, build a NetSuite SuiteLet to create a custom user input form. This SuiteLet leverages NetSuite’s infrastructure, including user interfaces and permission management. The skill to develop these User interfaces requires NetSuite scripting as Workflows are not meant to be “from scratch” user interfaces. Thus, the bar is higher on this approach but yields the greatest control.
- Pass SuiteLet Inputs to the Content Renderer Engine: Once the inputs are gathered, they are passed as parameters to a Content Renderer Engine Profile. Passing inputs to the engine is very easy by supplied workflow actions or well-defined SuiteScript interfaces.
- Generate Outputs: The Content Renderer Engine provides a robust environment for creating, developing, and testing the desired outputs. Users familiar with Advanced PDF templates and saved searches will find this tool intuitive. While the engine works behind the scenes, the user only sees their requested output and is satisfied with the result.
The output generation is where all the complexity lies. Thus, the major breakthrough lies in the license-free tool as NetSuite’s out-of-the-box infrastructure offers little help for most administrators. The Content Render Engine closes that gap and makes the environment highly productive.
Click on the images to explore the tool’s capabilities further. In one example, depending on the user selection, we use a single Freemarker (NetSuite’s highly flexible string manipulation technology) template to generate a PDF or CSV file. Logic is effectively centralized.
Previous Articles on the Content Renderer Engine
The Content Renderer Engine (CRE) was developed nearly 10 years ago (and has since undergone a complete rewrite) out of necessity to meet the demands of our clients’ NetSuite implementations. We frequently encountered situations where administrators were forced to manually copy data between records due to the limitations of NetSuite’s Saved Search and Advanced PDF tools.
This license-free tool solves many of NetSuite’s data access challenges by enabling seamless interaction with the database. It allows us to retrieve data at any depth and feed it into template technologies to create a wide range of outputs, including reports, dashboards, documents, emails, and other formats.
For more insights into the capabilities and applications of the Content Renderer Engine, readers can explore these previous articles:
- 2023: Learn the Framework to Extend NetSuite Content Generation
- 2022: Get License Free Tools to Link NetSuite Saved Search / SQL to Extend Data Reach
- 2021: Content Renderer Engine 2.0 with NetSuite SuiteQL
- 2018: Join Multiple NetSuite Saved Searches to Build a Data Universe
- 2016: How To: Insert Multiple NetSuite Aggregate Saved Searches to Google Charts
- 2015: Supercharge NetSuite Advanced PDF/HTML Templates
- 2015: Video: How to Extend Advanced PDFs with Content Renderer Engine
Here are related articles that demonstrate how to use the technology to solve Invoice and Customer Statement use cases:
- 2021: Extend NetSuite Customer Statements
- 2018: How to Produce a NetSuite Consolidated Invoice
- 2016: Yes You Can: Generate a NetSuite Customer Statement on an Invoice with Customer Deposit Accounting
Use the Content Renderer Engine to Solve the Inquiry Screen / Targeted Output Pattern
At our firm, we frequently address common client requests using the Content Renderer Engine. These license-free tools are meant to become our clients’ tools. We empower our clients’ NetSuite Administrators to handle these challenges themselves. Typically, we guide them through their first use case, turning it into a learning experience so they can manage similar future tasks independently without needing our ongoing support.
We firmly believe that by enabling our clients with superior patterns and approaches, we will be trusted to tackle their other complex NetSuite endeavors that may baffle others. We are recognized for the leadership necessary to unlock the shackled value promised by Oracle NetSuite: efficient and scalable business operations and reporting.
If you found this article relevant, feel free to sign up for notifications to new articles as I post them. If you have a challenge that this pattern will solve, let’s have a conversation.