Automate Required Inventory Pickup Creation Using Bulk Routing

Bulk routing may auto-create inventory pickup activities to obtain required inventory pieces from the nearest warehouse and handle the changes during intra-day routing re-optimization runs. This increases the autorouted percentage value and improves routing quality as the same mobile worker completes more activities.

This feature includes these options:

  • Bulk routing auto-creates activities to pickup inventory from the nearest warehouse if such an inventory pickup allows more optimal routes creation according to chosen optimization goal
  • New settings are available in the routing plan to support automated creation of required inventory pickup
  • New activity type group and new pre-defined activity type are available for Warehouse visits
  • Viewing the amount of inventory booked via the automated required inventory pickups creation by bulk routing is available on the warehouse inventory page
  • Calendars and locations may now be added to resources of all roles excluding Organization Units but including Buckets and Tools

You will learn how to automate required inventory pick-up using bulk routing in this section.

Follow these steps to utilize inventory pickup functionality:

  1. Review Warehouse Visit activity type and modify if necessary or create a new activity type.
  2. Add a warehouse resource type
  3. Create and configure a warehouse resource.
  4. Fill the Warehouse inventory.
  5. Update the inventory identifier screen configuration.
  6. Add resource filter for use in routing plans.
  7. Configure a routing plan.
  8. Plan for recurrent optimization.

Results:

This section discusses the above steps in detail:

Review Warehouse Visit Activity Type

OFS automatically includes a Warehouse Visits activity type group, and the default Warehouse Visit activity type is included for your convenience. If the default activity type meets your organization’s needs, you don’t have to do anything else regarding this step.

If it doesn’t meet your needs, you can edit it by defining the default duration, selecting time slots, and disabling any of the selected features (except for “Support of Inventory” and “Support of not-ordered activities,” which are enabled by default). Notice that pending Warehouse Visit activities use purple color-coding to help identify them on the Manage view and Dispatch Console.

If you want to create a new warehouse activity, you must select Warehouse Visits for the activity group. The Warehouse Visits activity group automatically limits the available features for any activity type created within that group. For example, “Support of inventory” is selected by default. Other constraints include the inability to select the activity to be mass or repeating activities, to move or reschedule activities of this type, and to support work skills or work zones. Additional limitations exist, and the Features list is specifically configured to enable only the allowable features for activity types in this activity group.

Add a Warehouse Resource Type

Add a warehouse resource type that uses the Bucket resource role. Be sure that it’s active. The “Routing can assign activities” and “Used for quota management” features can be enabled at your discretion.

Create and Configure a Warehouse Resource

Decide whether the warehouse routing resource should be a child of the bucket that contains the activities to be routed. Another option is to locate it outside the routing bucket’s hierarchy. If you choose this option, the following conditions must be met before Routing can create an automatic pickup activity for required inventory:
  • The warehouse resource must have at least one of the same work zones as the routing bucket.
  • The Filters section of the routing plan must have “Use resources outside the routing bucket” enabled.
  • The activity’s work zone must match the warehouse’s work zone.

Now, you’ll create a warehouse resource. For Resource Type, select the one you just created. And for Org Unit/Bucket, select either the routing bucket or the entity where you want to warehouse to reside in the resource tree.

You must add a Start location for the warehouse resource, which is simply its address, and that you set that Start location for each day of the week the warehouse is open. You must also ensure that the warehouse resource’s calendar is set for the days of the week and hours of the day when mobile workers can pick up required inventory. Routing can create Warehouse Visit activities only if the warehouse resource has both location and calendar information specified.

Fill Warehouse Resource with Inventory

You can create inventory for the warehouse resource via API (see the Integration section under Additional Information), or you can do so manually by selecting Resource Inventory on the Resource Info screen for the warehouse resource, selecting Add to Resource, and adding inventory items.

Update the Inventory Identifier Screen Configuration

This step updates the “Identify equipment by” identifier screen configuration to display the Booked Quantity value for each inventory item. The regular Quantity value does not change when the Warehouse Visit activity is created, although OFS does note that the required inventory is booked. And OFS knows that the remaining available inventory is the total quantity minus the booked quantity. Adding this step simply lets you see what’s been booked.

To do this, under the Collaboration and Identifiers section of the user type screen configuration, open the “Identify equipment by” screen context and add the Booked Quantity property. If no required inventory has been booked, this value will not appear in the equipment list.

Add Resource Filter for Use in Routing Plans

Routing needs to be able to identify warehouse resources, so the next step is to create a resource filter that uses the condition “Resource Type (ptype) In Warehouse.” (Creating a custom property to distinguish a warehouse resource type from other resource types is also an option.)

Configure Routing Plan

You can configure the automatic creation of Warehouse Visits to pick up required inventory for any type of routing plan.

The first thing you need to do is modify the Assignment Parameters section by selecting Enable Routing by Inventory. Then select Enable Inventory Pickup and select the Warehouse Visit activity type from the “Inventory pickup activity type” drop-down menu.

Next, you’ll make some changes to the Filters section of the routing plan. Select one of the activity filters, select Resources, and then select the Warehouse resource and set its priority to “Treat as warehouse.” (This step needs to be done for only one filter within the routing plan, regardless of the total number of filters being used.)

Plan for Recurrent Optimization

Throughout the day, if activities get added, canceled, or deleted, it may affect the booked and available quantities of inventory at the warehouse.

Here’s what happens in those circumstances:
  • If the activity requiring inventory is deleted or canceled before inventory pickup, the inventory in the Warehouse Visit activity is not changed, but a warning appears to let the mobile worker know that inventory needs have been changed. It is possible that the Warehouse Visit is for picking up inventory for multiple jobs, the Warehouse Visit activity is not deleted automatically.
  • In these additional situations, no changes are made to the Warehouse Visit activity:
    • If the activity requiring inventory is suspended or changed to non-ordered
    • If the activity is moved (manually or via API) to another day and/or resource

It is recommended that you follow the best practice of running recurrent optimization plans on the bucket. This practice can add, modify, or remove Warehouse Visit activities and update the warehouse inventory list. This is true even if multiple Warehouse Visit activities were scheduled for a single customer activity.

You may want to set up a recurring daily Warehouse Visit activity to maintain a placeholder for that activity in every route to account for a resource’s time. Then, when a day-before or intraday optimization plan is run, if no missing required inventory is identified, Routing will automatically remove the Warehouse Visit activity from the route.

Additional Information

Moving Automatically Created Warehouse Visit Activities

Although you can manually edit Warehouse Visit activities that were created automatically, we recommend against it to avoid jeopardizing other activities in the route. If manual editing makes changes that do jeopardize other activities or the Warehouse Visit activity, a warning message appears.

Working with Both Regular and Automatically Created Warehouse Visits

Although Routing will automatically create Warehouse Visit activities when needed for activities with required inventory, it’s possible that you also have “regular” warehouse visit activities that were created either manually or via API for example to replenish trunk stock. Both of these types of warehouse activities can appear in the same route. And you may want to continue to manage the regular activities manually. However, it may be possible that the inventory needed by regular visits is available at the same warehouse as the automatically created visit, it makes sense to pick up all inventory at the same time.

One way to accomplish that is through two different activity types for warehouse visits: one created in the Internal activity group for manually managed warehouse activities, and the other created in the Warehouse Visits activity type group. When you do that, Routing will create, update, and delete required inventory pickups automatically, and it will bundle regular visits with the automatically created visits if they both have the same address – the warehouse resource’s Start location.

Another way to accomplish that is to create regular Warehouse Visit activities as placeholders in every route. You can even use the same activity type in the Warehouse Visits group for both manually and automatically created Warehouse Visit activities. Then, any required inventory that needs to be picked up is automatically added to the pre-created activity, and if no required inventory is needed, the activity is removed. If you want to ensure that Warehouse Visit activities remain on future days’ routes, you can set your optimization plan to remove only today’s warehouse activities if no required inventory needs to be picked up.

Working with Multiple Warehouse Visit Types

By default only one predefined Warehouse Visit activity type is available to automatically create a visit activity to pick up required inventory. You can, however, create additional types for use in different routing plans. For example, you might want to differentiate Warehouse Visits for in-house workers and contractors. You can set up one activity type with a default activity duration for the contractor Warehouse Visit, while setting up another that uses learned statistics to estimate pickup duration for in-house resources.

Working With Visits Created by Order Parts Plug-in V.2

If you created an order pickup plug-in based on the sample code of plug-in-order-parts-collection_v2.zip placed at https://www.oracle.com/downloads/samplecode/ofsc-samplecode-downloads.html with the option to create follow-up activity turned on, and you would like to use plug-in and the feature under the same routing bucket, make sure that these options are available:

  • The inventory items ordered via Order parts plug-in are not the same inventory items the warehouse is filled with
  • Moving activities between providers and reordering is prohibited for activities being created by Order Parts plug-in.

Integration

To fill the inventory list of the warehouse, use REST API the same way as filling the mobile worker inventory: Use the standard API requests, and refer to:
  • https://docs.oracle.com/en/cloud/saas/field-service/20c/cxfsc/op-rest-ofsccore-v1-resources-resourceid-inventories-post.html for individual requests
  • https://docs.oracle.com/en/cloud/saas/field-service/20c/cxfsc/op-rest-ofsccore-v1-resources-custom-actions-bulkupdateinventories-post.html for bulk requests
The Events API can be used to track the initial activity booking by filtering the events for the creation of Warehouse Visit activity types. You can also track changes made to inventory booking through routing optimization by filtering the events of inventory creation/deletion for the activity type. These are the events produced when Routing automatically creates required inventory pickup activities:
  • activityCreated – Routing creates warehouse visit activity.
  • activityMoved – Initiated when rollback occurs and a Warehouse Visit is deleted. An Undo Rollback action is available because Routing does not actually delete the Warehouse Visit activity but instead moves it to a hidden queue of the same resource for the same day. Then, if no Undo Rollback occurs, Routing deletes those hidden visits in the next routing run.
  • customerInventoryCreated, customerInventoryUpdated, customerInventoryDeleted – Routing performs adjustment of inventory reservation. The created inventory items belong to the customer pool and has references to both the Warehouse Visit activity and warehouse bucket. A reference to the warehouse bucket can be used to distinguish the reserved inventory from the regular customer inventory. Also, although the reserved inventory can be serialized, it doesn’t have serial number values.

Capacity/Quota

Routes that have multiple Warehouse Visits can affect capacity and quota because these activities require time to pick up inventory from warehouse. To compensate for this, you can reserve quota by setting the threshold lower than 100% of capacity for activities in capacity categories that might be affected by inventory pickup.

Limitations

Routing by inventory functionality does not support segmentable activities. It does not create required inventory pickups for such activities.

Warning Messages/Troubleshooting

If the warehouse resource cannot be used, you will see one of the following messages. This table provides the steps to correct the problem:
Warning How to fix
Mobile worker cannot be used as a warehouse Fix the filter used for "Treat as warehouse" to exclude mobile workers. Do note that buckets are recommended to be used for warehouses.
A resource sharing inventory in teamwork cannot be used as a warehouse Disable ability to share resources in teamwork for a given resource type.
A resource without Start Location cannot be used as a warehouse Make sure that Start Locations are assigned for warehouse resources for all the days covered by routing plan
A resource without working calendar cannot be used as a warehouse Make sure that Working Schedules are assigned for warehouse resources for all the days covered by routing plan
A resource without inventory cannot be used as a warehouse Make sure that warehouse could have an inventory. Make sure that inventory was assigned to a warehouse.