Video Screencast Help

Incident Template issue in ServiceDesk 7.5

Created: 27 Dec 2012 • Updated: 26 Aug 2013 | 2 comments
This issue has been solved. See solution.

No matter whether or not I have the 'user only template' box checked, it seems like the template can only be viewed by the original creator. I don't believe this is expected behavior, so can anyone else confirm this?

Looking at the SD.Feeder.TechnicianIncidentForms project, templates are loaded by the 'Init Data (Non-Cached) and Declarations' embedded model. This grabs all templates and then runs a configurable sort on them to check to see if the template creator is either 'System' or the user accessing the form. This tells me that when the 'user only template' box is not checked, the system should save the template with a creator of 'System'. When I checked the IMIncidentTemplate table directly, this is not happening. The mapping definition seems to be hardcoded to the EnsembleSecurityToken.Email value, rather than a dynamic mapping based on the value UserOnlyTemplate.

I think I'm reading this right, I just want some confirmation of the bug before I change the single value mapping component.

Comments 2 CommentsJump to latest comment's picture

I'm just going to assume this is a bug and post my solution. Independant confirmation would still be nice, though, so please comment.

  1. Open 'SD.Feeder.TechnicianIncidentForms' project
  2. Open 'Create Incident' web form component
  3. Open 'Save As Template' sub dialog component
  4. Go to user interaction tab and edit the forms model
  5. Open the 'Create Template Object' single value mapping component and edit the mapping definition
  6. Right click on the line extending from EnsembleSecurityToken.Email (on the left) to CreatedBy (on the right) and select Convert->Convert to ProcessMappingAssignment
  7. Double click that same line and edit the conversion model.
  8. Drop a 'True False Rule' component in the dialog and another 'End' component. Name them whatever you want, but for this I'm calling the rule component 'User Only?' and the two ends 'System' and 'Email'.
  9. Set the True Fale Rule to use the variable 'UserOnlyTemplate'.
  10. Connect the false outcome to the 'System' end component and set that component to create value with a data value of 'System'.
  11. Connect the true outcome to the 'Email' end component and set that component to value from data pointing to EnsembleSecurityToken.Email.
  12. Click okay back through the nearly dozen sub dialog boxes you have open and then save and publish the workflow.

Also, this solution does bring up some interesting questions for me. First, does this mean that all users can delete or modify this template? The only permission I see that would relate to this is the control over the Submit Incident (Advanced) form (Service.Items.AdvancedIncident), so I guess as long as you trust someone to access that form you must also trust them to not mess up the templates. Second, assuming I'm right about the first, would the best solution be to add a column to the template table that determines whether or not a template is global while keeping the 'CreatedBy' column as a way to track who did create a template and possibly limit editing to the original creator?

If a post solves your issue, please mark it as a solution. It makes these forums better for everyone.

TGiles's picture


This is a known issue that was addressed in KB #TECH200154.