Module 10: Script Parameters

Week 6 • NetSuite SuiteScript 2.0 Training • ~45 minutes

🎯 Learning Objectives

1. What Are Script Parameters?

Script parameters are configurable values attached to your script that can be changed without modifying code. Think of them as settings that administrators can adjust.

💡 Why Use Parameters?
  • Change behavior without editing code
  • Let admins configure values (discount %, email addresses)
  • Pass data between scripts
  • Different values per user or deployment

2. Parameter Types

TypeScopeSet ByUse Case
CompanyWhole accountAdminCompany-wide settings
UserPer userEach userPersonal preferences
DeploymentPer deploymentDeveloperDifferent configs per deployment

3. Creating Parameters

Step 1: Create Custom Field

  1. Go to Customization → Scripting → Script Parameters → New
  2. Set ID (e.g., custscript_default_discount)
  3. Choose Type (Integer, Text, List/Record, etc.)
  4. Select Parameter Type (Company, User, or Deployment)
  5. Save

Step 2: Add to Script Record

  1. Edit your Script Record
  2. Go to Parameters subtab
  3. Add your parameter field
  4. Save

Step 3: Set Value

4. Reading Parameter Values

/**
 * @NApiVersion 2.1
 * @NScriptType UserEventScript
 */
define(['N/runtime'], function(runtime) {
    
    function beforeSubmit(context) {
        // Get current script
        var script = runtime.getCurrentScript();
        
        // Read parameter value
        var defaultDiscount = script.getParameter({
            name: 'custscript_default_discount'
        });
        
        log.debug('Parameter Value', 'Discount: ' + defaultDiscount + '%');
        
        // Use the value
        if (defaultDiscount) {
            context.newRecord.setValue({
                fieldId: 'discountrate',
                value: defaultDiscount
            });
        }
    }
    
    return { beforeSubmit: beforeSubmit };
});
⚠️ Parameter Returns

Parameters return null if not set. Always check for null before using!

Reading Different Types

// Text parameter
var emailAddress = script.getParameter({ name: 'custscript_notify_email' });

// Integer parameter
var maxRecords = script.getParameter({ name: 'custscript_max_records' });

// Checkbox (returns true/false)
var isEnabled = script.getParameter({ name: 'custscript_feature_enabled' });

// List/Record (returns internal ID)
var defaultCustomer = script.getParameter({ name: 'custscript_default_customer' });

🏋️ Practice Exercises

Exercise 1: Company Parameter

Create a company-level parameter for "Default Shipping Method" and read it in a User Event script.

Exercise 2: Deployment Parameter

Create a deployment parameter that controls which record type a scheduled script processes.

🎯 Key Takeaways

  • Script parameters let you change script behavior without code changes
  • Three types: Company (account-wide), User (per person), Deployment (per deployment)
  • Create as custom fields, attach to script record
  • Read with runtime.getCurrentScript().getParameter()
  • Always check for null values