Inventory Section

The inventory section loads whenever the mobile app is started or refreshed, and provides inventory or item data for the quote, consumables, salesorder, order, receive, and return tabs.

It loads four elements, each with a specific purpose:

You can see the basic configuration shell in the code block below.

          "inventory": {
   "element": {
      "consumable": {
         "uri": "consumable",
         "type": "datalist",
         "options": {
         .... }
      },
      "kit": {
         "uri": "kit",
         "type": "datalist",
          "options": {
         .... }
      },
      "orderable": {
         "uri": "orderable",
         "type": "datalist",
          "options": {
         .... }
      },
      "receivable": {
         "uri": "receivable",
         "type": "datalist",
          "options": {
         .... } 
      }
   }
} 

        

The Consumable Element

The consumable element loads inventory from the employee's location set to appear on mobile.

This data is used on the consumables, salesorder and return tabs.

The base product is set up to load these types of items:

  • Inventory Item

  • Serialized Inventory Item

  • Lot Numbered Inventory Item

  • Assembly Item

  • Serialized Assembly Item

  • Lot Numbered Assembly Item

Only items available in the employee's location and with the Field Service Show On Mobile box checked will be loaded. Item Groups are also loaded if the box is checked, but location availability isn’t validated.

If you change your inventory or item features, the searches here will also change. Don’t copy this section between accounts. Use the config preview as your starting point. You’ll see different search labels below, but it’s best to view the code directly in the account using the Configuration Preview feature.

            "inventory": {
   "element": {
      "consumable": {
         "group": {},
         "location": {},
         "inventorylocation": {},
         "inventorynumber": {},
          "inventorynumberbinonhand": {},
         "binnumber":{},
         "binonhand": {}
      }
   }
} 

          

The Kit Element

The kit element works with the consumable element on the salesorder tab and checks if all components and quantities are in the user's location. If so, the kit will appear in the available items list on the salesorder tab.

The Orderable Element

The orderable element loads any items with the Field Service Show On Mobile box checked. This data is used on the quote and order tabs.

Tip:

Don’t set up more than 10,000 items for the mobile quote and order tabs, since this slows down app loading and item field performance. Show only the most common parts and add a miscellaneous item for the back office to flag extra parts.

The Receivable Element

The receivable option loads any transfer orders pending receipt to the employee's location, plus the lines, items, and quantities to be received. This data is used on the receive tab.

To learn more about the inventory section, see the following:

Default Configuration

Elements loaded in the inventory section can be accessed elsewhere on the mobile through user resources.

            "user": {
      "employee": {
        ...
        "map": {
         ....
        },
        "resources": [
          {
            "resources": [
              "inventory"
            ]
          }
        ]
      }
    }, 

          

You can also add new components that aren’t inventory or item related and they'll be available on mobile too. For more examples, see Configurability.

Limitations and Key Considerations

Here are a some things to keep in mind, including some limitations, when using the inventory section.

  • Data loaded in options is cached until you refresh the mobile app, so item quantities aren’t updated automatically. Updates appear after they're saved in NetSuite and the mobile app is refreshed.

  • You can add or change elements, but inventory and item searches are used in other parts of mobile. For example, the consumable option loads available stock to fulfill sales orders. Changing these searches can cause errors or affect other FSM functions like order fulfillment, so you shouldn’t modify them unless you’re sure of the impact.

Configurability

Adding Additional Searches to the Inventory Section

You can add more content to the inventory section and make it available to mobile. To do this, define additional elements in the same way as the default content.

For example, you might add elements like taskresources or services.

Note:

Every item must have a unique uniform resource identifier (uri) property, a datalist type, and a set of options.

                  "inventory": {
         "element": {
            "consumable": {
               ....
            },
            "orderable": {
            },
            "taskresources": {
               "uri": "taskresources",
               "type": "datalist",
               "options": {
                  "sort": "label",
                  "employee": {
                     "record": "employee",
                     "filters": [
                        ["isinactive","is","F"],"and",
                        ["custentity_nx_region","noneof","@NONE@"]
                     ],
                     "map": {
                        "id": "internalid",
                        "label": "formulatext:nvl(trim(trim(trim({firstname})||' '||{middlename})||' '||{lastname}), {entityid})"
                     }
                  }
               }
            },
            "services": {
               "uri": "services",
               "type": "datalist",
               "options": {
                  "all": true,
                  "record": "item",
                  "filters": [
                     ["isinactive","is","F"],"and",
                     ["type","anyof","Service"]
                  ],
                  "map": {
                     "id": "internalid",
                     "label": "name"
                  }
               }
            },
            "timeclass": {
               "uri": "time_class",
               "type": "datalist",
               "options": {
                  "all": true,
                  "record": "classification",
                  "filters": [
                     ["isinactive","is","F"]
                  ],
                  "map": {
                     "id": "=internalid",
                     "label": "formulatext: {name} || ' : ' || {custrecord_lit_class_description} || ' : ' || {custrecord_del_as_pl_assetnumber.custrecord_del_as_pl_platenu}",
                     "items": "=custrecord_lit_other_service_options[]",
                     "defaultitem": "=custrecord_lit_main_service_item"
                  }
               }
            },
            "plant_items": {
               "uri": "plant_items",
               "type": "datalist",
               "options": {
                  "all": true,
                  "record": "item",
                  "filters": [
                     ["isinactive","is","F"],"and",
                     ["custitem_lit_cost_type","anyof","2"],"and",
                     ["type","anyof","Service"]
                  ],
                  "map": {
                     "id": "=internalid",
                     "label": "formulatext: nvl({custitem_nxc_mobile_display_name},{itemid})",
                     "maxplant": "formulatext:nvl({custitem_nxc_mobile_max},24)[integer]"
                  }
               }
            }
         }
      } 

          

You can reference these extra elements by their uri, like time_class, to return their options elsewhere in the mobile app.

               "timeclass": {
      "type": "select",
      "label": "Plant",
      "search": true,
      "class": "el-6",
      "required": true,
      "column": 1,
      "options": "time_class.options"
   }, 

          

Related Topics

General Notices