Request Management: Bundle Request
The Bundle Request process provides a process that handles requests for Bundles – that is collections of services in a single request. The process handles the authorization for the Bundle, and then automatically creates a Child Request for each service contained in the Bundle. When all of the Child Requests are complete, the Bundle Request can be completed.
The Authorization Sequence at the start of this process is the same as that in the Generic Service Request process described on page Request Management: Generic Service Request.
When the authorizations are complete, the originator is notified that their request has been authorized. Then there are two automatic actions that create the Child Requests for the Services that the Bundle comprises:
- The first populates the Bundle on the Parent Request with the bundle selected as the Service Item on the Parent Request. The Bundle field is not added to the Request window.
This uses the following calculation:
import System
static def GetAttributeValue(Request):
Value = null
if Request._ConfigItemRequested != null:
if Request._ConfigItemRequested.Class.Name == "Bundle":
Value = Request._ConfigItemRequested
return Value
Lines 3 and 4 of this calculation are indented with one space; line 5 is indented with two spaces; line 6 is indented with three spaces; and the final line is not indented.
This calculation sets the value of the Bundle field to the value selected in the Service Item field on the Request window, if the Service Item selected is a bundle.
This calculation works by setting the value of the Bundle field to null (empty). Then, if the value of the ConfigItemRequested field on the Request is not null, it checks to see if the Name of the Class for the ConfigItemRequested field is set to Bundle. If it is, this means that the ConfigItemRequested is a bundle (the ConfigItemRequested is stored in the Service Item field on the Request window).
If the calculation determines that the ConfigItemRequested selected is a bundle, then the calculation sets the value of the Bundle field to be the value selected in the Service Item field on the Request window.
- The second automatic action populates the Service Item, Request Type, and Process fields on the Child Requests with the required values for each of the CIs in the bundle.
This is done using a value type that refers to the Bundle you copied in the first automatic action.
The CIs in a bundle are stored in a collection called Catalog Items, which is a relationship to the linking object called Config Item Bundle. This means that the value types you need to select are:
Service Item – _Bundle/CatalogueItems*/ConfigItem.
Request Type – {_Bundle/CatalogueItems*/ConfigItem/CatalogueHierarchy}
Process – {_Bundle/CatalogueItems*/ConfigItem/Lifecycle}
The second automatic action also sets the boolean attribute Is Parent A Bundle to True for the Child Requests. This attribute is then used in the Child Requests to bypass the authorization steps in the Child Requests.
If a bundle includes a CI that does not have a lifecycle set for it, you will receive an Object Reference Not Set to an Instance of an Object error. Make sure that all services that are available through the Service Catalog have a lifecycle associated with them.
After the Child Requests have been created, the Bundle Request is completed, leaving the Child Requests to complete the service provision.
There are Add Note and Add Assignment optional actions on each of the Awaiting Authorization statuses.