FSM Project View Configuration

Note:

This reference is intended for administrators and developers who configure project and project task form controls.

This topic includes the following sections:

Automatic Project Naming

The views/project/autoname configuration 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.

The following table describes the hidden property for the Project naming component.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean value.

false

Turns off this name-field component.

The Project model controls the final name. The view has no naming-template property, and hiding it doesn't disable model naming. For automatic naming configuration, see FSM Record Model Configuration.

Complete Standard Object

This object shows the complete declared standard defaults.

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

            

Contact Selection for Projects

The views/project/contact configuration adds the contact selector when you create a project. You must be able to edit the form, and the Field Service Project Type field must be visible. 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. This table lists the configuration properties, accepted values, standard defaults, and effects.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean value.

false

Turns off 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. Don't depend on multiple matching primary choices selecting a particular contact. An empty selector value doesn't itself request clearing an existing record contact. For search syntax and mapping, see FSM Searches and Field Mapping.

Complete Standard Object

This example 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"
        }
      }
    }
  }
} 

            

Project Customer Display

The views/project/customer configuration displays customer inline on a project form that you can edit when parent project is absent, hidden, or read-only. It supports forms where customer is derived through parent project rather than edited independently.

The table lists the accepted value, default, and effect of the hidden property.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean.

false

Turns off the form display adjustment.

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

Complete Standard Object

This example shows the complete declared standard defaults.

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

            

Create Time Journal Button

The views/project/journal configuration adds the Create Time Journal button in project view mode. The button is available 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.

The following table lists the Create Time Journal button's properties, accepted values, standard defaults, and effects.

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.

The view has no confirmation-message setting. Account selection, time eligibility, amounts, and costing updates belong to accounting rules and the model action. For accounting controls and model behavior, see Configuring FSM Project Labor Cost Posting and FSM Record Model Configuration.

Complete Standard Object

This example 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"
  }
} 

            

Profitability Report Button

The views/project/profitability configuration adds the Profitability Report button in project view mode. It uses the entity profitability report with the Project name filter. The following table lists the configuration properties, accepted values, standard defaults, and effects.

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

Web address template string.

Report runner web address described in this subsection.

Builds the filtered link.

The standard web address 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 - An encoded combination of the parent display name, the separator " : ", and the project entity title for use in a web address

The name template value is not the page-button ID. The report default comes from accounting or installed account report information. A default of 0 doesn't hide the button. A replacement web address must use the report's required filter positions and permissions.

Complete Standard Object with Dynamic Values

This 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 }",
  }
} 

            

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

Project Program View

The views/project/program configuration 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. The following table lists the component properties, accepted values, standard defaults, and effects.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean value.

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 (parent: configured entity tab).

Program.

name: "custpage_nx_program", readonly: true.

type

select (parent: list).

Type.

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

date

date (parent: list).

Program Date.

display: "readonly".

case

select (parent: list).

Case.

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

start

date (parent: list).

Start Date.

display: "readonly".

end

date (parent: list).

End Date.

display: "readonly".

status

select (parent: list).

Status.

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

assigned

select (parent: list).

Assigned To.

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

Labels are translated, and 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 doesn't 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 Standard Object with Dynamic Values

This 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.

Project Subprojects Configuration

The views/project/subprojects configuration 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. The following table lists the configuration properties, accepted values, standard defaults, and effects.

Property

Accepted Value

Standard Default

Effect

hidden

Boolean value.

false

Turns off 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 (parent: configured entity tab).

Add Subprojects.

name: "custpage_nx_subprojects".

asset

select (parent: list).

Asset.

required: true, source: "customrecord_nx_asset".

assetfiltered

select (parent: list).

Asset.

required: true. Replacement selector for restricted Customer assets.

type

select (parent: list).

Type.

required: true. Initial value from the Project model default type.

start

date (parent: list).

Start.

required: true. Initial value from the parent project.

end

date (parent: list).

End.

required: true. Initial value from the parent project.

programstart

date (parent: list).

Program Start.

Initial value from the parent project.

programuntil

integer (parent: list).

Program Create Until.

Initial value from the parent project.

Labels are translated, and child IDs and mappings are generated. The Project's type field supplies the type choices. The standard Project model doesn't supply a default type. The Customer model's assets value determines asset restrictions. 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. For Project and Customer relationships, see FSM Record Model Configuration.

Complete Standard Object with Dynamic Values

This object shows all 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. The schedule property records the background callback. Changing it is not a supported setup procedure.

Project Task Service Report Button

The views/projecttask/servicereport configuration 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 standard button selects servicereport from notification.projectTaskEmail, opens the report preview, and asks for confirmation before requesting email delivery.

For this view's hidden, name, label, notification, send, success, error, and delay properties, see Configuring FSM Service Report Buttons. That section also covers preview-only behavior and report attachments. Hiding the button doesn't stop automatic Project Task notifications.

Complete Standard Object

This 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
  }
} 

            

Additional Information

Related Topics

General Notices