Creating Browser Interfaces to Service Manager using the SDK

Creating Browser Interfaces to Service Manager using the SDK

  • Comments 13
  • Likes

Patrik Sundqvist, a Solution Architect at our partner ATEA Spintop, has put together a great example of using the SDK by extending the new user provisioning solution I provided earlier with a web interface.  Having a web interface to automated solutions like this increases the reach of the solution and enables “self-service” which ultimately reduces IT service request management costs even further.  ATEA Spintop already has products which extend other System Center products like System Center Configuration Manager.  We are really looking forward to the self-service portal solution they are going to be providing on top of Service Manager for automated service request fulfillment.  This example that Patrik provides here is just an example of what they are going to be doing as a product when Service Manager RTMs in a few short months.   At the end of the post, you can see some early screenshots from their upcoming product ‘Accelerator’.

Here is the introduction to the solution.  The full document is provided as an attachment to this post.

==============================================================

All code is provided “as is” and should be used as examples only!

Scenario

Say you want to provide a form in your intranet portal that allows end-users to be able to create standardized change requests in Service Manager. Let’s say that the form captures all needed input from the requesting user. This would allow you to automate the entire process of service delivery without any user interaction except from the end user filling out the form.

Overview

In this example, we are going to use the solution provided by Travis Wright in his blog post “Extending Service Manager to Automate IT Processes”. We’ll create a web form that will allow an end-user to create a change request in Service Manager containing the activity “Automated Activity: Provision New User”. As a result an end-user with suitable permissions in Service Manager can request a user account (including things like mailbox, standard Active Directory group membership) from the company’s intranet portal, the account will be automatically provisioned and the entire process will be tracked inside Service Manager. Since the change request is based on a template containing the workflow which automates the user provisioning, the request can be fulfilled without any user interaction besides the one performed by the requesting user*.
*Note: In a real world scenario you would probably add a review step to the process.

In this example we’ll:

· Create a new Visual Studio project for our web application

o Reference the Service Manager SDK assemblies

o Build a new web form that will capture the requesting user’s input

o Write code to:

§ Initiate contact with Service Manager

§ Create a new change request

§ Apply a change request template which contains the needed activity to automate the user provisioning.

§ Set the “CreatedBy” property on the change request

§ Apply the user input to the activity: “Automated Activity: Provision New User” which will be used by the user provisioning workflow to automate the user provisioning.

Here are some screenshots of the example in action:

clip_image001 clip_image002

clip_image003

clip_image004

This examples shows some key ways to interact with the SDK such as:

1)  Using Criteria XML to get a EnterpriseManagementObject

2)  How to create an EnterpriseManagementObjectProjection

Check out the full solution in the attached document and source files!

==============================================================

Here are some early screenshots of ATEA Spintop’s product for self-service automated service request fulfillment on top of Service Manager.  Look for them at the Microsoft Management Summit 2010 to get more information!

image

image

image 

Want to be a guest blogger on the Service Manage team blog like Patrik?

This is a continuation of a series of guest posts by MVPs, partners, and customers.  If you are interested in being a guest poster on the Service Manager team blog, please contact me at twright [at] Microsoft [dot] com to work out something – I have lots of ideas!

Solution files:

http://cid-17faa48294add53f.skydrive.live.com/self.aspx/.Public/CreatingChangeRquestFromWebApp.zip

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Can i use VB Programming with the same form

  • VB.Net - yes!  Any .Net programming language can be used.

  • Thankyou so much for your support and help

    I want to customize as per request below, please help to guide me or give me a link to work on it.

    • The change request workflow should follow the requester rather than the creator of the change request.

    • The requester field should be available on the frontend and should be modifiable. (This is essential for making change request on behalf of other users.)

    • The option of selecting the GM should be available on the frontend. ( This option is to be linked automatically to the associated review activity)

  • Can i work through DLL and assembly which is given in SDK Binaries. can you help us giving some more information on it. Thanks for all your support

  • Please clarify, Is there a way to i save or send request to incident or change management from my own custom form using SDK Binaries without creating a XML in Authoring Tools ?

  • @Working SDK Binaries -

    Yes, you can create incidents or change requests using the SDK binaries.  A couple of code examples:

    blogs.technet.com/.../creating-incidents-in-service-manager-programmatically-on-the-command-line.aspx

    blogs.technet.com/.../using-the-sdk-to-create-and-edit-objects-and-relationships-using-type-projections.aspx

  • Firstly I would like to thank you for excellent article. I managed to create a web brower interface based on your sample. But I have hit a brick with the "Created By" user field, based on the function given in your sample app,I passed the "user\domain" value but I keeping getting an error "user\domain

    does not exist in service manager. Can you shed some light on this?

  • @Waran -

    Can you please share the part of your source code where you are trying to set the created by user?

  • Hi Travis,

    created the browser interface as per your article. Thanx!

    Question now is, how do I also pass the file attachments to Service Manager from a browser based form? Users will want to send screenshots, etc for more detailed troubleshooting.

  • @Mike -

    Hang tight - I've got some exciting stuff coming later this month.

  • Hi Travis;

    Happy New Year!.

    The code that i used in my web app is

    string strDisplayName = UserPrincipal.Current.DisplayName

    cr.SetCreatedByUser(strDisplayName,"Domain");

    SetCreatedByUser is as per your code sample.

    I have also tried this line of code

    strDisplayName = Environment.UserDomainName.ToLower() + "\\" + Environment.UserName;

    cr.SetCreatedByUser(Environment.UserName, Environment.UserDomainName);

    yet the same error. I would be doing something wrong or missing something.

  • How can I get the SDK?

  • @Kris

    The SDK binaries are installed with the product on the System Center Service Manager management server.  They are located in the directory C:\Program Files\Microsoft System Center\Service Manager 2010\SDK Binaries.

    You can get the documentation here:

    blogs.technet.com/.../update-on-scsm-sdk-documentation-new-location.aspx