Configuring FSM Mobile Sales Order Management
This topic covers configuration options for the Sales Order tab in FSM Mobile and the transaction risks associated with configuration changes. For tab behavior, editing rules, and the save and fulfillment lifecycle, see FSM Mobile Sales Order Management.
This topic includes the following sections:
Supported Configuration
Configure the existing salesorder resource under "routes/mobile". Use Updating and Validating FSM Configuration for the shared editing and activation procedure. Inspect the effective configuration for the account and installed version before changing it.
The following table identifies the Sales Order controls. Linked references explain the shared mechanisms, and the following sections explain the risks specific to this tab.
|
Change |
Where Configured |
Sales Order Consideration |
|---|---|---|
|
Make the tab available |
|
Select |
|
Select orders |
|
Select the intended orders by task or project context and retain their complete line data. Do not use selection filters to exclude individual lines. |
|
Change creation, access, or completion controls |
|
A higher creation limit does not isolate ownership or fulfillment. Use FSM Mobile Resource Properties Reference for the common controls. |
|
Change defaults or add fields |
|
Keep customer, project, task, asset, subsidiary, and line relationships consistent. Preserve existing line identity, location, inventory detail, and read-only protection. Use FSM Searches and Field Mapping for mapping instructions. |
|
Change item choices or quantity input |
|
Item choices and inventory assignments must remain compatible. For input properties, see FSM Mobile Element (Block) Reference. For stock and item restrictions, see Item Searches, Locations, and Stock. |
|
Enable or disable automatic fulfillment |
|
Use |
The following JSON shows the default creation limit, automatic fulfillment setting, and quantity input properties. Other sales order properties are inherited.
{
"routes/mobile": {
"salesorder": {
"icon": "wrench",
"max": 1,
"article": {
"fulfill": true
},
"element": {
"quantity": {
"type": "integer",
"min": 1,
"step": 1,
"value": 1,
"required": true
}
}
}
}
}
Sales Order Dependencies
Use one technician to manage each order. Concurrent changes can overwrite each other. The Mobile service needs access to perform the intended sales order operations and read related item fulfillment records. With automatic fulfillment enabled, the service also needs access to create and delete those records.
Keep the shared consumable and kit data available. Check Field Service Show On Mobile, supported item types, and stock at the processing technician's location. Transfer the required inventory to that location before using it. For the full item-type matrix, see Supported Item Types for the Sales Order Tab.
The account's location, subsidiary, bin, lot, serial, and cross-subsidiary features affect its maps and inventory choices. Preserve the applicable mapping and validate those combinations in the account. Do not assume that a default from another account is appropriate.
The default tab does not support Inventory Status. Accounts requiring it need an override covering both item selection and saved inventory assignments.
Preserve Line-Level Read-Only Protection
The line-level readonly formula in salesorder.article.map.items controls editing and removal in FSM Mobile. It also protects existing lines from server updates and excludes read-only lines from automatic fulfillment.
You can modify this formula, but changes to the line-level read-only rules are not supported. Weakening or removing its protections can affect existing lines and downstream processing. Errors and unexpected behavior caused by these changes are not product defects and are not covered by FSM product support.
The default rule protects item-group headers and footers and lines without the current CRM task or project task relationship. It does not check creation origin, fulfilled status, or stock. A line created outside FSM Mobile can already be editable if its task relationship matches. A shared project alone does not make every line editable.
Removing read-only protection makes existing lines eligible for updates. With automatic fulfillment enabled, editable, fulfillable lines with a location can also be selected without having changed in that save. There is no separate task-ownership check in that selection.
The following table explains the risks of changing read-only protection on existing orders.
|
Existing-Order Scenario |
Risk When Protection Is Removed or Weakened |
|---|---|
|
Lines created outside FSM Mobile or belonging to another task |
Adding a line and saving can also rewrite or process untouched existing lines. Another task's fulfillments remain during an update and are not reconciled by the current task's replacement operation. |
|
Unsupported item types or values outside FSM Mobile's choices |
Making the line editable does not establish type support or provide valid choices. Requirements for the item and quantity, along with NetSuite line rules, can block editing or saving. Replacing or deleting the line can alter pricing, grouping, or transaction meaning. |
|
Fully or partially fulfilled lines |
|
|
Inventory detail split across several lots or bins |
FSM Mobile exposes serial selections and the first returned lot/bin, then rebuilds assignments from those fields. Rewriting a previously protected line can collapse split assignments or apply one bin to serial assignments, changing inventory detail or causing validation failure. |
|
Item-group structural lines |
A blank group-footer quantity can prevent saving, even when the structural line is read-only. Deleting lines in or above a group can cause synchronization errors. Removing protection does not resolve these limitations. |
Keep existing lines in the data submitted to NetSuite. An omitted line can be removed from the order regardless of read-only protection. Do not filter out unsupported, fulfilled, or other-task lines as a workaround. Keep protected existing lines intact when you add lines in FSM Mobile.
Item Searches, Locations, and Stock
The Sales Order item list uses shared inventory and kit data. Shared item searches must retain the nested item ID and label, along with the assignment data expected by the Sales Order controls. Replacing item.options with an independent search does not supply the location, bin, lot, serial, or kit-component data needed by controls that use those item choices. A selectable item is not proof that it can be fulfilled.
The following table explains the risks of changing item searches, locations, and quantity controls.
|
Change or Condition |
Risk |
|---|---|
|
Broaden locations beyond the technician's van |
Selecting another location attempts fulfillment at that location. It does not transfer inventory into the van. Recorded consumption can differ from what the technician physically used. If the line remains assigned to the van, stock elsewhere cannot fulfill it. |
|
Remove positive-available-stock filters |
Zero-stock choices can be offered where matching search rows exist. The order may save, but fulfillment can fail or stock can remain on backorder. Location, bin, lot, and serial availability still matter. |
|
Remove mapped availability or use company-wide stock |
Removing |
|
Enter more than is available |
The default quantity controls have no stock-based maximum. Positive stock means some stock exists, not that it covers the entered quantity. Kit checks do not validate requested quantities against component quantities. Item-group components may also be unavailable. |
|
Reuse stale choices or share stock between technicians |
Loaded choices do not reserve inventory. Stock can change before synchronization, and the default controls do not allocate inventory between technicians. |
|
Change shared inventory searches |
Other tabs that use the same data are also affected. Preserve the relationship between the item, location, and inventory assignments, and check the affected tabs. |
An existing unfulfilled line can already specify the technician's van as its location even when the item has no stock there. Loading the line does not confirm availability. Removing its read-only protection lets it enter processing without a stock check in fulfillment selection. Broader searches do not remedy the van shortage. Save and fulfillment validation in NetSuite still applies.
Required serial, lot, and bin assignments must agree with the saved quantity. Missing assignments can cause skipped fulfillment or synchronization failure. Changes to quantity input must remain compatible with the item's units and inventory assignments.
Automatic Fulfillment
Set salesorder.article.fulfill to true to enable automatic fulfillment or false to disable it. It is enabled by default. Removing a custom false override enables it again.
With fulfillment disabled, FSM Mobile still saves the order and converts inventory details, but does not delete or create fulfillments. Existing fulfillments remain, so edits to previously fulfilled lines can conflict with those fulfillments. Arrange the separate fulfillment workflow before disabling this setting.
With fulfillment enabled, an update deletes fulfillments linked to the order and current task before saving the order and creating replacements. A later failure can leave earlier deletions or saved order changes in NetSuite. For the synchronization and fulfillment sequence, see Sales Order Synchronization and Fulfillment.
Enabling fulfillment after earlier saves with it disabled can bring existing eligible lines into processing on the next save. It is not limited to newly added or changed lines. Check those lines, their locations, stock, and existing fulfillments first, especially if read-only protection has been weakened.
Fulfillable Non-Inventory, Service, and Other Charge items for sale or resale can be included through the appropriate shared item searches. These items require an enabled Can Be Fulfilled/Received setting and a valid line property named location. Inventory stock is not required for these items. Without that location, automatic fulfillment skips the line. A separate property named linelocation or inventorylocation does not replace location. Map location to the applicable NetSuite Location or Inventory Location field. Setting fulfill to true does not populate a missing location or guarantee fulfillment.
With automatic fulfillment enabled, deleting an order looks up its fulfillments without the current-task restriction used for updates. Other tasks' fulfillments can be affected. Do not delete and recreate an order as an editing workaround.
Preserve the Core Resource and Other Boundaries
Keep all supported scenarios on the single standard salesorder resource. Copying its JSON into an unrelated resource ID does not copy its specialized synchronization functions. A copied tab can look correct or save an order without the standard inventory conversion, fulfillment processing, fulfillment-detail merge, and result refresh. Copying the fulfillment setting does not install those functions.
Standard price-level selection can be configured. Explicit selections can override customer-specific pricing.
The Custom price level (-1) requires manual rate handling. Custom pricing and direct line-rate entry remain unsupported on this tab. Adding a writable rate column can also submit blank rates on lines added with normal pricing, interfering with NetSuite rate sourcing. Later saves also process existing editable lines, so their loaded rates must remain correct. Requiring a rate only for Custom does not address blank rates on other lines. A successful first save does not establish that adding or changing lines later will work.
Task-based asset defaults do not allocate charges across child assets on a job with multiple assets. For the separate billing and case invoicing boundaries, see Billing and Case Invoicing.
Effects on Existing Transactions
Changed settings do not reverse saved sales orders, deleted or recreated item fulfillments, or inventory movements. Changes to resource selection or permissions do not cancel outstanding local work.
For synchronization and processing, see FSM Script Reference.