FSM NetSuite View Configuration

NetSuite views add FSM controls and behavior to NetSuite record forms. They include buttons, filtered select fields, staged record lists, and signature pads. Some components also validate or update records when they are saved.

Add an override under the exact views/... ID in a custom configuration record. For configuration record placement, merging, activation, and Preview, see FSM Configuration. Configure FSM Mobile resources and elements separately. For details, see FSM Mobile Resource Properties Reference and FSM Mobile Element (Block) Reference.

Before You Change a View

Each view has its own settings and eligibility conditions. A setting shown for one view does not automatically apply to another. The form must contain the fields and tabs required by the component, and the relevant FSM scripts must be deployed to that record. See FSM Script Reference for script deployment settings.

For the views that expose hidden, the standard default is false. Setting hidden to true turns off the component, including any record handlers it provides. It can therefore stop filtering, validation, or processing as well as hide a control. The per-view sections describe these effects. Hiding a component is not a permission control and does not disable the corresponding model, feature, or authenticated server operation.

Page IDs such as custpage_nx_contact identify temporary form controls. Keep them unique on the form. They are not record field IDs. Preserve the element keys, types, parent relationships, and mappings used by staged lists: the save handlers depend on that structure. Labels can be literal text or FSM translation identifiers where the view translates them. Translated defaults in the tables are described by their English meaning; the displayed text depends on the user's language.

Only properties described as templates in this reference are evaluated with their stated context. A label or arbitrary view string does not gain FSM Mobile expression support. See FSM Expressions and Template Tags.

Some views resolve searches into select options. Keep their required mapped properties, even when changing filters or labels. These consumers require mapped objects, so objectify: false is unsuitable. Search retrieval normally returns the first 1,000 results; use a search's all: true when the supported search definition needs all matching results. This does not change the eligibility rules. See FSM Searches and Field Mapping.

For example, this fragment prevents the New Task button from appearing on asset forms.

            {
  "views/asset/task": {
    "hidden": true
  }
} 

          

For information about omitted properties, arrays, and null, see How Custom Configuration Combines with Core Configuration. Preview does not establish view eligibility. Use the view's supported disabling setting because a component can supply its default again after a null removal.

The Complete Core Object in each entry shows the entire declared defaults object for that view, under its exact configuration ID, before custom overrides and form initialization. The property tables identify the supported changes. A complete baseline can also contain internal members used by the component; their presence does not make them supported customization controls.

Static objects are shown as JSON. Where defaults depend on account settings, enabled features, form tabs, entry URLs, or model defaults, the complete object is shown as JavaScript-style reference code with those source expressions retained. Those expressions describe how FSM supplies a value; they are not JSON to paste into custom configuration and do not introduce expression support for a property. Strings beginning with custcollection_fsm. are the core translation identifiers. Components without documented customer settings are listed in the closing note.

View Index

This index lists views with documented customer controls. Other product components are listed under Views Without Documented Customer Configuration.

Configuration ID

Purpose

views/asset/addresssearch

Address autocomplete field.

views/asset/autoname

Asset name field preparation.

views/asset/parent

Parent Asset form dependencies.

views/asset/profitability

Asset Profitability Report button.

views/asset/project

New Project button.

views/asset/task

New Task button.

views/assetcustomer

Related Customer and Asset selectors.

views/case/autoname

Case name field preparation.

views/case/invoice

Generate Invoice button.

views/case/projects

Existing or new Project selection.

views/case/servicereport

Case Service Report button.

views/case/tasks

Add Tasks list.

views/customer/profitability

Customer Profitability Report button.

views/employee/loginas

Open FSM Mobile for an eligible employee.

views/employee/mobilelogin

Email Mobile Login button.

views/itemfulfillment/assets

Create or update fulfilled Assets.

views/newnull

Asset Create New labels.

views/project/autoname

Project name field preparation.

views/project/contact

Primary Contact selection on new Projects.

views/project/customer

Customer display when Parent Project is unavailable.

views/project/journal

Create Time Journal button.

views/project/profitability

Project Profitability Report button.

views/project/program

Program display and Project program processing.

views/project/subprojects

Add Subprojects list.

views/projecttask/servicereport

Project Task Service Report button.

views/signature

NetSuite signature pads.

views/task/autoname

CRM Task name field preparation.

views/task/servicereport

CRM Task Service Report button.

views/task/unassigned

Optional Assigned field on CRM tasks.

views/asset/addresssearch

Adds an Address Search text field before the Asset address text field when that field is visible. The address autocomplete feature must be enabled and the configured Google key must be present. The view setting alone does not enable address lookup.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Turns off the autocomplete component when true.

name

Page-field ID string.

"custpage_nx_address_autocomplete"

Identifies the added text field.

label

Text or translation identifier.

Translated Address Search label.

Sets the field label.

When you enter an address, the field requests suggestions after a short delay. Browser location, when available, can influence the lookup. Selecting a suggestion writes the address text and clears the selected address-book reference. It does not retain that reference as the source of the new address. The autocomplete view does not itself enable geocoding or time zone decoding.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/asset/addresssearch": {
    "hidden": false,
    "name": "custpage_nx_address_autocomplete",
    "label": "custcollection_fsm.address_asset_address_search_label"
  }
} 

            

views/asset/autoname

Prepares the Asset name field when automatic naming is enabled in the Asset model. In create and edit forms, it supplies a temporary To Be Generated value and disables manual name entry. Noninteractive create and edit saves can also receive the temporary value when the name is empty.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables this name-field component when true.

The Asset model's naming definition determines the generated name. This view does not provide a naming template, and disabling it does not disable model naming. See FSM Record Model Configuration. This component is recognized at runtime even when it is not listed in the default configuration Preview.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/asset/autoname": {
    "hidden": false
  }
} 

            

views/asset/parent

On editable asset forms with a Parent field, this component makes the configured parent and inherited fields unavailable for manual editing when a parent is selected. It also hides the child-Asset sublist for a child asset. Changing the Parent value updates the affected form controls.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables these form dependencies when true.

The affected field lists belong to the Asset feature settings, not this view. The component does not itself define inherited values or impose restrictions on every external record update. See Configuring FSM Asset Hierarchy and Inheritance.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/asset/parent": {
    "hidden": false
  }
} 

            

views/asset/profitability

Adds the Profitability Report button in asset view mode. The selected report must exist in the account and support the supplied Asset filter.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_profitability"

Identifies the button.

label

Text or translation identifier.

Translated Profitability Report label.

Sets the button text.

report

Report internal ID number.

Configured Asset profitability report, or 0.

Selects the report. Use the actual ID from the account.

url

URL template string.

/app/reporting/reportrunner.nl?cr=${ report }&crit_2=${ name }

Builds the report link.

The URL context contains report and the URL-encoded Asset name. Here, the name tag is the Asset name, not the page-button ID. The report default comes from the accounting setting or installed account report information. A default of 0 does not identify a usable report; the component does not use that value to hide the button. A replacement URL must use the report's required filter positions and permissions.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/asset/profitability": {
    hidden: false,
    name: "custpage_nx_profitability",
    label: "custcollection_fsm.profitability_asset_report_button_label",
    report: getAssetProfitabilityReport(state) || 0,
    url: "/app/reporting/reportrunner.nl?cr=${ report }&crit_2=${ name }",
  }
} 

            

report is resolved from the account's Asset profitability report setting or installed report information, with 0 as the fallback.

views/asset/project

Adds New Project to an existing asset in view or edit mode. The core button is attached to recmachcustentity_nx_asset, the related Projects sublist. It opens the project entry form in the same window and supplies the Asset link through NetSuite parent-field URL parameters.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_project"

Identifies the button.

label

Text or translation identifier.

Translated New Project label.

Sets the button text.

url

URL template string.

Account-resolved Project entry URL plus &pf=CUSTENTITY_NX_ASSET&pi=${ id }&pr=${ record }.

Opens the entry form with the parent Asset context.

The URL context is the Asset's internal ID (id) and record type (record). Retain the parent-field parameters when the new Project must be linked to the Asset. Do not copy a URL resolved for another account. The button does not create the Project until the user saves the entry form.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/asset/project": {
    hidden: false,
    name: "custpage_nx_project",
    label: "custcollection_fsm.asset_newproject_button_label",
    parent: "recmachcustentity_nx_asset",
    url: nlapiResolveURL("record", "job") + "&pf=CUSTENTITY_NX_ASSET&pi=${ id }&pr=${ record }",
  }
} 

            

url begins with the Project entry URL resolved in the current account. parent records the core sublist placement; it is not an additional supported override documented by this topic.

views/asset/task

Adds New Task to an existing asset in view or edit mode. The core button is attached to recmachcustevent_nx_task_asset, the related Tasks sublist. It opens the CRM task entry form in the same window and supplies the Asset link.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_task"

Identifies the button.

label

Text or translation identifier.

Translated New Task label.

Sets the button text.

url

URL template string.

Account-resolved Task entry URL plus &pf=CUSTEVENT_NX_TASK_ASSET&pi=${ id }&pr=${ record }.

Opens the entry form with the parent Asset context.

The URL context contains the Asset's internal ID (id) and record type (record). Preserve the parent-field parameters and use the entry URL resolved in the current account. The user must save the task entry form to create the record.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/asset/task": {
    hidden: false,
    name: "custpage_nx_task",
    label: "custcollection_fsm.asset_newtask_button_label",
    parent: "recmachcustevent_nx_task_asset",
    url: nlapiResolveURL("record", "task") + "&pf=CUSTEVENT_NX_TASK_ASSET&pi=${ id }&pr=${ record }",
  }
} 

            

url begins with the CRM Task entry URL resolved in the current account. parent records the core sublist placement; it is not an additional supported override documented by this topic.

views/assetcustomer

Filters related Customer and Asset choices on editable Case, CRM Task, Project, Project Task, Opportunity, Quote, Sales Order, and Invoice forms. A replacement selector is added only for a relevant field that exists, is visible, and is editable. The bindings to each record's fields are supplied by the record component.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Turns off the replacement selectors and their synchronization.

customerFilter

Page-field ID string.

"custpage_nx_customer"

Identifies the filtered Customer selector.

assetFilter

Page-field ID string.

"custpage_nx_asset"

Identifies the filtered Asset selector.

customerOption

Customer option map.

id: "internalid"; customer display-name formula for label.

Controls mapped Customer option values and labels.

assetOption

Asset option map.

id: "internalid", label: "name".

Controls mapped Asset option values and labels.

The Customer label formula is formulatext:nvl(nvl(trim({firstname}||' '||{lastname}),{companyname}), {entityid}). Both maps must return id and label; the selected IDs are written back to the record fields. The lookup retrieves all matching records and excludes inactive options.

models/asset.map.customers and models/customer.map.assets define the allowed relationships. A resolved value of true leaves the native choice unrestricted; false permits no choices; a list restricts choices to those IDs. See FSM Record Model Configuration.

When both fields are editable, an existing asset takes precedence when deciding which field to filter. An old selection that is no longer valid is retained when the form first loads. Changing the relevant Customer or Asset can clear that invalid selection. Clearing the driving field can remove filtering or apply filtering in the other direction. Hiding the view does not change the model relationships or grant access to records.

For example, this fragment changes only asset option labels and retains their internal IDs.

            {
  "views/assetcustomer": {
    "assetOption": {
      "label": "formulatext:{name}||' : '||{custrecord_nx_asset_serial}"
    }
  }
} 

          

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/assetcustomer": {
    "hidden": false,
    "customerFilter": "custpage_nx_customer",
    "customerOption": {
      "id": "internalid",
      "label": "formulatext:nvl(nvl(trim({firstname}||' '||{lastname}),{companyname}), {entityid})"
    },
    "assetFilter": "custpage_nx_asset",
    "assetOption": {
      "id": "internalid",
      "label": "name"
    }
  }
} 

            

views/case/autoname

Prepares the Case title for automatic naming when the Case model has an automatic-name mapping. On an editable form, selecting a Field Service Case Type disables manual name entry and supplies the temporary To Be Generated value. Clearing the type restores manual entry and the earlier name where available. Relevant noninteractive saves can also receive a temporary name.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables this name-field component.

The model controls the final naming template. Disabling the view does not disable that model behavior. See FSM Record Model Configuration.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/case/autoname": {
    "hidden": false
  }
} 

            

views/case/invoice

Adds Generate Invoice in case view mode when the Case has a Field Service Case Type and the invoice verification finds billable lines. The button confirms the operation, invokes the Case invoice action, and opens the resulting invoice.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_invoice"

Identifies the button.

label

Text or translation identifier.

Translated Generate Invoice label.

Sets the button text.

confirm

Text or translation identifier.

Translated confirmation to generate the Invoice.

Sets the confirmation message.

success

Text or translation identifier.

Translated Invoice successfully created message.

Sets the successful-action message.

error

Text or translation identifier.

Translated generic operation error.

Sets the failed-action message.

These properties do not change which time, expenses, or Sales Order lines are billable. That eligibility belongs to the Case invoice action and billing rules. See Configuring FSM Billing Rules and FSM Record Model Configuration. Hiding the button does not disable other invoicing paths.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/case/invoice": {
    "hidden": false,
    "name": "custpage_nx_invoice",
    "label": "custcollection_fsm.bill_case_generateinvoice_button_label",
    "confirm": "custcollection_fsm.bill_case_generateinvoice_confirm_message",
    "success": "custcollection_fsm.bill_case_generateinvoice_success_message",
    "error": "custcollection_fsm.error_generic_error_message"
  }
} 

            

views/case/projects

Adds a Project selector on editable case forms. The core view requires the Asset field to be visible. It replaces the case company selector and preserves whether that field is required.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables the selector, synchronization, and new-Project request handling.

name

Page-field ID string.

"custpage_nx_active_projects"

Identifies the selector.

label

Text or translation identifier.

Translated Project label.

Sets its label.

showFields

Array of record field IDs.

["custevent_nx_case_asset"]

All listed fields must be visible to add the selector.

refreshFields

Array of record field IDs.

["custevent_nx_case_asset", "startdate", "starttime"]

Changes to these fields refresh the choices. Choices are cleared until all listed fields have values.

options

Resolvable option definition.

Combined active projects and new-project types. The option definitions follow this table.

Supplies the selector's options.

options uses array: true to combine two searches:

Search

Standard Eligibility

Required Option Map

active

Active job records linked to the Case Asset. Start is empty or at/before the Case start timestamp; end is empty or includes the Case start date. Comparisons account for the Project time zone.

id: "internalid"; label combines Project type, dates, and time zone abbreviation; selected: "formulatext:''".

types

Active customrecord_nx_project_type records, excluding configured Program Project types.

id uses formulatext:'type-'||{Internalid}; label identifies a new Project and its type; selected: "formulatext:''".

The template context is supportcase. Preserve the distinction between an existing numeric Project ID and a new type-... option. A truthy selected map value can request automatic selection. Search filters, formulas, and result mapping are described in FSM Searches and Field Mapping.

An existing Project is retained during initialization when it is absent from an otherwise populated option list. Selecting an existing project updates the Case company value. Selecting a new-Project type requests creation after the case is saved, using the Case customer, Asset, contact, time zone, and start information. Background processing creates the Project and links it to the Case; the Case save alone does not prove that creation succeeded. Preserve the Asset and date dependencies when replacing showFields, refreshFields, or search filters.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/case/projects": {
    hidden: false,
    name: "custpage_nx_active_projects",
    label: "custcollection_fsm.workorder_case_active_project_label",
    company: "company",
    showFields: ["custevent_nx_case_asset"],
    refreshFields: ["custevent_nx_case_asset", "startdate", "starttime"],
    options: {
      array: true,
      active: {
        record: "job",
        filters: [
          ["custentity_nx_asset", "anyof", "${ supportcase.asset }"],
          "and",
          [
            ["startdate", "isempty", ""],
            "or",
            [
              "formulatext:case when from_tz(cast({startdate} as timestamp), case when {custentity_nx_time_zone.custrecord_nx_time_zone_olson} like '%/%' then {custentity_nx_time_zone.custrecord_nx_time_zone_olson} else SESSIONTIMEZONE end) <= timestamp '${ supportcase.starttimestamp }' then 'T' else 'F' end",
              "is",
              "T",
            ],
          ],
          "and",
          [
            ["enddate", "isempty", ""],
            "or",
            [
              "formulatext:case when from_tz(cast(({enddate} + 1) as timestamp), case when {custentity_nx_time_zone.custrecord_nx_time_zone_olson} like '%/%' then {custentity_nx_time_zone.custrecord_nx_time_zone_olson} else SESSIONTIMEZONE end) > timestamp '${ supportcase.starttimestamp }' then 'T' else 'F' end",
              "is",
              "T",
            ],
          ],
          "and",
          ["isinactive", "is", "F"],
        ],
        map: {
          id: "internalid",
          label: "formulatext:{custentity_nx_project_type}||nvl2({startdate},' : '||{startdate},'')||nvl2({enddate},' - '||{enddate},'')||nvl2({custentity_nx_time_zone}, ' ' || {custentity_nx_time_zone.custrecord_nx_time_zone_abbreviation},'')",
          selected: "formulatext:''",
        },
      },
      types: {
        record: "customrecord_nx_project_type",
        filters: [["isinactive", "is", "F"], "and", ["internalid", "noneof", [0, ...getProgramProjectTypes(state)]]],
        map: {
          id: "formulatext:'type-'||{Internalid}",
          label: "formulatext: '- custcollection_fsm.label_new_affix_name : '||{Name}||' -' ",
          selected: "formulatext:''",
        },
      },
    },
    optgroup: [],
    schedule: {
      title: "Case ${ supportcase.id } New Project",
      deployment: "case_${ supportcase.id }_np",
      callback: "views/case/projects/scheduled",
      arguments: { case: "${ supportcase.id }", type: "${ type }" },
      priority: 1,
    },
  }
} 

            

The Project-type exclusion uses the configured Program Project types. company, optgroup, and schedule are shown to complete the core object; they are not additional supported settings.

views/case/servicereport

Adds the Case Service Report button in view mode when the Case has a Field Service Case Type and its stage is Closed. The core button selects servicereport from notification.caseEmail, opens the report preview, and asks for confirmation before requesting an email.

For this view's hidden, name, label, notification, send, success, error, and delay properties, see Service Report Button Configuration. That section also explains preview-only configuration and the relationship between the button, report attachment, and notification. Hiding this button does not disable automatic notification rules.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/case/servicereport": {
    "hidden": false,
    "name": "custpage_nx_servicereport",
    "label": "custcollection_fsm.report_case_servicereport_button_label",
    "notification": "servicereport",
    "send": "custcollection_fsm.report_case_servicereport_confirm_message",
    "success": "custcollection_fsm.report_case_servicereport_successs_message",
    "error": "custcollection_fsm.error_generic_error_message",
    "delay": 1000
  }
} 

            

views/case/tasks

Adds the Add Tasks tab and staging list to editable case forms when the configured CRM tab is available. Select task details, add rows to the list, and save the case to request task creation.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Turns off the tab, staging controls, validation, and submitted task creation request.

el

NetSuite form-element definitions with the keys listed in the following element table.

Add Tasks controls and Tasks list.

Controls the form presentation and staged values.

skills

Resolvable option definition.

Inactive-excluding Skill search plus a None choice.

Supplies the Skills selector.

types

Resolvable option definition.

Inactive-excluding Field Service Task Type search plus an empty choice.

Supplies both Type selectors.

assignees

Resolvable option definition.

Active employees with an FSM region, restricted by the user's subsidiary view when subsidiaries are enabled, plus an empty choice.

Supplies Assigned choices.

available

Text template or translation identifier.

Translated ${total} available… placeholder.

Shows the count of assignee choices after skill filtering.

Case Task Elements

The root tab's standard ID is custpage_nx_tasks, and the CRM tab setting supplies its parent. Child IDs and field mappings are generated from the element keys and parent relationships. Standard labels are translated.

el Key

Standard Type and Parent

Standard Label or Role

Other Standard Settings

tab

subtab; configured CRM tab.

Add Tasks.

name: "custpage_nx_tasks".

list

inlineeditor; tab.

Tasks.

Holds staged task rows.

assignees

longtext; tab.

Internal assignee cache.

display: "hidden". Preserve it.

addtype

select; tab.

Type.

Task model default type; layout: "midrow", width: 180.

addassigned

select; tab.

Assigned.

Task model default assignee; layout: "midrow", width: 180.

adddate

date; tab.

Field Service start-date label.

layout: "midrow". Initially follows the Case start date.

adddue

date; tab.

Field Service end-date label.

layout: "midrow". End of the inclusive date range.

addstart

timeofday; tab.

Start.

Task model default start time; layout: "midrow", width: 7.

addend

timeofday; tab.

End.

Task model default end time; layout: "midrow", width: 7.

addbooking

checkbox; tab.

Confirmed Booking.

Task model default booking flag; layout: "midrow".

addskill

multiselect; tab.

Skills.

map: "[]", layout: "startrow", break: "startrow", width: 370, height: 3.

addmessage

textarea; tab.

Message.

layout: "midrow", width: 50, height: 6.

add

button; list.

Add.

Adds staging rows.

reset

button; list.

Remove All.

Clears staging rows.

type

select; list.

Type.

required: true.

assigned

select; list.

Assigned.

required: false.

date

date; list.

Date.

required: true.

start

timeofday; list.

Start.

required: true.

end

timeofday; list.

End.

required: true.

booking

checkbox; list.

Confirmed Booking.

Stores the staged flag.

message

text; list.

Message.

Stores staged text.

skill

text; list.

Skill.

map: "[]", display: "hidden". Stores selected Skill IDs.

The core Task model supplies 09:00 and 17:00 for start and end times, formatted for the form. It does not supply a core type, assignee, or booking value; model overrides can supply those defaults. See FSM Record Model Configuration.

Case Task Option Definitions and Processing

Each definition uses array: true and retains an initial empty or None choice. skills.task searches active customrecord_nx_skill records; types.task searches active customrecord_nx_task_type records. Both maps return id: "internalid" and label: "name". assignees.employee returns id: "internalid", a sorted employee-name formula for label, and skill: "custentity_nx_skill[]". Its template context includes user, including user.view for the subsidiary restriction.

The client retains the Employee list and filters it to employees who have every selected Skill. Preserve the skill array map and empty choices when customizing these searches. The displayed count is not an availability or overlap check.

Add creates one staged task per day in the inclusive selected date range. With no end date, it uses the start date. Required values and time order are checked before staging. Saving the case submits the rows with the Case link and time zone for background creation. Confirm that the resulting Tasks exist after processing. This list does not automatically resolve resource overlaps or guarantee that a selected employee is free.

For example, this fragment changes the tab label and retains its structure and processing:

              {
  "views/case/tasks": {
    "el": {
      "tab": {
        "label": "Additional Visits"
      }
    }
  }
} 

            

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/case/tasks": {
    hidden: false,
    el: {
      tab: {
        type: "subtab",
        label: "custcollection_fsm.workorder_case_addtasks_subtab_label",
        parent: getFormCrmTab(state),
        name: "custpage_nx_tasks",
      },
      list: { type: "inlineeditor", label: "custcollection_fsm.workorder_case_addtasks_taskslist_label", parent: "tab" },
      assignees: { type: "longtext", display: "hidden", parent: "tab" },
      addtype: {
        type: "select",
        label: "custcollection_fsm.workorder_case_addtasks_type_label",
        parent: "tab",
        value: Task.prototype.defaults.type,
        layout: "midrow",
        width: 180,
      },
      addassigned: {
        type: "select",
        label: "custcollection_fsm.workorder_case_addtasks_assigned_label",
        parent: "tab",
        value: Task.prototype.defaults.assigned,
        layout: "midrow",
        width: 180,
      },
      adddate: {
        type: "date",
        label: "custcollection_fsm.custevent_nx_start_date_shortname",
        parent: "tab",
        layout: "midrow",
      },
      adddue: {
        type: "date",
        label: "custcollection_fsm.custevent_nx_end_date_shortname",
        parent: "tab",
        layout: "midrow",
      },
      addstart: {
        type: "timeofday",
        label: "custcollection_fsm.workorder_case_addtasks_start_label",
        parent: "tab",
        value: Task.prototype.defaults.starttimetz,
        layout: "midrow",
        width: 7,
      },
      addend: {
        type: "timeofday",
        label: "custcollection_fsm.workorder_case_addtasks_end_label",
        parent: "tab",
        value: Task.prototype.defaults.endtimetz,
        layout: "midrow",
        width: 7,
      },
      addbooking: {
        type: "checkbox",
        label: "custcollection_fsm.custevent_nx_task_booking_confirmed_shortname",
        parent: "tab",
        value: Task.prototype.defaults.booking,
        layout: "midrow",
      },
      addskill: {
        type: "multiselect",
        label: "custcollection_fsm.workorder_case_addtasks_skills_label",
        parent: "tab",
        map: "[]",
        layout: "startrow",
        break: "startrow",
        width: 370,
        height: 3,
      },
      addmessage: {
        type: "textarea",
        label: "custcollection_fsm.workorder_case_addtasks_message_label",
        parent: "tab",
        layout: "midrow",
        width: 50,
        height: 6,
      },
      add: { type: "button", label: "custcollection_fsm.workorder_case_addtasks_addbutton_label", parent: "list" },
      reset: { type: "button", label: "custcollection_fsm.workorder_case_addtasks_removeallbutton_label", parent: "list" },
      type: {
        type: "select",
        label: "custcollection_fsm.workorder_case_addtasks_type_label",
        parent: "list",
        required: true,
      },
      assigned: {
        type: "select",
        label: "custcollection_fsm.workorder_case_addtasks_assigned_label",
        parent: "list",
        required: false,
      },  
      date: {
        type: "date",
        label: "custcollection_fsm.workorder_case_addtasks_date_label",
        parent: "list",
        required: true,
      },
      start: {
        type: "timeofday",
        label: "custcollection_fsm.workorder_case_addtasks_start_label",
        parent: "list",
        required: true,
      },
      end: {
        type: "timeofday",
        label: "custcollection_fsm.workorder_case_addtasks_end_label",
        parent: "list",
        required: true,
      },
      booking: {
        type: "checkbox",
        label: "custcollection_fsm.custevent_nx_task_booking_confirmed_shortname",
        parent: "list",
      },
      message: { type: "text", label: "custcollection_fsm.workorder_case_addtasks_message_label", parent: "list" },
      skill: {
        type: "text",
        label: "custcollection_fsm.workorder_case_addtasks_skill_label",
        parent: "list",
        map: "[]",
        display: "hidden",
      },
    },
    skills: {
      array: true,
      default: { label: "custcollection_fsm.workorder_case_addtasks_noneskill_option" },
      task: {
        record: "customrecord_nx_skill",
        filters: ["isinactive", "is", "F"],
        map: { id: "internalid", label: "name" },
      },
    },
    types: {
      array: true,
      default: {},
      task: {
        record: "customrecord_nx_task_type",
        filters: ["isinactive", "is", "F"],
        map: { id: "internalid", label: "name" },
      },
    },
    assignees: {
      array: true,
      default: {},
      employee: {
        record: "employee",
        filters: [
          ["isinactive", "is", "F"],
          "and",
          ["custentity_nx_region", "noneof", "@NONE@"],
        ].concat(
          isSubsidiariesFeatureEnabled()
            ? [
                "and",
                [
                  "formulatext:case when '${ user.view }' = '0' or {subsidiary.id} in (${ user.view }) then 'T' else 'F' end",
                  "is",
                  "T",
                ],
              ]
            : []
        ),
        map: {
          id: "internalid",
          label: "<formulatext:nvl(trim(trim(trim({firstname})||' '||{middlename})||' '||{lastname}), {entityid})",
          skill: "custentity_nx_skill[]",
        },
      },
    },
    available: "custcollection_fsm.workorder_case_addtasks_availableassignee_placeholder",
    schedule: {
      title: "Case ${ supportcase.id } Add Tasks",
      deployment: "case_${ supportcase.id }_at",
      callback: "views/case/tasks/scheduled",
      yieldpriority: true,
      priority: 2,
    },
  }
} 

            

The parent tab comes from form.tab.crm. Initial values come from the effective Task model defaults, including account-formatted times. The Employee filter adds its subsidiary condition only when Subsidiaries is enabled. schedule records the background callback. Changing it is not a supported setup procedure.

views/customer/profitability

Adds the Profitability Report button in customer view mode. The report must exist in the account and accept the supplied Customer filters.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_profitability"

Identifies the button.

label

Text or translation identifier.

Translated Profitability Report label.

Sets the button text.

report

Report internal ID number.

Configured entity profitability report, or 0.

Selects the report in this account.

url

URL template string.

Report runner URL in the following paragraph.

Builds the filtered report link.

The core URL is /app/reporting/reportrunner.nl?cr=${ report }&crit_1_mod=${ date }&crit_1_from=${ start }&crit_1_to=${ end }&crit_2=${ entity }&crit_3=${ name }.

The template context contains the following values:

  • report: The report ID

  • date: "CUSTOM"

  • start: January 1, 1970, formatted as an account date

  • end: January 1, 2100, formatted as an account date

  • entity: The URL-encoded customer entity title

  • name: An empty value

The report ID comes from the accounting setting or installed account report information. The component can show the button even when the report default is 0. Changing reports can require corresponding changes to URL filter positions and report access.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/customer/profitability": {
    hidden: false,
    name: "custpage_nx_profitability",
    label: "custcollection_fsm.profitability_customer_report_button_label",
    report: getEntityProfitabilityReport(state) || 0,
    url: "/app/reporting/reportrunner.nl?cr=${ report }&crit_1_mod=${ date }&crit_1_from=${ start }&crit_1_to=${ end }&crit_2=${ entity }&crit_3=${ name }",
  }
} 

            

report is resolved from the account's entity profitability report setting or installed report information, with 0 as the fallback.

views/employee/loginas

The Mobile Login button appears in employee view mode when the employee is an FSM Mobile user. The current user must be that employee or an FSM Mobile administrator. The button opens the private FSM Mobile address for the employee's email address.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_loginas"

Identifies the button.

label

Text or translation identifier.

Translated Mobile Login label.

Sets its text.

This view does not provide a URL override or grant FSM Mobile administrator rights. Hiding the button does not revoke FSM Mobile access. See FSM Notification Configuration for the separate email login action and message.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/employee/loginas": {
    "hidden": false,
    "name": "custpage_nx_loginas",
    "label": "custcollection_fsm.user_mobilelogin_button_label"
  }
} 

            

views/employee/mobilelogin

Adds the Email Mobile Login button in employee view mode under the conditions described in views/employee/loginas. The button is unavailable when the relevant FSM Mobile login notification is pending.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_mobilelogin"

Identifies the button.

label

Text or translation identifier.

Translated Email Mobile Login label.

Sets the button text.

confirm

Text or translation identifier.

Translated confirmation to send the email.

Sets the confirmation message.

success

Text or translation identifier.

Translated Email successfully queued to be sent message.

Sets the successful-request message.

error

Text or translation identifier.

Translated generic operation error.

Sets the failed-request message.

The action requests mobilelogin from notification.employeeEmail. This view does not expose a notification-name setting. Configure the message and login-link content in FSM Notification Configuration. A successful request means the email was queued, not that it was delivered.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/employee/mobilelogin": {
    "hidden": false,
    "name": "custpage_nx_mobilelogin",
    "label": "custcollection_fsm.user_emailmobilelogin_button_label",
    "confirm": "custcollection_fsm.user_emailmobilelogin_confirm_message",
    "success": "custcollection_fsm.user_emailmobilelogin_success_message",
    "error": "custcollection_fsm.error_generic_error_message"
  }
} 

            

views/itemfulfillment/assets

Adds Create/Update Assets to editable item fulfillment forms when the configured transaction tab is present. The core component applies when the order type is absent or is Sales Order. Fulfilled items must be marked as Asset Items.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables staging, Asset validation, and submitted Asset creation/update handling.

element

NetSuite form-element definitions with the keys listed in the following element table.

Create/Update Assets list and fields.

Defines staged Asset values and presentation.

error.required

Text template or translation identifier.

Translated Please enter value(s) for: ${ required }.

Reports missing required values.

error.duplicate

Text template or translation identifier.

Translated Duplicate Asset already exists at line ${ duplicate }.

Reports a duplicate staging row.

The error templates are evaluated with the validation result, including required or duplicate for the corresponding message. Preserve these tags when changing the text.

Item Fulfillment Asset Elements

The following table lists the standard item fulfillment asset elements, parent relationships, labels, and settings.

element Key

Standard Type and Parent

Standard Label

Other Standard Settings

list

inlineeditor; configured transaction tab.

Create/Update Assets.

name: "custpage_nx_assets".

item

select; list.

Item.

display: "disabled", required: true; populated from the fulfilled line.

serial

text; list.

Serial Number.

required: true; populated from inventory detail where applicable.

id

select; list.

Asset.

display: "disabled"; populated with a matching existing Asset.

customer

select; list.

Customer.

display: "hidden", source: "customer", sourcefrom: "custbody_nx_customer".

parent

select; list.

Parent.

display: "hidden", source: "customrecord_nx_asset", sourcefrom: "custbody_nx_asset".

addressbook

integer; list.

Address Book.

display: "hidden", sourcefrom: "shipaddresslist".

addresstext

textarea; list.

Address.

display: "disabled", sourcefrom: "shipaddress".

Labels are translated. Child names and mappings are generated from the keys and parent relationships. sourcefrom identifies the Item Fulfillment body field to copy into the staged value. If it is changed, the target field must still have a compatible value and type. Preserve the item, serial, and existing-Asset identity fields, required validation, and list structure.

Item Fulfillment Asset Processing

The component builds one staging row per fulfilled unit. It uses serialized inventory detail where applicable and looks up matching Assets to decide whether a row creates or updates an Asset.

Warning:

Changes to fulfillment selection, quantity, sourced body fields, or inventory detail refresh the list and can replace manual staging changes.

The address text is formatted from shipping details without Attention and Addressee. A custom or overridden shipping address uses address text rather than retaining an address-book ID. Required values and duplicate rows are checked before save. After a create or edit save, background processing creates or updates the Assets and links them to the fulfillment.

For example, this fragment changes only the list title:

              {
  "views/itemfulfillment/assets": {
    "element": {
      "list": {
        "label": "Delivered Equipment"
      }
    }
  }
} 

            

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/itemfulfillment/assets": {
    hidden: false,
    error: {
      required: "custcollection_fsm.asset_itemfulfillment_missingassetvalues_error_message",
      duplicate: "custcollection_fsm.asset_itemfulfillment_duplicateasset_error_message",
    },
    requiredbypass: "-999999",
    country: {
      label: "Country",
      name: "custpage_nx_country",
      type: "inlinehtml",
      display: "hidden",
    },
    element: {
      list: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_sublist_name",
        name: "custpage_nx_assets",
        type: "inlineeditor",
        parent: getFormTransactionTab(state),
      },
      item: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_item_label",
        type: "select",
        parent: "list",
        display: "disabled",
        required: true,
      },
      serial: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_serialnumber_label",
        type: "text",
        parent: "list",
        required: true,
      },
      id: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_asset_label",
        type: "select",
        parent: "list",
        display: "disabled",
      },
      customer: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_customer_label",
        type: "select",
        parent: "list",
        display: "hidden",
        source: "customer",
        sourcefrom: "custbody_nx_customer",
      },
      parent: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_parent_label",
        type: "select",
        parent: "list",
        display: "hidden",
        source: "customrecord_nx_asset",
        sourcefrom: "custbody_nx_asset",
      },
      addressbook: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_addressbook_label",
        type: "integer",
        parent: "list",
        display: "hidden",
        sourcefrom: "shipaddresslist",
      },
      addresstext: {
        label: "custcollection_fsm.asset_itemfulfillment_createupdateassets_address_label",
        type: "textarea",
        parent: "list",
        display: "disabled",
        sourcefrom: "shipaddress",
      },
    },
    schedule: {
      title: "Item Fulfillment ${ itemfulfillment.id } New Assets",
      deployment: "fulf_${ itemfulfillment.id }_na",
      callback: "views/itemfulfillment/assets/scheduled",
      priority: 1,
    },
  }
} 

            

The parent tab comes from form.tab.transaction. requiredbypass, country, and schedule complete the core baseline and are not additional supported settings.

views/newnull

On asset forms, replaces a null Create New label with the form's record-type title. It affects Create New menus and buttons rather than renaming stored records.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables the label adjustment.

name

Page-control ID string.

"custpage_nx_newnull"

Identifies the inserted form control.

The adjustment depends on the NetSuite form markup. NetSuite markup changes can affect it.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/newnull": {
    "hidden": false,
    "name": "custpage_nx_newnull"
  }
} 

            

views/project/autoname

Prepares the Project name when automatic naming is enabled in the Project model. With a Field Service Project Type selected, it supplies a temporary unique To Be Generated name and prevents manual entry on editable forms. Clearing the type restores manual entry and the earlier name where available. Relevant noninteractive saves can also receive a temporary name.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables this name-field component.

The Project model controls the final name. The view has no naming-template property, and hiding it does not disable model naming. See FSM Record Model Configuration.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/project/autoname": {
    "hidden": false
  }
} 

            

views/project/contact

Adds Contact when creating a Project on an editable form with a visible Field Service Project Type field. The selector is placed after Parent Project. It is populated for the current Customer, refreshes when the Customer changes, and writes a selected Contact when the project is saved.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables the added selector and contact-copy handler.

name

Page-field ID string.

"custpage_nx_contact"

Identifies the selector.

label

Text or translation identifier.

Translated Contact label.

Sets the field label.

options

Resolvable option definition.

Active contacts for the current customer. The option definition follows this table.

Supplies Contact choices and an initial selection.

The standard options definition uses array: true and a contacts search on customer. Its filters match ${ project.customer } and contact.isinactive equal to F. Its map is id: "contact.internalid", label: "<contact.entityid", and selected: "formulatext:case when {contact.role} = -10 then 'T' else '' end". The < requests ascending label order. The template context is project.

Preserve Contact IDs and the Customer relationship when changing the search. The component chooses one option from truthy selected results and removes the selection flag from the others. Do not depend on multiple matching primary choices selecting a particular contact. An empty selector value does not itself request clearing an existing record contact. See FSM Searches and Field Mapping.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/project/contact": {
    "hidden": false,
    "name": "custpage_nx_contact",
    "label": "custcollection_fsm.contact_project_customer_contact_label",
    "options": {
      "array": true,
      "contacts": {
        "record": "customer",
        "filters": [
          [
            "internalid",
            "is",
            "${ project.customer }"
          ],
          "and",
          [
            "contact.isinactive",
            "is",
            "F"
          ]
        ],
        "map": {
          "id": "contact.internalid",
          "label": "<contact.entityid",
          "selected": "formulatext:case when {contact.role} = -10 then 'T' else '' end"
        }
      }
    }
  }
} 

            

views/project/customer

On an editable project form, displays Customer inline when Parent Project is absent, hidden, or read-only. It supports forms where Customer is derived through Parent Project rather than edited independently.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables the form display adjustment.

The view does not provide field-ID, label, or relationship overrides. Hiding it does not remove NetSuite or model restrictions on Project customer relationships.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/project/customer": {
    "hidden": false
  }
} 

            

views/project/journal

Adds Create Time Journal in project view mode when the required debit and credit accounting settings exist and eligible uncosted Project time is found. It invokes the Project time-journal action and opens the resulting journal.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_journal"

Identifies the button.

label

Text or translation identifier.

Translated Create Time Journal label.

Sets its text.

success

Text or translation identifier.

Translated Journal successfully created message.

Sets the successful-action message.

error

Text or translation identifier.

Translated generic operation error.

Sets the failed-action message.

There is no view confirmation-message setting. Account selection, time eligibility, amounts, and costing updates belong to accounting rules and the model action. See Configuring FSM Project Labour Cost Posting and FSM Record Model Configuration.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/project/journal": {
    "hidden": false,
    "name": "custpage_nx_journal",
    "label": "custcollection_fsm.profitability_createtimejournal_button_label",
    "success": "custcollection_fsm.profitability_journal_success_message",
    "error": "custcollection_fsm.error_generic_error_message"
  }
} 

            

views/project/profitability

Adds the Profitability Report button in project view mode. It uses the entity profitability report with the Project name filter.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Prevents the button from appearing when hidden is true.

name

Page-button ID string.

"custpage_nx_profitability"

Identifies the button.

label

Text or translation identifier.

Translated Profitability Report label.

Sets the button text.

report

Report internal ID number.

Configured entity profitability report, or 0.

Selects the report in this account.

url

URL template string.

Report runner URL in the following paragraph.

Builds the filtered link.

The core URL is /app/reporting/reportrunner.nl?cr=${ report }&crit_1_mod=${ date }&crit_1_from=${ start }&crit_1_to=${ end }&crit_2=${ entity }&crit_3=${ name }.

The template context contains the following values:

  • report: The report ID

  • date: "CUSTOM"

  • start: January 1, 1970, formatted as an account date

  • end: January 1, 2100, formatted as an account date

  • entity: An empty value

  • name: The URL-encoded combination of the parent display name, the separator " : ", and the project entity title

The name tag is not the page-button ID. The report default comes from accounting or installed account report information. A default of 0 does not hide the button. A replacement URL must use the report's required filter positions and permissions.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/project/profitability": {
    hidden: false,
    name: "custpage_nx_profitability",
    label: "custcollection_fsm.profitability_project_report_button_label",
    report: getEntityProfitabilityReport(state) || 0,
    url: "/app/reporting/reportrunner.nl?cr=${ report }&crit_1_mod=${ date }&crit_1_from=${ start }&crit_1_to=${ end }&crit_2=${ entity }&crit_3=${ name }",
  }
} 

            

report is resolved from the account's entity profitability report setting or installed report information, with 0 as the fallback.

views/project/program

Displays the calculated Program on project forms when the configured entity tab is available. The list shows planned service dates and related Case information. It is a read-only projection of the Project's program rules.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Turns off the whole component, including Project program review and scheduling handlers.

el

NetSuite form-element definitions with the keys listed in the following element table.

Read-only Program list.

Controls the list presentation.

The following table lists the standard Program list elements and their settings.

el Key

Standard Type and Parent

Standard Label

Other Standard Settings

list

inlineeditor; configured entity tab.

Program.

name: "custpage_nx_program", readonly: true.

type

select; list.

Type.

display: "readonly", source: "customrecord_nx_case_type".

date

date; list.

Program Date.

display: "readonly".

case

select; list.

Case.

display: "readonly", source: "supportcase".

start

date; list.

Start Date.

display: "readonly".

end

date; list.

End Date.

display: "readonly".

status

select; list.

Status.

display: "readonly", source: "supportcasestatus".

assigned

select; list.

Assigned To.

display: "readonly", source: "employee".

Labels are translated; child IDs and mappings are generated. Type and Program Date describe the planned service. Case, Start Date, End Date, and Status are populated when a Case exists. Assigned To comes from the calculated service entry. Changing relevant Project dates, type, program limits, or time zone refreshes the displayed projection.

Preserve the list's read-only structure. Making a column editable does not turn it into a supported Case editor. The component also reviews program changes on relevant saves and requests program processing. Consequently, hidden: true is unsuitable if you want to remove only the display and keep these handlers active. For information about configuring program behavior, see Configuring FSM Program.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/project/program": {
    hidden: false,
    el: {
      list: {
        type: "inlineeditor",
        label: "custcollection_fsm.program_project_sublist_name",
        parent: getFormEntityTab(state),
        name: "custpage_nx_program",
        readonly: true,
      },
      type: {
        type: "select",
        label: "custcollection_fsm.program_project_type_label",
        parent: "list",
        display: "readonly",
        source: "customrecord_nx_case_type",
      },
      date: {
        type: "date",
        label: "custcollection_fsm.program_project_programdate_label",
        parent: "list",
        display: "readonly",
      },
      case: {
        type: "select",
        label: "custcollection_fsm.program_project_case_label",
        parent: "list",
        display: "readonly",
        source: "supportcase",
      },
      start: {
        type: "date",
        label: "custcollection_fsm.program_project_startdate_label",
        parent: "list",
        display: "readonly",
      },
      end: {
        type: "date",
        label: "custcollection_fsm.program_project_enddate_label",
        parent: "list",
        display: "readonly",
      },
      status: {
        type: "select",
        label: "custcollection_fsm.program_project_status_label",
        parent: "list",
        display: "readonly",
        source: "supportcasestatus",
      },
      assigned: {
        type: "select",
        label: "custcollection_fsm.program_project_assignedto_label",
        parent: "list",
        display: "readonly",
        source: "employee",
      },
    },
  }
} 

            

The form.tab.entity setting supplies the list's parent tab. Child control IDs and field maps are generated later when the component initializes.

views/project/subprojects

Adds an Add Subprojects list to editable project forms when the configured entity tab is present. Each staged row defines a child project for an asset. Saving the parent project requests background creation of those child records.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables staging, validation, and submitted child-Project creation handling.

el

NetSuite form-element definitions with the keys listed in the following element table.

Add Subprojects list.

Defines staged values and their presentation.

assetOption

Asset option map.

id: "internalid", label: "name".

Controls options in the filtered Asset selector.

The following table lists the standard Add Subprojects elements, parent relationships, labels, and settings.

el Key

Standard Type and Parent

Standard Label

Other Standard Settings

list

inlineeditor; configured entity tab.

Add Subprojects.

name: "custpage_nx_subprojects".

asset

select; list.

Asset.

required: true, source: "customrecord_nx_asset".

assetfiltered

select; list.

Asset.

required: true; replacement selector for restricted Customer assets.

type

select; list.

Type.

required: true; initial value from the Project model default type.

start

date; list.

Start.

required: true; initial value from the parent project.

end

date; list.

End.

required: true; initial value from the parent project.

programstart

date; list.

Program Start.

Initial value from the parent project.

programuntil

integer; list.

Program Create Until.

Initial value from the parent project.

Labels are translated; child IDs and mappings are generated. Type choices come from the Project's type field. The standard Project model does not supply a default type. Asset restrictions come from the Customer model's assets value: unrestricted Customers use the native selector; restricted Customers use assetOption results. Preserve mapped id and label values and the synchronization between assetfiltered and asset.

Starting a line copies the parent's current dates and program limits. Changing parent dates cancels the active line; changing Customer clears the staged list and current line. Required values are checked and End must not be before Start. After save, each staged row creates a child project with the saved Project as parent and its current Customer. See FSM Record Model Configuration for Project and Customer relationships.

Complete Core Object - Dynamic Values

The following object shows the complete declared standard defaults and retains expressions for dynamic values.

              {
  "views/project/subprojects": {
    hidden: false,
    el: {
      list: {
        type: "inlineeditor",
        label: "custcollection_fsm.workorder_addsubprojects_sublist_name",
        parent: getFormEntityTab(state),
        name: "custpage_nx_subprojects",
      },
      asset: {
        type: "select",
        label: "custcollection_fsm.workorder_addsubprojects_asset_label",
        parent: "list",
        required: true,
        source: "customrecord_nx_asset",
      },
      assetfiltered: {
        type: "select",
        label: "custcollection_fsm.workorder_addsubprojects_assetdropdown_label",
        parent: "list",
        required: true,
      },
      type: {
        type: "select",
        label: "custcollection_fsm.workorder_addsubprojects_type_label",
        parent: "list",
        required: true,
        value: Project.prototype.defaults.type,
      },
      start: {
        type: "date",
        label: "custcollection_fsm.workorder_addsubprojects_start_label",
        parent: "list",
        required: true,
      },
      end: { type: "date", label: "custcollection_fsm.workorder_addsubprojects_end_label", parent: "list", required: true },
      programstart: {
        type: "date",
        label: "custcollection_fsm.workorder_addsubprojects_programstart_label",
        parent: "list",
      },
      programuntil: {
        type: "integer",
        label: "custcollection_fsm.workorder_addsubprojects_programcreateuntil_label",
        parent: "list",
      },
    },
    assetOption: {
      id: "internalid",
      label: "name",
    },
    schedule: {
      title: "Project ${ project.id } New Subprojects",
      deployment: "proj_${ project.id }_nsp",
      callback: "views/project/subprojects/scheduled",
    },
  }
} 

            

The form.tab.entity setting supplies the parent tab, and the effective Project model default supplies the initial Type value. schedule records the background callback. Changing it is not a supported setup procedure.

views/projecttask/servicereport

Adds the Project Task Service Report button in view mode when the record has a Field Service Task Type and its status is Completed. The core button selects servicereport from notification.projectTaskEmail, opens the report preview, and asks for confirmation before requesting an email.

For this view's hidden, name, label, notification, send, success, error, and delay properties, see Service Report Button Configuration. That section also covers preview-only behavior and report attachments. Hiding the button does not disable automatic Project Task notifications.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/projecttask/servicereport": {
    "hidden": false,
    "name": "custpage_nx_servicereport",
    "label": "custcollection_fsm.report_projecttask_servicereport_button_label",
    "notification": "servicereport",
    "send": "custcollection_fsm.report_projecttask_servicereport_confirm_message",
    "success": "custcollection_fsm.report_projecttask_servicereport_success_message",
    "error": "custcollection_fsm.error_generic_error_message",
    "delay": 1000
  }
} 

            

views/signature

Adds signature pads for matching visible Rich Text fields on editable CRM task, project task, and quote forms.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables the pad replacement and signature handling.

pattern

Regular-expression string, matched case-insensitively against field IDs.

"^cust[a-z_0-9]+_nx[a-z_0-9]+signature[a-z_0-9]*$"

Identifies fields to replace with a pad.

The pad writes an image into the Rich Text field. Clear removes that field's value; copying a record clears copied signatures. A broader pattern can replace unintended Rich Text fields, so restrict it to actual signature fields.

The NetSuite pad has a fixed canvas size of 448 by 148 pixels. This view does not expose pen, color, or canvas-size settings. FSM Mobile signature element settings are separate. For details, see FSM Mobile Element (Block) Reference.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/signature": {
    "hidden": false,
    "pattern": "^cust[a-z_0-9]+_nx[a-z_0-9]+signature[a-z_0-9]*$"
  }
} 

            

views/task/autoname

Prepares the CRM Task title for automatic naming when the Task model has an automatic-name mapping. Selecting a Field Service Task Type on an editable form disables manual entry and supplies the temporary To Be Generated value. Clearing the type restores manual entry and the earlier name where available. Relevant noninteractive saves can also receive a temporary name.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Disables this name-field component.

The Task model controls the generated name; the view does not provide a naming template. Hiding it does not disable model naming. See FSM Record Model Configuration.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/task/autoname": {
    "hidden": false
  }
} 

            

views/task/servicereport

Adds the CRM Task Service Report button in view mode when the Task has a Field Service Task Type and its status is Completed. The core button selects servicereport from notification.taskEmail, opens the preview, and asks for confirmation before requesting an email.

For this view's hidden, name, label, notification, send, success, error, and delay properties, see Service Report Button Configuration. That section includes preview-only configuration and report/email selection. Hiding the button does not disable automatic Task notifications.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/task/servicereport": {
    "hidden": false,
    "name": "custpage_nx_servicereport",
    "label": "custcollection_fsm.report_task_servicereport_button_label",
    "notification": "servicereport",
    "send": "custcollection_fsm.report_task_servicereport_confirm_message",
    "success": "custcollection_fsm.report_task_servicereport_success_message",
    "error": "custcollection_fsm.error_generic_error_message",
    "delay": 1000
  }
} 

            

views/task/unassigned

Makes the Assigned field optional on CRM task browser forms after page initialization, allowing the form to accept an unassigned task. The core component waits 1,000 milliseconds before applying the change to accommodate NetSuite form initialization.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Turns off the adjustment that makes the Assigned field optional.

This is a form behavior. It does not supply an assignee, select an available resource, or remove every other model, role, or platform validation that may apply when saving a Task.

Complete Core Object

The following object shows the complete declared standard defaults.

              {
  "views/task/unassigned": {
    "hidden": false,
    "delay": 1000
  }
} 

            

delay: 1000 is the component's core initialization timing in milliseconds. It is included for completeness; this topic does not establish a supported timing override.

Views Without Documented Customer Configuration

These components support internal FSM form and record processing. This reference provides no customer configuration settings for them. Preserve their handlers; disabling or replacing them can remove validation, synchronization, or processing. Configure related behavior through the relevant Feature and Configuration topics.

View ID

Purpose

views/asset/address

Customer address synchronization.

views/asset/geo

Asset geocoding.

views/asset/label

Asset uniqueness validation.

views/asset/timezone

Asset time-zone synchronization.

views/config/details

Configuration form layout.

views/config/json

Configuration editor and Preview.

views/employee/mobileaccess

FSM Mobile password handling.

views/expensereport/billing

Expense billing processing.

views/expensereport/foreignamount

Expense foreign-amount synchronization.

views/schedule

Background-processing status display.

For supported settings, see FSM Configuration for configuration editing and Preview, FSM Record Model Configuration for model mappings and naming, and Configuring FSM Billing Rules for billing and processing rules.

Related Topics

General Notices