/build/static/layout/Breadcrumb_cap_w.png

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. 


2 Comments   [ + ] Show comments
  • ok so all you need to do is to copy the submitter ID value to the owner ID Value, try....

    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
  • You are the best! It worked! Thank you! - mhall0828 4 years ago
    • You are welcome - Hobbsy 4 years ago

Answers (2)

Posted by: Hobbsy 4 years ago
Red Belt
0

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
Posted by: Hobbsy 4 years ago
Red Belt
0

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
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ