Understanding the Difference Between ClientScript fieldChanged() and postSourcing() Functions in NetSuite

by | Feb 9, 2024 | Tech Talk


NetSuite, being a powerful ERP system, provides various customization options for administrators and developers. One of the fundamental aspects of customization is scripting, where developers can extend the functionality of NetSuite tools using SuiteScript. In this blog, we’ll delve into two crucial functions within the client script: fieldChanged() and postSourcing(), understanding their differences, and when to utilize each.

fieldChanged() Function

The fieldChanged() function is triggered when the user changes a field on a form. This function allows developers to execute scripts based on user interactions with fields.


Let’s consider a common scenario where you want to dynamically populate a sublist based on the selection of a field. To achieve this, we recommend using the fieldChanged() function. Here’s a simplified code snippet:

function fieldChanged(context) {
    var currentRecord = context.currentRecord;
    var sublistFieldId = 'custpage_custom_sublist_field';
    var sublistId = 'custpage_custom_sublist';

    if (context.fieldId === 'custpage_trigger_field') {
        var selectedValue = currentRecord.getValue('custpage_trigger_field');
        // Logic to populate sublist based on selected value
        // This could involve fetching data from records, API calls, etc.

postSourcing() Function

Another common scripting function is the postSourcing() function, which is executed after sourcing values from the server or a different field. This function allows developers to manipulate field values after they’ve been sourced.


Consider a scenario where you need to perform some calculations after a field value is sourced from another field. You can utilize the postSourcing() function for this purpose. Here’s a simplified code snippet:

function postSourcing(context) {
    var currentRecord = context.currentRecord;
    if (context.fieldId === 'custpage_source_field') {
        var sourcedValue = currentRecord.getValue('custpage_source_field');
        // Perform calculations or manipulation based on the sourced value
        // Example: currentRecord.setValue('custpage_target_field', sourcedValue * 2);

When to Use Each

Use fieldChanged() is ideal when you need to trigger actions based on user interactions with fields, such as dynamically populating fields or sublists.

Whereas the postSourcing() is applicable when you need to manipulate or perform calculations on field values after they’ve been sourced from the server or another field.


Understanding the difference between fieldChanged() and postSourcing() functions is essential for NetSuite administrators and developers. While fieldChanged() is used for actions triggered by user interactions, postSourcing() is ideal for manipulating field values after they’ve been sourced. By utilizing these functions effectively, you can enhance the customization and functionality of your NetSuite optimization and implementation.

About Us

We are NetSuite solutions specialists with 30+ years of combined experience. We specialize in implementation, optimization, integration, rapid project recovery and rescue, and custom development to meet any business need. Although every business is unique, with 40+ NetSuite clients over the last 5+ years, our team has most likely seen your challenge or created a similar solution. If you would like to know more about us or just have any questions about your project, feel free to contact the NetSuite support service Here.

Join our mailing list to stay up to date on the latest NetSuite solutions.