Configuring FSM Asset Hierarchy and Inheritance

Use Asset configuration to choose which fields a child asset inherits from its immediate parent and which fields are reserved for assets without a parent. These settings apply to FSM asset record processing and the associated NetSuite forms.

For the hierarchy, field-sourcing behavior, background updates, and processing limits, see FSM Asset Hierarchy and Inheritance.

This topic includes the following sections:

Before You Begin

Before you change the asset configuration, confirm the following:

  • You need access to edit Field Service Configuration and the applicable asset records.

  • Identify the asset field IDs. Field labels can be customized, so these lists use field IDs rather than labels or model aliases. A listed field must have an Asset model mapping compatible with the intended sourcing or clearing. An inherited field must also support the parent comparison used by background processing. Do not assume that every field type is compatible.

  • Retain the FSM Asset model and the Asset client and user event scripts. Background inheritance updates also require Field Service Scheduled : Asset (customdeploy_nx_asset). See FSM Script Reference for deployment details and monitoring.

  • Use an editable asset form containing Parent (parent) and the fields being checked. Retain the parent view's form behavior described in Dependencies and Form Behavior.

You can use the parent-child record hierarchy in NetSuite with FSM assets. FSM supplies the standard inheritance settings. You don't need a custom override to use the four standard inherited fields.

Default Configuration and Choices

Configure the lists inside the root asset object in the Field Service Configuration JSON.

The following table summarizes the standard settings and their effects on assets with a parent.

Setting

Standard Configuration

Effect on an Asset with a Parent

asset.inheritFields

Customer, Address Select, Address, and Region field IDs

Sources values from the immediate parent during applicable asset initialization and validation, including child saves. Background processing selects children whose configured inherited values differ from their parent's values.

asset.parentFields

[]

Clears populated values of the listed fields during applicable asset initialization and validation. These values are not copied from the parent.

The following table lists the four standard inherited fields and their IDs.

Field

Field ID

Customer

custrecord_nx_asset_customer

Address Select

custrecord_nx_asset_address

Address

custrecord_nx_asset_address_text

Region

custrecord_nx_asset_region

Keep the complete intended field list when overriding either property. Omitting asset.inheritFields retains the four standard fields. For array replacement and omitted properties, see How Custom Configuration Combines with Core Configuration.

Warning:

Adding a field to inheritFields can overwrite child-specific values. Adding a field to parentFields can clear a populated value on a child. Restoring the previous configuration does not restore values already overwritten or cleared.

Standard default JSON for these properties:

            {
  "asset": {
    "inheritFields": [
      "custrecord_nx_asset_customer",
      "custrecord_nx_asset_address",
      "custrecord_nx_asset_address_text",
      "custrecord_nx_asset_region"
    ],
    "parentFields": []
  }
} 

          

Change the Inherited-Field List

Change the Inherited-Field List

  1. Go to Field Service > Administration > Configuration. The Field Service Configuration page opens the active configuration record.

  2. Record the name of the active configuration so that you can identify it when activating the replacement.

  3. In Name, enter a unique name for the revised configuration. Begin with the current product version, followed by the date in YYYYMMDD format and your initials. You can add a short description.

  4. Check the Inactive box to keep the replacement inactive during editing.

  5. On the Save list, click Save As.

  6. Click List. On the Field Service Configuration List page, check the Show Inactives box.

  7. Find the copied record and click Edit.

  8. Review the effective asset.inheritFields array, including existing account customizations.

  9. Choose the complete list of verified asset field IDs that should inherit from the immediate parent. Include any additional account fields that must continue to inherit.

  10. Review asset.parentFields so that the two lists serve distinct purposes.

  11. In the Editor, set inheritFields inside the root asset object to that complete array. Preserve unrelated configuration properties.

  12. If you use an external editor, paste the revised JSON back into the Editor.

  13. Complete the checks in Validating the Draft before activation.

  14. On the Save As list, click Save.

  15. On the configuration list, clear the Inactive box for the replacement record and check the Inactive box for the previous active record.

  16. Click Submit. Reopen the configuration page to confirm the intended record is active.

Example: Retain Three Core Inherited Fields

This fragment retains Customer, Address Select, and Address inheritance, and removes Region from the inherited-field list. Merge this fragment into the existing custom configuration without replacing the account's complete JSON.

              {
  "asset": {
    "inheritFields": [
      "custrecord_nx_asset_customer",
      "custrecord_nx_asset_address",
      "custrecord_nx_asset_address_text"
    ]
  }
} 

            

Removing Region from this list does not clear Region values previously copied to children. This fragment leaves asset.parentFields unchanged.

Configure Parent-Only Fields

Use asset.parentFields when a field's value should be retained only on assets without a parent. An asset that has children can still be a child itself, so its Parent value determines whether this rule applies.

Configure Parent-Only Fields

  1. Go to Field Service > Administration > Configuration. The Field Service Configuration page opens the active configuration record.

  2. Record the name of the active configuration so that you can identify it when activating the replacement.

  3. In Name, enter a unique name for the revised configuration. Begin with the current product version, followed by the date in YYYYMMDD format and your initials. You can add a short description.

  4. Check the Inactive box to keep the replacement inactive during editing.

  5. On the Save list, click Save As.

  6. Click List. On the Field Service Configuration List page, check the Show Inactives box.

  7. Find the copied record and click Edit.

  8. Review the effective asset.parentFields array and the existing values on affected children.

  9. Choose verified asset fields intended for assets without a parent.

  10. Keep these fields separate from asset.inheritFields.

  11. In the Editor, set parentFields inside the root asset object to the complete intended array of field ID strings.

  12. Preserve any existing parent-only entries that must continue to apply and leave the inheritance list unchanged unless you intend to change it too.

  13. If you use an external editor, paste the revised JSON back into the Editor.

  14. Complete the checks in Validating the Draft before activation.

  15. On the Save As list, click Save.

  16. On the configuration list, clear the Inactive box for the replacement record and check the Inactive box for the previous active record.

  17. Click Submit. Reopen the configuration page to confirm the intended record is active.

Important:

Changing parentFields does not independently select every existing child for background processing. Clearing occurs through the affected child's asset validation and save. Do not assume that activating the list has cleared all existing child records.

Dependencies and Form Behavior

The root "views/asset/parent" configuration has hidden: false by default. On a child form that you can edit, this view prevents edits to fields in both lists and hides the child-asset sublist. Changing Parent updates the affected field controls.

Setting "views/asset/parent".hidden to true turns off that view's form behavior. Asset model sourcing and clearing still apply. An editable field does not establish that a manually entered value is retained when you save the child. Change the relevant field list when changing the sourcing rule. For view controls, see views/asset/parent in FSM NetSuite View Configuration. For mappings, see models/asset in FSM Record Model Configuration.

The standard inheritance list excludes Latitude (custrecord_nx_asset_latitude), Longitude (custrecord_nx_asset_longitude), and Time Zone (custrecord_nx_asset_time_zone). For configuration of these fields, see Configuring FSM Service Locations and Geocoding and Configuring FSM Service Time Zone Sourcing and Synchronization. Do not add Latitude, Longitude, or Time Zone merely to reproduce the standard inheritance list.

The Asset scheduled deployment also performs separate location updates on eligible CRM tasks and project tasks. An inheritance-list change does not stop that processing. For deployment administration, see FSM Script Reference.

When Changes Apply

Changes apply during subsequent asset initialization, validation, and background inheritance processing. A changed inherited value on a parent can request child updates. Each child sources its immediate parent's value.

Update Child Assets indicates pending processing, rather than a currently running script. See Background Asset Updates and FSM Script Reference for processing and error behavior.

For performance measurement and data capture, see FSM Performance and Data Collection.

Disable or Restore the Field Rules

The following table explains how to remove or restore the field rules and describes the resulting behavior.

Intended Change

Configuration Action

Effect

Remove configured inheritance

Set asset.inheritFields to [].

Removes sourcing and background comparison through this list. Existing copied values remain.

Restore standard inheritance

Remove the custom asset.inheritFields property.

Restores the four standard inherited fields through configuration merging.

Stop configured parent-only clearing

Set asset.parentFields to [], or remove that custom property to restore its empty standard array.

Removes clearing through this list. Values previously cleared remain empty unless restored separately.

Restore a previous custom list

Reinstate its complete array.

Applies the restored rules during subsequent applicable processing. It does not reverse earlier record changes.

Clearing the lists retains the parent-child relationships and the parent view's child-sublist behavior. A running Asset scheduled execution uses the configuration loaded for that execution. Changing the lists does not cancel an already requested execution or establish that outstanding work has finished.

Related Topics

General Notices