Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.

List PrimaryUser information in Assignment Email

Created: 03 Oct 2012 • Updated: 09 Oct 2012 | 4 comments
This issue has been solved. See solution.

When an assignment email is sent to a support technician, I'm trying to list the "Primary Contacts" info (Location, Department, and Telephone Numbers) but I'm having a very hard time finding which varialbes to place in the Send Email component's, HTML Content field.

I can get the Primary Contact's DisplayName using AffectedUser.DisplayName, but so far other variables seem to have no value and result in the message "Not Found" being displayed in the email.

Any ideas on what variables/properties I should be using in the email content?

I'm working in SD.IncidentManagement.  I do a search for "Send Email" and select the component below:  Initial Diagnosis Model -> Initial Diagnosis -> Send Email.  I wish I could tell you a better way to find the correct "Send Email" component other than searching for it, but I'm a little newer to the workflow manager and can't figure out how to get to the component through the double-click/EditComponent interface.

Screenshots below:

Comments 4 CommentsJump to latest comment

Aryanos's picture

You can drop a GetUserByEmail component before the Send Email and use AffectedUser.ReferenceName (This is the email address for the user) for the UserEmail input parameter. Rename the output to AffectedUserInfo or somethign similar and then you'll have all the user fields available to you to put in the email.

I like my beats fast and my bass down low

SOLUTION
Halley1's picture

Hi. There's a component called Get User Details which lives in ServiceDesk.Data.DataServices in the component tree (if you're in the incident management project). Drop this component in the spot Aryanos suggested instead of GetUserByEmail. What this component does is gather user information from both the ServiceDesk database and the CMDB, which is the system of record for location, department and asset ownership as far as ServiceDesk is concerned.

To do its work, this component calls into the SD.DataServices project to the method with the same name. You can check out what that method does by opening it in the designer. As far as I recall, you get phone numbers, addresses, location, and department in a return type called something like GetUserDetailsResult.

Greg2105's picture

Thanks to both of you!

I have to give the solution to Aryanos as he responded first and it did work... But I'll give it to you Halley1, your's is a much cleaner solution with greater reporting accuracy.

When you say "gather(s) user information from both the ServiceDesk database and the CMDB", do you know which one wins out if the information is different?

I ask because I've seen where a required field in the CMDB user record was empty and it seemed to exclude the record from the ServiceDesk  AD User Sync. Both ServiceDesk and the CMDB have different information (although the CMDB is up to date).

Thanks for the solutions!

Halley1's picture

You sync your AD to both the CMDB and ServiceDesk so that there is a match on email address for all users. At that point, user information in the AD like emails, addresses and phone numbers are kept up to date in the ServiceDesk database so for that kind of personal and contact info, ServiceDesk is the system of record. Anything that would be considered, in the Altiris world, to be a "resource relationship" for a user, such as a location, department, computer, asset, etc. would be fetched by ServiceDesk from the CMDB using the user's email address. In a couple of places ServiceDesk will bring in all locations and departments at once from CMDB for convenience.