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:
-
consumable
-
kit
-
orderable
-
receivable
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.
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
.
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"
},