In this blog I'm going to explain how we can create a relationship between two Work Orders on Request submission. When both Work Orders have been completed the Service Request will also complete and if either Work Order has been cancelled, so in turn will the Service Request. To illustrate a common use case we'll set up a Service Request for a new employee to order a Laptop and Laptop carry case. Each Laptop type and Case will be represented as individual Work Orders.
First of all, create your service broker context and text variables which will be used to map your questions to relevant fields in the Work Orders.
Drag in two "Create Remedy with Identifiers" actions and map your questions to the relevant fields. In this case I'm adding some preceding text for each question response to make it clear who we need to ship the items to and at what address.
Now we need to create the relationship between both Work Orders by adding the relevant data to the "WOI:Associations" form. We can achieve this by using a combination of "Build Input Set" and "Create Entry" Actions. The following table represents the first build input set where we populate the required fields and associate the Work Order ID to the Request ID01 & Request ID02 fields by using variables. We add another "Build Input Set" and "Create Entry Action" for each relationship switching the variables for the Request ID01 and Request ID02 fields.
Make sure to use the database name (found in Developer Studio) for each field and surround the key & values with double quotes
|Key (1-7)||Value (1-7)|
|Request ID01||<Create Remedy with ID1><Output><Work Order ID>|
|Request Type01||Work Order|
|Request Description01||<Context ><Service><Service Name>|
|Request ID02||<Create Remedy with ID2><Output><Work Order ID>|
|Association Type01||Related to|
When the mappings for "Build Input Set" are done we'll use the "Create Entry" action to map all of the data to the "WOI:Associations" form. We can achieve this by adding the output to "Field Values" (Build Input1 >Output>Inputs) and finally adding the "Process Correlation ID" to "Correlation ID" (General > Process Correlation ID).
Next we'll add a "Receive Task" to wait for a signal from either Work Order before continuing and two separate "Track External Activity" actions to capture a "Completed" or "Cancelled" status from both Work Order in Smart IT.
For each "Track External Activity", make sure to use the relevant Work Order ID variable from the "Create Remedy with identifiers" actions (ID1 & ID2). The Track External Activity action is only supported with ITSM Applications (Incident, Work Order, Change, SRM Request).
Finally, we'll add an exclusive gateway with two conditions. The first condition will complete the Service Request in the event both Work Orders have been completed. Make sure to use "Activity Sub Status" from "Track External Activity1" and "Track External Activity2" here.
To end the workflow we use the "Set Service Request" status action which will reflect either the "Completed" or "Cancelled" possibilities.
The second condition will cancel the Service Request in the event either Work Order has been cancelled.
Now that we have our Workflow ready, let's add our questions. In this example I'm going to set up conditional questions which will automatically pick the relevant laptop case depending the type of laptop we're choosing. In this example I have hidden the "Case Type" question from the end user and only use it as a reference to map to the summary field of the Work Order. I have also created an open questionnaire action (see BMC doc link below for instructions) which will automatically populate the users address and map to the Work Order details field along with the full name.
Scroll above to "Figure 3" for the field mapping Illustration
Let's see this workflow in action by opening the Request, choosing our laptop type and submitting the Request !
Once it's submitted, we should see both Work Order in Smart IT.
If we open either Work Order, we'll see the relevant relationship in the "Related Items" tab and further up in the description field, we'll see our end users full name and address ready for shipping.
If we only complete one of these Work Orders, the Service Request will stay in the "In Progress" state but if we complete both, the Request will also complete (or do whatever you want to do in the workflow after that point). Similarly, if either Work Order has been cancelled, the Service Request change into a "Cancelled" state.
In summary, by leveraging Remedy workflow actions in combination with the Digital Workplace Catalog "Track External Activity" action we can establish relationships between applications while controlling the flow based on a defined status from multiple sources !
Depending on what you'd like to do, there are many ways to design workflow. This Blog is intended as an example to help anyone who's new to the Catalog !
If you have any Catalog workflow questions, please raise them as seperate questions so the whole DWP Community can see and respond collectively