ServiceDesk

 View Only

How to modify ServiceDesk Technican Incident Submit Form to choose assignment from dropdown (that will list Technicians) 

Oct 14, 2011 02:53 AM

I would not put both users and groups into the same dropdown. Reasoning behind this is that then the collection for dropdown would have to use the correct variable type for eventual assignment (AssignmentTarget). To get the entire list into the right type, there would have to be a loop doing steps 3-5 above for all the users to be put into the list and similar for groups as well. I do not think this is not a good idea as it will increase the already annoying loading time of the form. If two dropdown lists at the same time are confusing, radio buttons to select desired assignment type (group/user) would seem to be appropriate answer.

All the usual disclaimer things apply:
- Don't do this in your production ServiceDesk before testing it.
- Consider this an idea or example.
- It is a customization and is not supported.

If you have modified the SD.Feeder.TechnicianIncidentForms already, make sure you have a backup of it, before making these further changes.

What I aimed to do, is to leave all the current form functionality intact and only add a dropdown selection to add assignment - meaning that if you use the existing add assignments functionality (dialog) all these will work as well (with the caveat that the assignments list on the form itself will not be updated with the dropdown selection as this will be added to the actual assignments collection variable later).

At this point, the steps create a dropdown for users in one group you select - for example 'Support I'. It can be expanded for users from multiple groups - though when looking at available components for user search, they all seem to allow searching by one group only so it would probably be a good idea to get the initial assignment technicians into one group or maybe to have a custom permission to simplify the search.

SD.Feeder.TechnicianIncidentForms > Primary model

Users:

1. Add a 'SearchUser' component after 'Init Data (Non-Cached) and Declarations (1.5)'
Inputs: Groups: Support I
Outputs: Result: testDropDownUsers

2. Add a ‘DropDownList’ component to the Create Incident form
Functionality:
                Data Type: LogicBase.Core.Ensemble.UserMan.User
                Display Field: DisplayName
                Items: Process Variables: Add Array: testDropDownUsers
                Output Data: testAssignment
                Output Paths:    Resolve - Optional
                                        Create Incident Process - Optional

 

3. Add a 'Variable Exists Rule' component to the 'Create Incident Process' path out of 'Create  Incident(1.7)' dialog component before 'Set IncidentDepartment (1.74)'
Variable Definition: testAssignment

Continue on 'true' path, connect 'false' path to the next component after step 6. In short, this should go around the components added in steps 4-6.

4. Add a 'Single Value Mapping' component
Target Type: AssignmentTarget
Mapping Definition:
                TestAssignment.DisplayName    DisplayName
                TestAssignment.userID              TargetID
                TestAssignment.PrimaryEmail    TargetName
Map Into Existing Value: Unchecked
Target Variable Name: testAssignmentTarget

5. Add an 'Add New Data Element' component
Data Type: AssignmentType
Value: User
Variable Name: testAssignmentTarget.AssignmentType

6. Add an 'Add Items to Collection' component
Data Type: AssignmentTarget
Array Variable Name: IncidentAssignments
Items To Add: testAssignmentTarget

7. Add the same components as 3-6 to the 'Resolve' path out of 'Create Incident(1.7)' dialog component before 'Set Impact, Urgency, Priority and Bus. Services(1.71)' component.

Groups:

Regarding groups getting listed in the same way, a second dropdown for groups would be easier and lighter on the ServiceDesk as said in the beginning of the e-mail. Here are the steps to do the same thing for groups:

1. Add 'GetAllGroups1' component after 'Init Data (Non-Cached) and Declarations (1.5)'
OutPuts: result: testGroups

2. Add a 'Configurable Collection Filter' component
Data Type: Group
Array Variable name: testGroups
Copy Result To New Variable: Unchecked

Filter Model:
- 'Text Contains Rule' component:
                Case Insensitive: Checked
                Contains: Constant Value: Support
                Variable Name: Element.GroupName
- ‘contains’ -> ‘Keep Value
- ‘does not contains’ – ‘Filter Out Value

I used 'contains Support' as an example, this should give 'Support I' and 'Support II' as results in an out-of-box ServiceDesk. This is the place where you should use the logic to get the necessary groups. Use 'Text Contains Rule' and 'Text Equals Rule' components for that. These can be chained on the 'does not contain'/'not equals' paths to filter on multiple group names.

3. Add a ‘DropDownList’ component to the Create Incident form
Functionality:
                Data Type: Group
                Display Field: GroupName
                Items: Process Variables: Add Array: testGroups
                Output Data: testAssignmentGroup
                Output Paths:    Resolve - Optional
                                        Create Incident Process - Optional

4. Add a 'Variable Exists Rule' component to the 'Create Incident Process' path out of 'Create Incident(1.7)' dialog component before 'Set IncidentDepartment (1.74)'
Variable Definition: testAssignmentGroup

Continue on 'true' path, connect 'false' path to the next component after step 6. In short, this should go around the components added in steps 5-7.

5. Add a 'Single Value Mapping' component
Target Type: AssignmentTarget
Mapping Definition:
                TestAssignment.GroupName     DisplayName
                TestAssignment.GroupID          TargetID
                TestAssignment.GroupName     TargetName
Map Into Existing Value: Unchecked
Target Variable Name: testAssignmentTargetGroup

6. Add an 'Add New Data Element' component
Data Type: AssignmentType
Value: Group
Variable Name: testAssignmentTargetGroup.AssignmentType

7. Add an 'Add Items to Collection' component
Data Type: AssignmentTarget
Array Variable Name: IncidentAssignments
Items To Add: testAssignmentTargetGroup

8. Add the same components as 4-7 to the 'Resolve' path out of 'Create Incident(1.7)' dialog component before 'Set Impact, Urgency, Priority and Bus. Services(1.71)' component.

Notes:
- No checking if the same user/group is selected in dropdown and out-of-box assignments dialog. So far, testing seems to confirm that it works just fine, ignoring the duplicate assignments.
- If nothing is selected in dropdown, default assignment (by default 'Support I') or the default routing will still be used.

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Related Entries and Links

No Related Resource entered.