🎉 Congratulations!
You've completed the SuiteScript 2.0 Training Program!
📚 What You've Learned
Foundation (Weeks 1-2)
- SuiteCloud platform and development tools
- NetSuite data model and record types
- Script records and deployments
- Context objects and getValue/setValue methods
- Logging and debugging basics
Core Scripting (Weeks 3-4)
- Entry points and execution lifecycle
- Client-side vs server-side scripts
- Loading SuiteScript modules (N/record, N/search, etc.)
- Working with sublists and line items
- Creating and running searches
Bulk Processing (Weeks 5-6)
- Scheduled scripts and queue management
- Map/Reduce for massive datasets
- Script parameters for configuration
- Workflow Action Scripts
Advanced Topics (Week 12)
- Suitelets for custom pages
- RESTlets for web services
- Governance management
- Performance optimization
- Error handling and testing
🔧 Script Types Summary
| Script Type | Purpose | Entry Points |
|---|---|---|
| Client Script | Browser interactions | pageInit, fieldChanged, saveRecord, etc. |
| User Event | Record operations | beforeLoad, beforeSubmit, afterSubmit |
| Scheduled | Timed batch jobs | execute |
| Map/Reduce | Massive data processing | getInputData, map, reduce, summarize |
| Suitelet | Custom UI pages | onRequest |
| RESTlet | Web services | get, post, put, delete |
| Workflow Action | Extend workflows | onAction |
🚀 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