A shared process is a process that can be shared by multiple services. When a shared process is updated, the changes will instantly reflect in all services based on that shared process. It is advisable to use a shared process when there is a set of services that performs the same thing except for smaller deviations in the workflow (and in some cases in the forms). Creating a new shared process involves the same steps as for a new blank process, with the addition that a shared process can also have something called a Setup Form. The setup form is shown in the service creation wizard when creating a new service based on the shared process and is used for collecting data that can be fed into the process.
Image illustrating two services sharing the same process. The workflow settings in the service can affect the workflow in the shared process. E.g. the workflow setting "Group_Photoshop" in a service tells the workflow in the shared process to add the selected Computer to that AD Group.
Shared Process settings
Creating a shared process is very similar to creating a process for a service, but there are some settings that are configured per service and some that are generic for all services based on the shared process.
|Catalog Setting||Adminweb section(where you edit setting)|
|Hide in service catalog||Service|
|Hide image gallery||Service|
|Visible for roles||Service|
|Allow user to change orders quantity||Shared Process|
|Allow shopping cart||Shared Process|
|Use custom text for order button||Shared Process|
|Hide submit button||Shared Process|
It can be useful to add a description and how-to details in a shared process to help another administrator in their decision of whether they can use an existing shared process for a service or not.
The setup forms shares variables with the process, what setup form allows you to do is to generate "default" values for variables which are set when saving and publishing the shared process.
You can currently use the following form elements
- Text field
- Drop down list
- Text block
You can use a dynamic data source from the drop down list.
Example - Create a Software Group Shared Process
In this example we will create a shared process which will include a form where you can search for a Active Directory user from a dynamic drop down.
Create a shared process and configure the order form
We add a dynamic data source to a drop down list and bind it to a variable called Identity.
Configure Setup Form
In the setup form we add a dynamic data source to a drop down list and bind it to a variable called ADGroup.
In the workflow we create a variable called ZPActivityStatus, this is because the status result of Add-ZPADGroupMember output the key ZPActivityStatus. Then we add the activity Add-ZPADGroupMember to the workflow and bind the parameters for Identity and Group to the variables we created.
Create service based on shared process
We create a service called "Software Group A" and select the AD group called "gg-SoftwareGroup-A" from the dynamic drop down.
Now we have a service that will add a AD user as a group member of the software group selected when creating the service. It is now easy for a administrator to add additional services based on the same process. You might want to have several services with different icons depending on what type of application, but the process of adding a user to a AD group is just the same.
Example - Approval based on checkbox in shared process
There are cases where you which to make your shared process more dynamic, it could be that sometimes a service should require an approval from the users manager.
If the created service has checked the checkbox to true, it will perform the "Approval" activity.