Custom services & service jobs

Custom Services

Custom services contain all the information on a service offered in a facility. An example of a custom service would be an adjustment of a shirt by adding embroidery on the collar and sleeves. After creation, the custom service is available for use in all facilities. A custom service can also reference another custom service (such as when one service requires another to be done first), up to a maximum depth of 25 services(A -> B -> C ... -> Y). Custom services are executed through service jobs within the operational process at the facility.

Custom services, when passed through the order, can be built as a tree structure. Each node in the tree represents a custom service, and its children represent the custom services that must be executed before the parent custom service can be executed. Currently, it is only possible to build custom services that have one of the following custom services.

Structure of custom services

Custom services, that can be created by an order, can be transferred in a tree structure. Each node in the tree represents a custom service, and its children represent the custom services that must be executed before the parent custom service. It is only possible to transfer the custom services in such a way that a child node always receives exactly one parent node, but parent nodes can have multiple child nodes. This creates a tree structure that ends in a final parent node. However, it is possible to create multiple parallel trees. Such a tree might look like this, for example:

        A
      /   \
     B     C
    / \   / \
   D   E F   G

In this case, custom services D and E must be performed before B, F and G before C and B, and C before A. Custom services are always processed from the child nodes to the parent nodes. This means that child nodes D, E, F, and G are executed first, followed by B and C, and finally A.

Items in custom services

The items required for a custom service are stored in the custom service node. These items must be included in the order for the custom service to be executed. The items of a child node are also required for the execution of a parent node. It is possible to add further items here, but it is not possible to remove items from the child node. An example of this would be a custom service tree for printing team jerseys that looks like this:

Order items: Item_1, Item_2, Item_3, Item_4

          ---A---  (Item_1, Item_2, Item_3, Item_4)
        /        \
    ---B---    ---C---
    (Item_1)   (Item_2)

In custom service B, the back of the jersey is printed with “Goalkeeper” and in custom service C, the back is printed with “Capitan.” Both jerseys are then printed with the club logo on the front in custom service A. Two additional jerseys are then added in custom service A. Items 1 and 2 are automatically forwarded to parent node A after custom services B and C have been performed; it is not necessary to select the items explicitly. It is also no longer possible to deselect these items.

Please go to the Developer Docs for more information on creating service jobs and orders with custom services via Custom Services API.

Facility custom service connection

Custom services can be available in different facilities and can have differences in execution time or (temporarily) availability. To make a custom service available in a specific facility, it has to be connected to the facility. This is achieved through a FacilityCustomServiceConnection object. The connection allows customizing the execution time and the availability of the custom service in the specific facility.

Linked service jobs

Linked service jobs are a virtual construct that shows the sequence and dependencies between different service jobs. The dependencies between service jobs are represented by service job links.

In this example the serviceJob Link that references serviceJobRef: CA-1 is embedded in the Service Job Link referencing Service Job with id: BB-1. This means before BB-1 can be started, CA-1 has to be finished first.

Service jobs

While custom services serve as a blueprint, service jobs are the actual instances of a custom service.

When a service job is created, it will always be part of a linked service job. New linked service jobs will be created when a service job is created. Alternatively, a reference to an existing service job link can be provided when creating a service job. In this case, a service job link (referencing the created service job) will be created and embedded in the referenced service job link.

Besides the basic information, such as name and description, a service job also contains details about the line items required for its execution.

A service job link holds a reference to a service job and to previous service job links. It also holds an array of the following service job links.

Linked service jobs are automatically created when a service job is created. It is not possible to create a linked service jobs object manually. However, it is possible to add service job links to a linked service job and thus customize the sequence of related service jobs.

Dependencies between service jobs

As a linked service job maps the sequence of service jobs, it also creates dependencies between them. The order of the service jobs is determined by embedding service job links in other service job links. The embedded service job links have higher priority than the enclosing service job links. This means that the service job referenced in the embedded service job link must be executed before the service job referenced in the enclosing service job link can be started.

Service data

Service data is a helper construct that contains information about the items that are available for usage in a service job. One service data object is created for all service jobs that are part of a linked service job.

While the service data object is created automatically, when a service job is created, it will be created empty, if it is created via API, it will be filled if the related service jobs are created via pick job creation. In the latter case, the service data object will be filled with all line items that are part of the pick job, even if they are not required for any service job.

Last updated