📑 In This Module
🎯 Learning Objectives
- Understand the 6 SuiteCloud Platform Tools
- Learn NetSuite's data model (no SQL!)
- Explore NetSuite's web architecture (client vs server)
- Overview of 10 SuiteScript types
1. The 6 SuiteCloud Platform Tools
NetSuite provides six powerful tools for customization, collectively called the SuiteCloud Platform:
| Tool | Purpose | Requires Code? |
|---|---|---|
| SuiteBuilder | Point-and-click UI customization (fields, forms, records) | No |
| SuiteFlow | Visual workflow automation with diagrams | No |
| SuiteScript | Extend NetSuite with JavaScript code | Yes |
| SuiteTalk | SOAP/REST APIs for external integration | Yes |
| SuiteAnalytics | Reports, dashboards, and saved searches | No |
| SuiteBundler | Package customizations for deployment | No |
Use SuiteScript when you need to:
- Build features not available in NetSuite
- Create complex automation beyond SuiteFlow's capabilities
- Integrate third-party services
- Customize behavior programmatically
A company needed online collaboration for expense reports. Solution: SuiteScript uploads attachments to Box.com automatically, then stores the Box URL back on the NetSuite record. Users edit files online without downloading.
2. NetSuite Data Model
NetSuite does NOT give you direct SQL database access! Data access works differently than traditional database programming.
Instead of SQL tables, NetSuite organizes data into Records grouped into 5 categories:
The 5 Record Categories
| Category | What It Stores | Examples |
|---|---|---|
| Entity | People & organizations | Customers, Vendors, Employees, Partners |
| Transaction | Money movement | Sales Orders, Invoices, Purchase Orders, Bills |
| CRM | Business activities | Events, Tasks, Phone Calls, Cases |
| Item | Products & services | Inventory Items, Service Items, Discounts |
| Custom | Your custom data | Anything you create |
Same Category = Similar Structure
Scripts written for one record type easily adapt to others in the same category. A Customer script can become a Vendor script with minimal changes (both are Entity Records).
Different Category = Major Changes
Moving a Customer script (Entity) to Sales Order (Transaction) requires significant modifications.
3. Web Architecture
Understanding where code runs is crucial for SuiteScript development:
| Aspect | Client-Side (Browser) | Server-Side (NetSuite) |
|---|---|---|
| Runs In | User's browser | NetSuite servers |
| Response Time | Immediate feedback | Requires server round-trip |
| Governance | No units consumed | Consumes governance units |
| Use Cases | Field validation, UI interactions | Data processing, record creation |
| Script Types | Client Script | User Event, Scheduled, Map/Reduce, etc. |
4. The 10 Script Types
Here's an overview of all script types — we'll cover each in detail later:
| Script Type | When to Use | Location |
|---|---|---|
| Client Script | User interactions on forms (validation, defaults) | Client |
| User Event | Before/after record operations (load, submit) | Server |
| Workflow Action | Extend SuiteFlow workflow capabilities | Server |
| Scheduled | Run scripts on a schedule (nightly, weekly) | Server |
| Map/Reduce | Process thousands of records efficiently | Server |
| Suitelet | Custom UI pages | Server |
| RESTlet | REST API endpoints for integration | Server |
| Portlet | Dashboard components | Server |
| Mass Update | Bulk update records via UI | Server |
| Bundle Installation | Custom installation logic for bundles | Server |
🏋️ Practice Exercises
For each scenario, identify which SuiteCloud tool would be best:
- Adding a "Priority" dropdown field to Customers
- Automatically sending an email when a Sales Order is approved
- Connecting to a shipping provider's API to get tracking numbers
Classify these records into their categories: Invoice, Contact, Task, Assembly Item, Support Case
🎯 Key Takeaways
- 6 SuiteCloud Tools: SuiteBuilder (UI), SuiteFlow (workflows), SuiteScript (code), SuiteTalk (integration), SuiteAnalytics (reports), SuiteBundler (deployment)
- No SQL Access: NetSuite uses Records, not direct database access
- 5 Record Categories: Entity, Transaction, CRM, Item, Custom
- Records in Same Category: Share similar structure, scripts easily cross-apply
- 10 Script Types: Each designed for specific use cases
- Client vs Server: Understand where your code runs