This article is relevant if you need to get more out of NetSuite Advanced PDF / HTML template technology.
Background
NetSuite’s Advanced PDF technology is a welcome addition to the platform. Indeed, NetSuite appears to be making a push to retire its older HTML and PDF templates in favor of the new approach. The technology is a great improvement over the older techniques. I have written a number of articles about the technology having had hands-on experience seeking to get more than simple tasks done. See these articles:
- Interrogating NetSuite’s Advanced PDF / HTML Templates
- Framework for Generating Custom NetSuite PDF Files
- How To: Leverage NetSuite’s Advanced PDF / HTML Generation Tools
It’s become clear to me that so much more can and needs to be done to exploit the potential in this promising technology. Here are my general concerns when using the framework as provided out-of-the-box:
- Data Scope: The data you can build templates against is limited by what NetSuite offers in the context of the record you are working on. What do you do if you need more…?
- Syntax Limitations: NetSuite leveraged the Freemarker Template Framework and Big Faceless Organization (BFO) report technology in a limited capacity — see my article here on important considerations. What do you do when a documented feature doesn’t work?
- Debug / Data Inspection: It’s demanding to know what the underlying data looks like when building your templates. While the NetSuite Schema Browser is your best friend, it’s not complete. Why can’t we simply see the data that is being passed?
- Scripting: Ultimately, to get around the limitations, you are forced to use SuiteScript. While my team and I love to program, the reality is scripting is beyond the reach of many NetSuite customers; The ever recurring and similar data output requirements inherent in this environment suggest that a better application is in order.
Advanced PDF / HTML Communication Application
For a recent client in the information technology hardware business, we built an extensive asset manager application to extend NetSuite’s Serial Number Inventory Detail record structure. The asset manager supports the ongoing maintenance and care of inventory that has been sold to distributors and end customers. The asset manager tracks license keys, support entitlements, and maintenance history.
I share this because it sets up the challenge to produce meaningful business communications with NetSuite’s Advanced PDF / HTML built-in tools (see image). The client wanted to send an information rich ship confirmation email. Immediately, we recognized we needed powerful ways to quickly craft and communicate the richness of information contained in our custom designed asset manager application. For the reasons suggested above, it wasn’t not going to cut it to have to produce SuiteScript for every communication output.
Consequently, we solved the problem through a new Advanced PDF / HTML Communication Application. Sure, we still must generate the template; but we needed a new way more quickly describe the problem and enhance our template development efforts to be more productive.
Solve NetSuite Data Scope: Reach any Searchable Data
The first NetSuite challenge is one of the most important. (click on image above). We needed to once-and-for-all get beyond the Saved Search limitation to join data only one table away. By being able to describe a hierarchy of table relationships via multiple saved searches, we could present a very deep expression of data in question for our template to work on. Study image to see relationships between saved searches.
Solve Syntax Limitations:
The key to understanding NetSuite’s template environment is that Freemarker tools are not your only option. If you take matters into your own hands, you can use a different templating technology. See article here on how we leveraged Trimpath, an alternative to Freemarker. In addition, NetSuite has now implemented the Handlebars.js template technology in the SuiteCommerce Advanced area of the platform. We too can use that technology in this application. Once you are in a template technology implemented purely in JavaScript, you can inspect all your data through rich built-in capacities.
Solve Debug / Data Inspection:
We needed a quick and friendly way to act on data sets against the template while in development. Why not be able to get a preview of the output side-by-side with the template code so refinements would not require the frequent uploading or cut-and-paste operations so tediously required in traditional Advanced PDF / HTML development? See image.
Solve for Scripting:
By creating an application, we are able to create a Communication Profile record which effectively describes the targeted communication. The communication may be an Email so we can define the Subject and leverage variables where needed. Finally, we don’t need script except to produce a hookpoint (e.g., workflow) where the application will trigger the needed communication.
With these tools in hands, we can now quickly describe our data requirements, see our data, and more quickly build our template.
Advanced PDF / HTML Tool is Available for Any NetSuite Account
The application illustrates my team’s capacity to innovate on the NetSuite platform. We are happy to provide this tool to any NetSuite Administrator without charge as it is not formally packaged as product (yes, it is a SuiteBundle for distribution). Because of its advanced mechanism to reach data through linked saved search definitions, any prospective NetSuite Administrator will need a bit of hand-holding to learn how to work with the tool.
If you have a challenging application for NetSuite’s Advanced PDF / HTML tools, let’s solve it together with this application. You will then be empowered to leverage it in other use cases in your organization. Reach out to me and let’s start a conversation.
Related Articles
We are committed to this space. See other articles that are most relevant for NetSuite users working to get more out of the Advanced PDF/HTML tools:
- How To: Leverage NetSuite’s Advanced PDF / HTML Generation Tools
- Interrogating NetSuite’s Advanced PDF / HTML Templates
- Solved: Custom NetSuite Item Fulfillment Ship Notifications
- Framework for Generating Custom NetSuite PDF Files
See Related Articles
- Easier Crafting with Data-Driven Syntax for NetSuite Advanced PDF Templates
- Learn the Framework to Extend NetSuite Content Generation
- Enhance NetSuite’s Vendor Portal to Drive Electronic Banking
- Understand Complexities to Drive NetSuite Labeling in Manufacturing
- Extend NetSuite Customer Statements
- Content Renderer Engine 2.0 with NetSuite SuiteQL
- The Easy Way to Generate NetSuite XML Files
- Elevate NetSuite Print Permissions with a Custom Suitelet
- Learn NetSuite Two Dot Saved Search Notation for Distant Joins
- Learn how to Overcome NetSuite’s 10 MB PDF File Size Limitation
- How To: Add Custom Fonts to NetSuite Generated PDF Documents
- Assess NetSuite’s SuiteAdapter Options for Remote System Integration
- How SuiteLets can Emulate NetSuite Saved Search to Join Multiple Searches
- Learn how to Connect Zebra Printers to NetSuite
- Learn How to Teach NetSuite to Generate Dynamic Excel Spreadsheets
- Breakthrough NetSuite’s Contact to Entity Role Relationship
- Learn how to Perform Date Math in NetSuite FreeMarker Advanced PDF Templates
- Understand NetSuite 1099 Challenges with SuiteAnalytics Workbook Inspections
- Solving the NetSuite Aged Inventory Challenge
- Understand NetSuite nlapiSendEmail and notifySenderOnBounce Usage Implications
- Learn How To Accept Different Foreign Currency in NetSuite Cash Receipt Operations
- NetSuite Driven Returns Flow Design Considerations
- Learn how to Send NetSuite Late Invoice Reminders
- Learn how to Batch Generate NetSuite Driven Documents
- Replace NetSuite’s Rich Text Editor with a Custom HTML Editor
- Track NetSuite Inventory In-Transit with Freight Containers and Automated Landed Costs
- Global NetSuite Locale Based Content Generation
- Quickly Solve NetSuite Advanced PDF “Error Parsing XML” Template Challenges
- Considerations: Migrating NetSuite CRMSDK Templates to Scriptable Freemarker
- Learn How to Bring NetSuite Subsidiary Data into Advanced PDFs
- Yes You Can: Generate a NetSuite Customer Statement on an Invoice with Customer Deposit Accounting
- Watch your Braces: NetSuite Handling Rules for HTML SuiteScript Developers
- How To: Insert Multiple NetSuite Aggregate Saved Searches to Google Charts
- Learn how to Automatically add an Attachment to a NetSuite Message Object
- Learn NetSuite Advanced PDF/HTML Templates with CSS Styling Variables
- How To Produce Additional Transactional Financial Information When Learned Late in Process
- Get a Handle on NetSuite PDF Templates: Handling The Ampersand (&) Symbol
- Master Advanced PDF CRE Templates: Formatting a Number with Proper Comma and Decimal Placement
- Video: How to Extend Advanced PDFs with Content Renderer Engine
- How To: Password Protect NetSuite Generated PDF Files
- Understand NetSuite Item Groups vs. Kits to Produce Superior Reporting
- How To: Create Custom NetSuite Workflow action with SuiteScript
- Solved: Custom NetSuite Item Fulfillment Ship Notifications
- Platform Driven NetSuite Recurring Billing Engine
- Interrogating NetSuite’s Advanced PDF / HTML Templates
- How To: Leverage NetSuite’s Advanced PDF / HTML Generation Tools
Hey Marty,
I’m stumped at how to use a suitescript to pull data into an advanced pdf/html picking ticket. Basically, Netsuite support has told me that they never enabled binnumber (bin records) for each item.
Currently the picking ticket ends up putting Item#, Description, UPC, Qty ordered, but we are making a combined Picking and Packing slip. In order to do that, we need the associated bin#’s for each item. It’s not the obvious .. ie: ${bin.binnumber}, ${item.binnumber}, etc..
After working on this for several hours last week, I submitted the ticket to Netsuite. They said “it’s an enhancement that is coming for advanced pdf/html”.
The sad thing of course, is that these fields are easily found via the api. I created a web app for our warehouse where pickers can walk up to one of the several mounted tablets, type in a item# or UPC and find out where the bins are as well as quantity and the preferred bin!
If you could be so kind as to guide me on how to add the binnumbers per item for this pick/pack advanced pdf/html, that would be fantastic!
Cheers,
Mark
Hi Mark,
When you can’t get to data via the out of the box Standard Advanced PDF templates, we now are leveraging this tool we built:
https://blog.prolecto.com/2015/06/01/supercharge-netsuite-advanced-pdfhtml-templates/
If you can craft a search to get to the data, then we can help. We are offering this tool free of charge for any client that needs an implementation through our professional services. Once you get the hang of it, you will be able to create complex searches, link them together, and feed them into the Advanced PDF / HTML engine to trigger emails and document creation.
Marty
Hey Marty,
Our company would definitely be interested in this tool. How do we go about getting this tool implemented or what willy our team need?
Please drop me a line at your earliest convenience at my email address.
Cheers,
Mark
Hi Mark,
I will send you an email. Here is what we need to prepare:
1. Determine what problem you want to solve with the tool. I assume it is the picking ticket one outlined here.
2. Craft the saved search(es) that get to the data. Don’t worry if the searches are not connected. We will help you.
3. Determine the output format. Mockup what you want to help us see it.
4. Determine the desired distribution mechanism.
With this information in hand, I can make an assessment of the estimated professional services require to install the bundle, configure the first content, educate you and your team, and get it working. Once we finish one, you and your team will be positioned to craft them without us.
Marty
Hi – Is CRE an add on or a module you have to purchase? Also, would this help solve my problem with creating reports that tie custom forms to transaction forms? I can get the data from saved searches but not easily and not formatted the way we need the reports to format.
Thanks!
Kim
Hello Kim,
CRE is offered license free but we do ask that we help you implement it so that you learn how to help yourself. Indeed, we have found clients move to a single NetSuite form so they can support any number of outputs (pdf, html or other). Sometimes, I see situations where administrators make copies of NetSuite forms only because they want a different output template. Those days are over. Go to this page and let me know your application: http://www.prolecto.com/services/innovations/
Marty
Marty, I’m a “newbie” NetSuite admin and I have created several internal reports to manage our relationship with our clients. Right now, I want to use some of the reports I’ve created as the source data for the advanced HTML/PDF templates, but I found out those are to be used only with transaction data by default. Is there any way to use the advanced templates with data coming from a simple saved report?
Hi Edson,
Unfortunately, no. The NetSuite Report system is independent from the Saved Search system. And the Advanced PDF system is basically offered as they give it to you unless you script. We have overcome the limitations with the Content Renderer Engine. However, I often share with people new to this tool that “so long as we can search for the data, we can get output it”. Finally, we offer a capacity that allows us to stuff more data that is not served via saved search into the CRE reporting environment. But that method does not include NetSuite reports.
Marty
Does the element work in NetSuite?
I can’t seem to get it to work
Hello Elie,
Yes, of course, this works in NetSuite. Can you say more about what you are trying to achieve?
Marty