Login to participate
Endpoint Management & Virtualization ArticlesRSS

Advanced Change Management Workflow

Shepherd.Wesley's picture

Hello and thank you for stopping to read my article. A few months ago I published an article on how to create a Change Management Workflow. Since that time I have attended the Workflow Solution Foundation training class (props to Jack Ross the trainer) and now I have created a more powerful Change Management Tool that I would like to share with you. So without further waiting here we go.

Requirements for this Article:

  • Altiris HelpDesk Solution
  • Workflow Server
  • Workflow Designer

So let's go ahead and open up our Workflow Designer and make a new Workflow called Software Change Management

Once this has finished opening up you should have a blank workflow with a start, create notification credentials, and an end.

Ok, let's go ahead and click on the root of the project. You can find this by going to the Project Pane and clicking on the Name of the workflow in the upper right hand corner. From here look in the left pane towards the middle and locate the grid. Once you have found this click on the second line down where the .\web.config is the text in the ResourceName column. Once you have done this click on the Edit button.

Now with the notepad open search for the authentication mode = "None" (it should be at line 67). Change the None to Windows (be sure and leave the surrounding quotes there.

We are doing this so that we can process who is connecting into the workflow and I will explain later why this is going to really be helpful and just down right cool!!

Once you have done that just click file and save. Then file and exit. This should return you to the Resources page of the Project Root. Go ahead and click on the Properties tab. Then click add property. Name the property ServerIPAddress. Put 127.0.0.1 in the Value box.

Ok, let's go ahead and click on our Model: Primary in the project pane and get back to our Workflow. Go to your tools and search for Dialog Workflow. Drag it over into your workspace and double click on it to open it up. Click on the Interaction Setup and then click the box all the way to the right of Dialog Model.

Now it opens up another workflow. Just think of this as a process within a process. No different than a standard web form other than it's just going to give us some more space to work with. Again you should see a start and an end. Go to your tools and search for Get Current User. Drag it over and give it an output variable of v_Currentuser and change the User Name Type to httpcontext. Search for Get Current Date, Drag it in and give it an output name of v_Currentdate. So now when the user connects to this we will capture their name and the date they logged in.

Now go ahead and connect Get Current User to Get Current Date. The Connect Get Current Date to Find Service Desk Contact.

From here go to tools and search for Find Service Desk Contact. Drag this in, open it up, and click the box to the right of search value. Select Process variable, Click Add, and Select v_Currentuser click Ok, click Ok again. Select search contact by variable and then click the box to the right of that and select ntid from the drop down. Verify the output variable of Foundcontacts.

From here go ahead in your toolbox and search for Form Builder. Drag that into your work space open it up and start building the form. I am going to define just a few fields as an example here but remember that you can add as many fields as you want.

So let's go ahead and get 3 Label Components and set them one under the other. Label the first one Requestor, Label the Second one Date and label the third Department.

Now go over to your Toolbox and search for TextBox Component. Take one of them and line it up with the Requestor Label and give it an output name of v_UserRequested and click Ok. Open the text box back up and click on the box to the right of Default data. Select Process Variable and click add. drill down on foundcontacts - First - Contactname. Click Ok and Ok again.

Repeat the Same Process for the Department using the Textbox Component. Giving it an output Label of v_department and selecting the process variable of foundcontact - First - ContactDepartment.

For the date text field rather than using a text box let's use a MaskEdit Component. It works and looks just like a text box but it lets us set parameters on what type of data to accept. So go ahead and drag that over and give it an output name of v_DateRequested.

In the Mask Edit type box drop down and select date and for the Default value box select process variable - add - v_Currentdate. Click Ok three times to return to the form.

From here you can add in as many fields as you want depending on the different types of data that you want to collect. I will be including a copy of this workflow as a download for you too use. Reference my other article to see a good layout on how to create a form.

Once you have completed your form search for the Display Content Tool. Open this up and it pretty much works just like your standard email tool when you are filling out the body of the message. Again if you want to learn how to do this please reference my other article for detailed instructions.

It's also a good idea to go ahead and click on the Go Back tab and enable users to go back and correct anything they may have entered by mistake. You can also make the button say whatever you want it to say here as well. Once you have finished that be sure that the form is connected to both the Get current Date and the Display Content and that Display Content is connected to the END. Go ahead and click Ok and let's go back to the main page.

So now that we have collected all of this information what do you want to do with it??? Let's make some tickets...

Search for the Create Ticket Component, drag that over into your workspace, connect the Dialog Workflow to the Create Ticket and let's get started.

This is one of the most flexible tools that you can ever work with. It functions just the same as your display content tool and your email took when it comes to entering in the type of data you would like to appear the Title and the Body of the Ticket.

For most of the standard things I recommend that you use the "From Picker" option because most of your Change Management tickets should be assigned to the same group in the beginning and there is no reason to make things anymore complicated that.

Now you remember in the beginning of this article where we made a few changes to that web.config file??? Well now here is where it's going to become the most fun. If you will click over on the Associations tab you will notice a place for Contact ID. Believe it or not this is a number not a name.

This is what the contact SQL id is of the person who submitted the request and guess what, since you made those changes in the beginning and used the find contact tool we already have that information.

Just click on the box to the right of Contact ID, select Process Variable, and drill down to foundcontacts-first-contact ID and click Ok. That is all it takes to be sure that the person who submits the ticket is the one who ends up on the contact. This will also ensure that when the ticket is updated that your contact will also get the update (pending if you check the right rules box in your helpdesk; but thats a discussion for another day).

Again if you want to learn a little more about the Create Ticket tool than what is in this article just reference my other article and it will step you through it.

Alright let's connect the Create Tickets to the End component and we are done. Now we can go ahead and publish this however if you try and access the page it will not find the current user and thus won't allow anything else to work correctly. So here is what we do to fix that problem.

  1. Find Deployed Project Website
  2. Right click Website and go to properties
  3. Click on directory Security Tab
  4. Hit the Edit button for Authentication and access control
  5. Make sure Integrated Windows Authentication is Checked
  6. Hit Ok
  7. Find the ASP.NET Tab
  8. Hit Edit Configuration
  9. On the Authentication Tab, make sure Authentication mode is set to Windows

And there you go. That's all it takes to get this to work. I have included this workflow as a download if you would like to use it. It has a few more features than what we went over but they are just simple Email steps. As always if you have any questions please feel free to contact me.

Remember that Juice only works for us as much as we use it so if you make something post it, if you have a question, post it, and if you just want to tell us how you're doing POST IT.

Thank you all for your time any attention.

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.
JPTex's picture

Unable to find "Find Service Desk Contact" Component

I am unable to find several components.
I tried to Import to Library all fo them, but I get some error messages. After I imported several libraries it still does not bring the "Find Service Desk Contact"

Shepherd.Wesley's picture

Glad to Help

Sent you an email in your juice box. Read it then give me a call and we will figure it out together. (once i find out what the problem is I will post the solution here for everyone to know)

JPTex's picture

Thanks Shephard!!!

Great guy! Helped me on this issue and went thru with me in a Webex Session!
You would be an asset to every company!!!

PS: We fixed many problems, and that was nothing to do with the flow! that was on my environment.

JP

Shepherd.Wesley's picture

Problem with Workflow

You are more than welcome. I am always glad to assist anyone with problems involving Workflow.

Yes there was a problem with the environment that was resolved by re-installing the Workflow Designer software.

Nothing more; nothing less.

pwilson's picture

Workflow Hangs

I think i have followed the instructions but my workflow hangs at the Dialog Workflow. Any way to determine why its hanging there?