📑 In This Module
🎯 Learning Objectives
- Understand what script parameters are and why to use them
- Learn the three parameter types (Company, User, Deployment)
- Create script parameter fields
- Read parameter values using N/runtime
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
| Type | Scope | Set By | Use Case |
|---|---|---|---|
| Company | Whole account | Admin | Company-wide settings |
| User | Per user | Each user | Personal preferences |
| Deployment | Per deployment | Developer | Different configs per deployment |
3. Creating Parameters
Step 1: Create Custom Field
- Go to Customization → Scripting → Script Parameters → New
- Set ID (e.g.,
custscript_default_discount) - Choose Type (Integer, Text, List/Record, etc.)
- Select Parameter Type (Company, User, or Deployment)
- Save
Step 2: Add to Script Record
- Edit your Script Record
- Go to Parameters subtab
- Add your parameter field
- Save
Step 3: Set Value
- Company: Set on Script Record → Parameters tab
- User: Home → Set Preferences
- Deployment: Set on Script Deployment record
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