Data Manager for Change Managment
Hello. We are attempting to implement the use of the service desk function in KACE for our change management process. Using a separate change management queue we have setup different request templates for CM's such as standard, minor, emergency, etc. MY question is that in the template you can select approvers. We have our CAB that can approve but we also require the data manager's approval. Listed the cab members is easy but the data manager is where it gets tricky. Is there a way to have an approval where when you submit the CM request you can chose the data manager/user from a drop down or a search box this way it goes to the correct person? I thought of creating a data manager label and adding that but i can see users getting upset if they are getting email notification to approve tickets that are not related to their application that they manage.
Answers (2)
Why not create the label for the data managers, but create a custom field that displays only the members of that label in a drop down, then add that field only to the template that needs data managers approval, would that work?
Comments:
-
I'm not sure. I can use one of the custom fields for the data managers but who do you make it so it only displays members of a certain label and also require them to approve? - mhall0828 4 years ago
To add a custom lookup do this
Create your user label and add in the users you want to see
Go to Home>Label Management and click Labels
Hover over your user label and the ID will appear in the bottom left hand corner of your screen, record the ID number
Next go to your ServiceDesk Queue, click "Customize fields and layout" and go down to your custom field and select a custom field, you may want to click the little question mark next to the heading to get a clue as to what is going to happen next......
Edit your selected custom field, and make it a single select drop down.
Paste this text into the Select Values Field
query: SELECT USER.EMAIL, USER.ID, USER_LABEL_JT.LABEL_ID FROM ORG1.USER USER INNER JOIN ORG1.USER_LABEL_JT USER_LABEL_JT ON (USER.ID = USER_LABEL_JT.USER_ID) WHERE USER_LABEL_JT.LABEL_ID = "219" ORDER BY FULL_NAME ASC Edit the code and add in the label ID that you recorded earlier, it is highlighted in yellow above. Save your custom field and then go to the ticket layout section and add in your custom field so that it can be seen and used, don't forget to add it to your template too if that is appropriate. Save your settings and then go to a ticket in the correct queue and see what you have.... This is what we do, day in and day out for Quest here in the UK, if you think we can help you with your project, contact me via my email in my IT Ninja account |
Comments:
-
Thank you. This does appear to work. I think i only have 1 last question. The child tickets that get open during the CM Process. The owner is automatically set to unassigned. I'm working on a ticket rule to update the owner using the submitter. I have the select statement working fine. Its finding the tickets that have a submitting and owner is null, but i can't seem to figure out the update SQL. Do you have any thoughts? I tried the following but it does not change the owner. They are staying unassigned. It is set for on ticket save. Thanks
Select SQL:
select HD_TICKET.*,
HD_STATUS.NAME AS STATUS_NAME,
HD_STATUS.ORDINAL as STATUS_ORDINAL,
HD_IMPACT.ORDINAL as IMPACT_ORDINAL,
HD_CATEGORY.ORDINAL as CATEGORY_ORDINAL,
HD_PRIORITY.ORDINAL as PRIORITY_NUMBER,
STATE,
if(M1.ID is null, 'z', concat('a', M1.NAME)) as sort_MACHINE_NAME,
if((datediff(DUE_DATE, now()) = 0), 2, if((datediff(DUE_DATE, now())<0), 1, 3)) as SORT_OVERDUE_STATUS,
if(unix_timestamp(TIME_OPENED) > 0, TIME_OPENED, 1<<62) as SORT_TIME_OPENED,
if(unix_timestamp(TIME_STALLED) > 0, TIME_STALLED, 1<<62) as SORT_TIME_STALLED,
if(unix_timestamp(TIME_CLOSED) > 0, TIME_CLOSED, 1<<62) as SORT_TIME_CLOSED,
if(unix_timestamp(ESCALATED) > 0, ESCALATED, 1<<62) as SORT_ESCALATED,
if(unix_timestamp(HD_TICKET.CREATED) > 0, HD_TICKET.CREATED, 1<<62) as SORT_TIME_CREATED,
if(unix_timestamp(HD_TICKET.MODIFIED) > 0, HD_TICKET.MODIFIED, 1<<62) as SORT_MODIFIED,
if(unix_timestamp(HD_TICKET.DUE_DATE) > 0, HD_TICKET.DUE_DATE, 1<<62) as SORT_DUE_DATE,
case upper(STATE)
when 'CLOSED' then unix_timestamp(HD_TICKET.TIME_CLOSED) - unix_timestamp(HD_TICKET.TIME_OPENED)
when 'OPENED' then unix_timestamp() - unix_timestamp(HD_TICKET.TIME_OPENED)
else unix_timestamp() - unix_timestamp(HD_TICKET.CREATED) end as AGE,
if ((LENGTH(U1.FULL_NAME) = 0), U1.USER_NAME, U1.FULL_NAME) as OWNER_NAME,
U1.FULL_NAME as OWNER_FULLNAME,
U1.EMAIL as OWNER_EMAIL,
if (U1.ID is null, 'z', concat('a', if ((LENGTH(U1.FULL_NAME) = 0), U1.USER_NAME, U1.FULL_NAME))) as SORT_OWNER_NAME,
if ((LENGTH(U2.FULL_NAME) = 0), U2.USER_NAME, U2.FULL_NAME) as SUBMITTER_NAME,
U2.FULL_NAME as SUBMITTER_FULLNAME,
U2.EMAIL as SUBMITTER_EMAIL,
if (U2.ID is null, 'z', concat('a', if ((LENGTH(U2.FULL_NAME) = 0), U2.USER_NAME, U2.FULL_NAME))) as SORT_SUBMITTER_NAME,
if (U3.ID is null, 'z', concat('a', if ((LENGTH(U3.FULL_NAME) = 0), U3.USER_NAME, U3.FULL_NAME))) as SORT_APPROVER_NAME,
if(APPROVAL='rejected', 'Rejected', if(APPROVAL='info', 'More Info Needed', if(APPROVAL='approved', 'Approved', if(HD_TICKET.APPROVER_ID>0, 'Pending', '')))) as APPROVAL_STATUS,
Q.NAME as QUEUE_NAME
from (HD_TICKET, HD_PRIORITY, HD_STATUS, HD_IMPACT, HD_CATEGORY)
LEFT JOIN USER U1 on U1.ID = HD_TICKET.OWNER_ID
LEFT JOIN USER U2 on U2.ID = HD_TICKET.SUBMITTER_ID
LEFT JOIN USER U3 on U3.ID = HD_TICKET.APPROVER_ID
LEFT JOIN HD_QUEUE Q on Q.ID = HD_TICKET.HD_QUEUE_ID
LEFT JOIN MACHINE M1 on M1.ID = HD_TICKET.MACHINE_ID
where HD_PRIORITY.ID = HD_PRIORITY_ID
and HD_STATUS.ID = HD_STATUS_ID
and HD_IMPACT.ID = HD_IMPACT_ID
and HD_CATEGORY.ID = HD_CATEGORY_ID
and ((( HD_TICKET.OWNER_ID = '0') AND ( exists (select 1 from USER where HD_TICKET.SUBMITTER_ID = USER.ID and USER.USER_NAME is not null)) ) and HD_TICKET.HD_QUEUE_ID = 6 )
Update SQL:
update HD_TICKET, USER as T5
set HD_TICKET.OWNER_ID = T5.ID
where T5.USER_NAME = 'SUBMITTER_ID' and
(HD_TICKET.ID in (<TICKET_IDS>)) - mhall0828 4 years ago-
Who is the owner of the child tickets? - Hobbsy 4 years ago
-
Who is the owner of the child tickets? - Hobbsy 4 years ago
-
Who is the owner of the child tickets? - Hobbsy 4 years ago
-
They are currently showing unassigned. I was trying to find a way to have it auto assign them based on the submitter. For example if i submit a change manager ticket using the request template the parent ticket defaults to me as the submitter. I am also the owner of the parent ticket. When the child tickets open they show me as the submitter but the owner is unassigned. - mhall0828 4 years ago
Update SQL:
update HD_TICKET
set HD_TICKET.OWNER_ID = HD_TICJET.SUBMITTER_ID
where (HD_TICKET.ID in (<TICKET_IDS>))
as your update statement - Hobbsy 4 years ago