Workflow Soluiton

 View Only

Software Request/Approval Workflow 

Sep 25, 2008 02:01 PM

Here is an example of a Workflow project that carries out an end user software request with an approval process. The process does the following:

  • grabs available license info from Contract Management
  • presents the end user a screen to pick software from the available list
  • presents the end user assets that are associated with him/her
  • provides the option on searching for other assets that the software is requested for
  • creates a Helpdesk ticket to start the tracking process of the request
  • send an email to the approver which has a link to the approval screen
  • the approval screen shows the request details as well as a link to show more information about the license details as well as the user

Attached to this article is the package for the project. Here is an explanation of what it does.

The project has 2 main components, one for the software request form and the other for the approval form.

Let's go into the first dialog workflow component.

The flow of this component is as follows:

  1. get the logged in user
  2. try to find the logged in user in the Altiris DB
  3. if there is a match then find the associated assets to that user (querying the HD DB)
  4. display the first form in which you can select a different user (if one was found in the first step) and a different asset (if one was found in the first step)
  5. if a change in the user is needed then a form with search options appears
  6. if there is 1 user found then it will proceed back to the first form, otherwise it will display the multiple users found, whereby you would select a single user and return to the first form
  7. Next, a form displaying available software licenses is shown.
  8. User would select a license and a quick check is done to see if there are any licenses available
  9. If there are licenses available then a ticket is created, and the workflow ends.

Here are a couple things to note about the process.

Find the logged in User

You will notice that there are 2 separate searches. The first search looks into the Altiris database for the user. The second search looks into the Altiris_Incidents database. This is done so that in the event that you do not want to utilize the Altiris Helpdesk Solution for tracking the request you can simply search for the user in the Altiris database.

In my example we take it a step further and find the contact of the user so that we will eventually open a Helpdesk ticket against that contact. For this we require the contact ID which is used solely by the Helpdesk Solution. The component "Find Service Desk Contact" returns the ID of the contact name.

Searching for Users (left hand side of model)

When searching for users I created a custom component called GetUsersByName which is used inside the embedded model. Here is a look inside the embedded model:

This custom component will search based on the string provided by the end user in the form and will search for the string anywhere within the user name in the database. For instance if you enter "Will" as the search criteria names such as Will, William, etc., will return.

Once again I look for the corresponding Helpdesk contact to obtain the contact ID so I can then grab any associated assets of that contact which will be used in the next section.

An important thing to note is the "Change Asset data to MyHDAssetType". This is a custom data type that I created for the project. The reason for this is that the I need to use the asset data for my purpose throughout the process and the inherent asset datatype that is returned from the "Get ServiceDesk Assets for Contact" component is restrictive.

Change the Associated Asset

This section will allow you to search for a different asset to use for the software request. Again I created my own component called ListHDAssets so that I can find assets in the HD database and return additional information (compared to the built in component) to present to the end user.

Software Selection and Validation

This section uses the data returned earlier in the process from the custom component called "Get SofwareLicense List." I use the amount of licenses left to validate if the user selected a license which has a count of more than one left.

Now let's go into the second dialog workflow component.

The first thing to look at is the start process of the dialog workflow component. In here we will send an email to the approver with a link to approve/deny the request.

You will notice that the process is very simple. Taking a look inside the component you will notice that the values for the "To", "From", "Email Server", etc., are project properties. Simply change them to you settings. One of the items I want to point out is the body of the email.

I used the values from the process to dynamically populate the body of the email.

Here is dialog model.

If the request is rejected there is an extra form to enter in comments. All this is reflected in the ticket in addition to updated the ticket status to approved or rejected.

Other notable items:

  • I included the file dlls.zip in this project in case opening the package does not contain my custom components
  • I included the report that the "Get SoftwareLicenceList" component uses. The file is "Software License - List.zip" There is a XML file. Simply import it into the reports section of the Altiris console.
  • To make the process work in your environment change the project properties to your settings. Especially the ConnectionString property.
  • In my Helpdesk Solution installation I have 2 additional status, "Request Rejected" and "Request Approved". Either create the 2 in your HD installation or change the component to reflect your status.
  • The approver email is static. You can create another model that will select the appropriate approver. Some scenarios might be looking up the user's manager in Altiris or through AD, or, looking at the license amount, if it is over a certain amount then approval is required from 1 level up from the user, otherwise 2 levels up from the user.

Future enhancements:

  • Actually have the software delivered to the end user machine. I will most likely add a job that utilizes the Task Server to deliver the software
License:AJSL
By clicking the download link below, you agree to the terms and conditions in the Altiris Juice Software License
Support:User-contributed tools on the Juice are not supported by Altiris Technical Support. If you have questions about a tool, please communicate directly with the author by visiting their profile page and clicking the 'contact' tab.

Statistics
0 Favorited
5 Views
3 Files
0 Shares
1 Downloads
Attachment(s)
zip file
dlls.zip   37 KB   1 version
Uploaded - Feb 25, 2020
zip file
Software License - List.zip   2 KB   1 version
Uploaded - Feb 25, 2020
zip file
SoftwareRequest.Workflow_11_28_2007_5_29PM.zip   1.74 MB   1 version
Uploaded - Feb 25, 2020

Tags and Keywords

Comments

May 23, 2014 02:14 PM

Hi

I would also be very interested if someone had a software request workflow that will work with ServiceDesk.

 

Thanks

Jen

Apr 02, 2014 01:18 AM

Hi,

 

I need to automate the workflow process for sofware request and software harvesting using servicedesk. I am finding some ready templates for that.Can any one help me out with this?

Thanks.

Nov 04, 2008 04:42 PM

Are you asking this in a general sense or specifically to my workflow? In the general sense you can simply use the Altiris console, under the Resources section, to add/modify/delete collections. To do this through Workflow you can use the "Add Resources To Collection" component under Altiris-->Platform-->Collections" Does this answer your question?

Nov 03, 2008 02:05 PM

I have been trying to find out how to add a computer to a collection and the only thing i can think of is an insert into the collection member table in the database. Is there a better way to do this?

Sep 29, 2008 09:42 AM

Trying to use this workflow in Workflow 6.5 but can't import it as there are a lot of components missing. Just wanted to give you a heads up.
Workflow 6.5 can be found through an update via solutionsam
Jonathan Jesse
Director of Training
ITS Partners

Sep 25, 2008 04:02 PM

Take it a step further. Once you know the GUID of the asset, it's a very simple task to have workflow solution add that GUID to a collection and update the collection.
Scottwed has a nice juice tip on how to tickle the agent, which can be found here
http://juice.altiris.com/tip/4111/doing-a-tickle-with-workflow-solution
Send an email to the requestor to verify the install worked, then close out the ticket.

Sep 25, 2008 02:57 PM

asadeh,
This is a very great example how Workflow can enhance the customers experience.
Thanxss for sharing this.
Regards
Erik
www.DinamiQs.com

Related Entries and Links

No Related Resource entered.