Skip to content

Shared Parts

It is also possible to share parts between resources, so resources use parts taken from a 'shared' or 'global' stock.

Global Part Stock

Global Part Stock is a central store of global parts that all resources have access to at any given point in the scheduling window. Unlike depots, there is no need for a resource to carry out a visit in order to collect parts from the global part stock. If an activity needs a global part then the part will be consumed or used straight from the global part stock. The global part stock is not linked to either a resource or a depot.

Note that global parts do not necessarily need to be physical parts, and can instead be used simply as a way of constraining how many activities requiring the part are carried out within a given period of time.

For example, this could be used when appointment booking to limit the number of 'non-premium' appointments that can be booked on a given day across the entire schedule. Each non-premium appointment would require a single global part, and the stock for the part would be reset overnight each night.

Alternatively, by making the part reusable as well this allows you to limit how many activities requiring that part can be scheduled at the same time.

For example, suppose a location has only 2 available parking spaces. A reusable part could be used to represent the available spaces, with a quantity of two, and each activity at the location would require one such part. This would ensure that only two activities could be scheduled at the same time. After the worker has completed their activity the reusable global part is returned to the global part stock, allowing another resource to attend the location.

To define a part that is global there is an 'is_global' attribute that has been added to the Part entity (see scheduling schema guide).

Shared Part Stock

Shared Part Stocks act similarly to global parts, but are only available to resources in a specific resource pool. This grants the same functional advantages as global parts, but scoped to a particular subset of resources, such as a specific fleet of vans within a larger organisation.

Note that shared parts do not necessarily need to be physical parts, and can instead be used simply as a way of constraining how many activities requiring the part are carried out within a given period of time.

To define a part as shared, the 'resource_pool_set_id' attribute should be added to the Part entity (see scheduling schema guide). Resource pools using the part in question should be added to the resource pool set, and the resource_pool_id attribute should be added to Part Stocks to specify which resource pool is able to access a given stock.

Retain Parts for Shift

By default, when a resource uses a reusable global or shared part for an activity, the part is returned to stock when the activity ends, immediately making it available for another resource to use.

By enabling 'retain_for_shift' on the Part entity, when a resource is allocated an activity requiring the part, the resource will hold the part for the entire duration of the shift instead, without returning the part to the stock between activities. This includes obtaining the part at the start of the shift, not just the start of the activity.

This functionality is useful for setting limits on which resources can carry out particular kinds of work throughout the day, rather than at a singular point in time. For example, if resources represent machines in a factory, with a limit on how many machines can be used each day, retaining a part representing usage of a machine can effectively model this.

Without enabling 'retain_for_shift' on a global part:

With 'retain_for_shift' enabled:

Note

The retain_for_shift flag can only be used on reusable parts that are global or shared. It does not apply to standard or vehicle parts.