Quantcast
Channel: Symantec Connect - Endpoint Management - Articles
Viewing all articles
Browse latest Browse all 706

Software Request/Approval Workflow

$
0
0

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.

Viewing all articles
Browse latest Browse all 706

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>