Configuring FSM Schedule Board Resources

Configure Schedule Board resource searches and mappings to control displayed resources, resource information, calendars, and location data.

This topic includes the following sections:

Resource Definitions

The standard resource.employee definition searches employee records. It selects active employees with an FSM region and, where applicable, applies subsidiary visibility restrictions.

Its map supplies resource information such as:

  • id and label

  • region and regiontext

  • skill and skilltext

  • jobtitle

  • calendar

  • editable and eligibility as a project resource

  • location and contact information

The board uses these mapped property names. The names don't necessarily match NetSuite field IDs.

Preserve the properties required by grouping, filters, calendar display, assignment, and other retained behavior when extending the map.

Adding Resources to the FSM Schedule Board

Add a separately named search under resource to load an additional set of rows. A new definition doesn't inherit resource.employee's map, active-employee criteria, or subsidiary restrictions. Supply its own selection criteria and the properties needed by the retained board behavior.

Customer configurations include generic resource searches alongside employee searches. The following example is adapted from a customer search restricted to one generic resource. It keeps the additional rows read-only: editable: false prevents assignment dragging onto them. Project Management and the native Work Calendar are prerequisites for this example.

Note:

Account-specific values: 17918 is the generic resource ID and 7 is the region ID in the archived example. Replace them with the intended records in your account. Include only resources appropriate for the board's viewers. This search doesn't inherit the employee search's user.view restriction. Region selection and grouping are display controls, not access restrictions.

            {
  "routes/scheduler": {
    "resource": {
      "genericresources": {
        "record": "genericresource",
        "filters": [
          ["internalid", "anyof", 17918],
          "and",
          ["isinactive", "is", "F"]
        ],
        "map": {
          "id": "internalid",
          "label": "formulatext:'GR: '||{entityid}",
          "title": "entityid",
          "jobtitle": "formulatext:'Generic Resource'",
          "region": "formulatext:'7'",
          "regiontext": "formulatext:'Generic Resources'",
          "skill": "custentity_nx_skill[]",
          "skilltext": "formulatext:nvl2({custentity_nx_skill}, replace({custentity_nx_skill}, ',', '<br>'), '')",
          "calendar": "formulatext:nvl2({workcalendar}, 'workcalendar-'||{workcalendar.id}, '')",
          "project": true,
          "editable": false
        }
      }
    }
  }
} 

          

The existing employee definition remains inherited. With the default groups: ["regiontext"], the additional records appear under Generic Resources when included by the resource-panel filters. Their names start with GR:. Their mapped calendar supplies calendar shading. Existing project task assignments to those resource IDs can be displayed. The example doesn't enable new assignments to those rows.

Use resource IDs that match the corresponding event assignments and remain unique across the complete resource collection. The board stores resources by ID. If two definitions return the same ID, the definitions don't create independent rows, and mapped values can overwrite one another. Keep calendar consistent with an available calendar definition. Setting project: true supplies an eligibility attribute. It doesn't establish that every event can save against that record type. In particular, a generic resource row doesn't establish an employee assignee or person who uses FSM Mobile for a CRM task.

When adding resource-panel filters, include their mapped columns in every applicable resource definition, using matching option IDs. This example maps region and skill for the standard filters and regiontext for row grouping. The Case Type filter and color examples apply to events and don't require a Case Type field on a generic resource row. Extend the relevant event maps if you add an event type. Don't use employee-only fields or joins in a generic resource search.

Adding Resource Information to the Board

Add content to existing display properties in resource.employee.map. Adding an arbitrary property to the map doesn't create a new visible line automatically.

This customer-derived example replaces the employee subtitle with the employee's supervisor and explicitly retains the job title and phone mappings:

            {
  "routes/scheduler": {
    "resource": {
      "employee": {
        "map": {
          "jobtitle": "title|",
          "subtitle": "supervisor#|",
          "phone": "mobilephone"
        }
      }
    }
  }
} 

          

# reads the supervisor's display text. | supplies an empty fallback. The inherited label, resource identity, filters, calendars, and eligibility map remain in place. The subtitle replaces the inherited department or subsidiary subtitle.

The following table shows how the board uses each mapped resource property.

Mapped Property

Board Usage

label

Resource-row heading and resource-panel card in both compact and detailed display.

jobtitle, subtitle

Additional lines in detailed board rows and detailed resource-panel cards. The resource popup also shows jobtitle.

title

Resource-popup heading, with HTML support. It is separate from the plain-text row label.

skilltext

HTML content in the resource popup. It can include additional relevant information as well as skills.

phone, email

Contact actions in the resource popup when values are present.

details

Included in resource text searching. Mapping it alone doesn't display it in the resource popup.

Use Detailed display to show the supervisor subtitle on board rows, and the resource panel's detailed mode to show it on cards. Board display and resource-panel display are separate choices. Keep content short enough for the available row width.

Another customer pattern adds crew size to the existing job-title line:

            {
  "routes/scheduler": {
    "resource": {
      "employee": {
        "map": {
          "jobtitle": "formulatext:{title}||nvl2({custentity_nxc_crew_size}, ' - Crew: '||{custentity_nxc_crew_size}, '')"
        }
      }
    }
  }
} 

          

custentity_nxc_crew_size is a customer field, not a standard FSM field. This variant requires that field, or a replacement field available to the employee search. It shows the crew suffix in detailed rows, detailed cards, and the popup's job-title line. It changes displayed information. It doesn't calculate crew availability or add crew members to task assignments.

Calendars and Location Data

The calendar definitions supply work hours, working weekdays, and exception dates. The standard configuration includes the FSM Work Calendar definition and, when Project Management is enabled, the standard NetSuite Work Calendar definition. A resource's mapped calendar value links it to the corresponding calendar.

Preserve matching calendar IDs and the properties used by calendar display and applicable project task processing.

Event and resource location mappings supply coordinates used by the map and on-site comparison. A map setting or onsite threshold doesn't generate missing coordinates or enable location collection in FSM Mobile. For information about the behavior that supplies or uses that data, see FSM Maps and Location Tracking and FSM Service Locations and Geocoding.

Additional Information

Related Topics

General Notices