NetSuite Process Method: Hierarchical record balancing via workflow or mass update

Audience

This article is for NetSuite Administrators or Developers looking to execute record balancing using native functions only (No code!). We define a few native NetSuite functions that can perform Parent Record to Sub-Record data synchronization.

Our use case in the article relates to Customer (Entity) records; however, this can be applied to any record combination when controlling record is Parent. Another example could be a “Master Work Order” (Custom Record) that can control functions for multiple Work Orders that would lie beneath it.

The Challenge

This is a request we’ve repeatedly seen from our clients. Their users want to be able to manage data from a single record and have it apply down to the sub-records. Prior to engaging us, we’ve heard from clients where their users were spending hours updating records twice due to the fact that there are not dynamic connections between the parent and sub-records (similar to the capabilities of a Matrix item).

The Solution

There are two methods you can use depending on your familiarity with NetSuite’s bulk update methods and depending on the configuration of the underlying customer records.

Scheduled Workflow Method

A scheduled workflow has the advantage of being able to update fields on the associated records regardless if the fields are shown on the default customer form or not. This method may be a bit more complicated to set up for users that are less familiar with NetSuite administrator configurations.

STEP ONE: Start by creating a new Saved Search looking for the sub-customers which would be updated from the parent customer record. We recommend configuring your criteria in a way where sub-customers that are already in-sync with the parent customer not be included in the results (since they do not need to be updated). Excluding already-synced sub-customers will also improve performance of the workflow.

In the example below, we’re looking for Sub-Customers who do not have the “2020 New Customer” flag set, but whose Parent Customer’s do have that flag set. Also, be sure to add any other custom criteria you have for customers which should not be updated (e.g. set certain classes of customers who shouldn’t be synced to each other).

Saved search for workflow

STEP TWO: Create a NetSuite Customer workflow against your desired sub type(s). Configure the Initiation as Scheduled, and enter the Saved Search from STEP ONE as the Saved Search Filter. Configure the schedule on which you want the scheduled workflow to run (i.e. Daily, Weekly, etc).

Workflow definition

STEP THREE: Create a new Set Field Value action within your workflow state, and configure the field you want to sync with the parent customer. In this example, we’re setting the sub-customer’s “2020 New Customer” field value to the parent customer’s “2020 New Customer” field value.

Workflow — set field value action

When the scheduled workflow executes, the sub-customers that are populated on the saved search from STEP ONE (which are out of sync with the parent customer) will have their field value updated to what is set on the parent customer.

Depending on your familiarity with saved searches and workflows, you can combine multiple fields to be balanced and synced within the same saved search/workflow combination by adding additional saved search criteria and Set Field Value workflow actions.

Mass Update Method

A Mass Update may be easier for users who are less familiar with administrator configurations within NetSuite, but it can be more limiting of fields that are available to be updated. For mass updates, the fields have to be visible and editable on the default customer forms.

A key advantage of the Mass Update method is that all update components are contained within the same Mass Update record, whereas the Scheduled Workflow method would require at least 2 components: a Workflow and a Saved Search.

How to do it

Start by creating a new Mass Update against the Customer record type under General Updates. Configure your mass update criteria to look for the sub-customers which would be updated from the parent customer record. We recommend configuring your criteria in a way where sub-customers which are in-sync with the parent customer are not included in the results (since they wouldn’t need to be updated). Excluding already-synced sub-customers will improve performance for the mass update.

In the example below, we’re looking for Sub-Customers who have shipping account numbers that are different than the shipping account numbers listed on the Parent Customer. Additionally, add any other custom criteria you have for customers which should not be updated (e.g. certain classes of customers who shouldn’t be synced to each other).

Mass Update Definition — Criteria

We recommend adding both the Sub-Customer fields and the Parent Customer fields to the Results subtab (as shown, below) so that you can visually validate that the criteria is pulling the expected records by viewing the results for each record.

Mass Update Definition — Results
Mass Update — Preview Results

On the Mass Update Fields subtab, configure the sub-customer fields to be set from the parent custom record. Note: for a field to show on this page, it must be visible on the default customer form, and it must be editable on the form.

Using a formula with the parentcustomer join, we’re able to access the values from the parent customer so that they can be set on the current sub-customer when the Mass Update is triggered.

Mass Update Definition — Formula

Finally, run some tests to validate the results of the criteria and mass update functions. If everything looks as expected, navigate to the Mass Update’s Schedule tab and configure the schedule on which you want the mass update to run.

Mass Update Definition — Scheduled

Conclusion

Ensuring hierarchical record balancing is a common requirement with many of our clients and thought to share a couple of methods.

If you have some methods you would like to share, or if you would like to have a discussion, drop us a line and let’s talk.

About eXtendTech

eXtendTech holds decades of NetSuite expertise as Business Users, Administrators, Implementers, and Developers working within the application daily. eXtendTech authors NetSuite bundles and provides professional services for businesses looking to streamline their operations, improve their profitability, and increase their customer satisfaction. We know NetSuite, and we know how to fill gaps and work around NetSuite limitations.

The eXtendTech team has two (2) primary offers:

  • NetSuite Solution Design & Customization Services
  • eXtendTech NetSuite Applications

eXtendTech builds applications to deliver powerful functionality to you efficiently and cost effectively. When engaged with services, we strive for exceptional care and quality behind our NetSuite solutioning and implementation delivery. Going deeper to create meaningful solutions in a thoughtful and deliberate manner is what we do.

eXtendTech is a NetSuite solution partner that develops applications to improve efficiency, productivity, and savings within the NetSuite platform.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

All about Torrent world

Retry with Feign Client

The journey to building a full microservice app. Connection with Redis server.

How to deploy Azure VM using ARM template and Password is in KeyVault!

Stop Dreaming So Big

The Pyramid Problem

Computer Science for Everyone — Part II.

New functionalities. Release V1.12

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
eXtendTech Team

eXtendTech Team

eXtendTech is a NetSuite solution partner that develops applications to improve efficiency, productivity, and savings within the NetSuite platform.

More from Medium

Amazon EventBridge to route events from buckets in multiple regions to single lambda function

How to close specific running app through matlab code?

Integration with IntelliH Brings Advanced Remote Patient Monitoring (RPM) to DrChrono Platform

Http PUT vs PATCH On high level, both PUT and PATCH are used to modify a resource denoted by the…