FSM Project Model Reference
This reference is intended for administrators and developers who work with Project model mappings, defaults, and relationships.
The Project model represents job. It supports Project creation, naming, customer/Asset relationships, contact synchronization, and program-related data.
Standard default structure (JSON fragment):
{
"models/project": {
"prototype": {
"record": "job",
"map": {
"id": "internalid",
"start": "startdate",
"end": "enddate",
"timezone": "custentity_nx_time_zone",
"name": "companyname",
"autoname": "formulatext:substr({custentity_nx_project_type}||' '||(case when {entityid} like '% : '||{companyname} then {internalid}||'' else {entityid} end)||' '||{custentity_nx_asset}, 1, 80)",
"parent": "formulatext:''|parent",
"customer": "custentity_nx_customer",
"asset": "custentity_nx_asset",
"contact": "contactprimary.internalid|contact",
"email": "contactprimary.email|",
"phone": "contactprimary.phone|",
"status": "entitystatus",
"type": "custentity_nx_project_type",
"assetlabel": "custentity_nx_asset#",
"programstart": "custentity_nx_start_date",
"programuntil": "custentity_nx_program_create_until",
"updatecontacts": "custentity_nx_contact_update"
},
"defaults": {
"status": 2,
"allowexpenses": true,
"updatecontacts": true
},
"address": {
"record": "customer",
"filters": [
"internalid",
"anyof",
"${ project.customer || 0 }"
],
"map": {
"id": "<addressinternalid",
"label": "addresslabel",
"defaultbilling": "isdefaultbilling",
"defaultshipping": "isdefaultshipping",
"isresidential": "isshipaddress",
"addressbookaddress": {
"attention": "attention",
"addressee": "addressee",
"addrphone": "addressphone",
"addr1": "address1",
"addr2": "address2",
"addr3": "address3",
"city": "city",
"state": "state",
"zip": "zipcode",
"country": "country"
}
}
}
}
}
}
The three preference defaults that vary with enabled features and optional Subsidiary and Currency mappings are omitted from this fixed-value fragment. Their conditions are described in this entry. The address object retains the complete standard address-search structure.
The following table describes selected Project model properties, including their purposes, standard values, effects, and dependencies.
|
Property |
Purpose |
Standard Value |
Effect and Dependencies |
|---|---|---|---|
|
|
Defines the generated Project name. |
Formula using Project type, the project identifier, and Asset, limited to 80 characters. |
Supplies an automatic company name for a typed FSM Project. Set |
|
|
Supplies the initial Project status. |
|
Initial In Progress status. |
|
|
Controls whether the Project permits expense entry. |
|
Enables expense entry. |
|
|
Supplies the Project's expense-type preference. |
Whether Job Costing and Project Budgeting is enabled. |
Supplies the Project expense preference. |
|
|
Supplies the Project's task-resource preference. |
Whether Project Management is enabled. |
Supplies the Project resource preference. |
|
|
Supplies the Project's assignee restriction for time entry. |
Whether Project Management is disabled. |
Supplies the Project time-entry restriction. |
|
|
Requests synchronization of the Project's contacts. |
|
Requests contact synchronization for a new or newly initialized typed FSM Project. Validation handles this processing flag separately from ordinary defaults. |
|
|
Defines the Customer addresses available to populate the Project address book. |
Customer-address search filtered to |
Supplies address-book entries on server-side validation of a typed Project without Project Management, except inline editing. Narrow the search to relevant addresses when the customer has many addresses. Retain the complete required address data. |
The map includes name: "companyname", customer: "custentity_nx_customer", asset: "custentity_nx_asset", type: "custentity_nx_project_type", status: "entitystatus", start: "startdate", end: "enddate", and timezone: "custentity_nx_time_zone". Contact is read from the primary contact and written to contact. Contact email and phone are read-only mappings. Subsidiary and currency depend on enabled NetSuite features.
The standard parent mapping returns a blank search value but writes to parent. It is not a searchable Project-parent relationship. Preserve that distinction in searches.
Typed Projects apply defaults during initialization and validation. Non-Boolean defaults fill empty values. Boolean defaults can replace existing values. The updatecontacts flag has its own timing conditions and is not a general instruction to repeatedly set a processing flag on all Projects.
The address search returns ID, label, billing/shipping markers, residential marker, and an addressbookaddress object. The object contains attention, addressee, phone, address lines, city, state, postal code, and country. Its named template context is project. For general search syntax, see FSM Searches and Field Mapping. Use the relevant configuration and feature topics for program rules, accounting controls, and contact synchronization behavior.