Module 15: Course Review & Next Steps

Week 12 • NetSuite SuiteScript 2.0 Training • ~30 minutes

🎉 Congratulations!

You've completed the SuiteScript 2.0 Training Program!

📚 What You've Learned

Foundation (Weeks 1-2)

Core Scripting (Weeks 3-4)

Bulk Processing (Weeks 5-6)

Advanced Topics (Week 12)

🔧 Script Types Summary

Script TypePurposeEntry Points
Client ScriptBrowser interactionspageInit, fieldChanged, saveRecord, etc.
User EventRecord operationsbeforeLoad, beforeSubmit, afterSubmit
ScheduledTimed batch jobsexecute
Map/ReduceMassive data processinggetInputData, map, reduce, summarize
SuiteletCustom UI pagesonRequest
RESTletWeb servicesget, post, put, delete
Workflow ActionExtend workflowsonAction

🚀 Next Steps

💡 Continue Learning
  • Help Center: Official SuiteScript documentation
  • Records Browser: Find field and sublist IDs
  • SuiteAnswers: Knowledge base and solutions
  • NetSuite Community: Forums and discussions
✅ Certification Path
  • SuiteFoundation Certification
  • SuiteCloud Developer I Certification
  • SuiteCloud Developer II Certification
🎯 Practice Projects
  • Build a custom approval workflow with scripts
  • Create a dashboard Suitelet showing KPIs
  • Develop a RESTlet for external integration
  • Write a Map/Reduce for data migration

📖 Quick Reference

Essential Modules

N/record    - Load, create, save records
N/search    - Query data
N/runtime   - Script/user context
N/email     - Send emails
N/url       - Generate URLs
N/format    - Date/number formatting
N/ui/serverWidget - Build forms (Suitelets)

Key Patterns

// Load a record
var rec = record.load({ type: 'customer', id: 123 });

// Create a search
var search = search.create({
    type: 'salesorder',
    filters: [['status', 'anyof', 'SalesOrd:B']],
    columns: ['tranid', 'total']
});

// Process results
search.run().each(function(result) {
    log.debug('Order', result.getValue('tranid'));
    return true;
});

🎯 Remember These Principles

  • Always check governance with getRemainingUsage()
  • Use the right script type for the job
  • Test in Sandbox before Production
  • Log everything - your future self will thank you
  • Use lookupFields() when just reading data
  • Implement proper error handling with try/catch
  • Follow naming conventions consistently
  • Read the Help Center documentation