/build/static/layout/Breadcrumb_cap_w.png

We currently display device name in our service desk how do I display device serial number in the ticket?

We currently display device name in our service desk how do I display device serial number in the ticket?  I know I probably have to use a custom field but, how do I call the Bios serial number and populate that into the ticket?

0 Comments   [ + ] Show comments

Answers (1)

Posted by: h2opolo25 10 years ago
Red Belt
1
You will need to create a custom field and then do a Ticket Rule to look at the user last login on a machine and pull the BIOS serial number from that.

Steps:
Create custom field with type Single Select.
Remember the value. For Example CUSTOM_2. 
Set it as Read Only

Create Ticket Rule:

Select:

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,
HD_TICKET.ID as TICKET_ID,
STATE, 
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(NOW()) - unix_timestamp(HD_TICKET.TIME_OPENED) 
else unix_timestamp(NOW()) - 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(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 (( (1 in (select 1 from MACHINE where HD_TICKET.MACHINE_ID = 0)) ) and HD_TICKET.HD_QUEUE_ID = 1 )


Update:

UPDATE
HD_TICKET 
Inner Join USER On HD_TICKET.SUBMITTER_ID = USER.ID 
Inner Join MACHINE On USER.FULL_NAME = MACHINE.USER_FULLNAME 
SET HD_TICKET.CUSTOM_FIELD_VALUE# = MACHINE.BIOS_SERIAL_NUMBER 
WHERE HD_TICKET.ID IN (<TICKET_IDS>)

For your custom field value above, if the custom field was CUSTOM_2 then enter CUSTOM_FIELD_VALUE1. Basically CUSTOM_# = CUSTOM_FIELD_VALUE#-1

Choose "On Ticket Save" for schedule.

That should do it. You might want to clone one of your Queues and make it a test queue if you don't have one. It comes in handy. Just make sure to hide it from the users by adding just yourself to submitters.

Comments:
  • Instead of grabbing the value for the serial number based on the user I would use the value for the machine set in the ticket, they may not always be the same. In that case the update query would read:

    UPDATE HD_TICKET SET HD_TICKET.CUSTOM_FIELD_VALUE2 = (select MACHINE.BIOS_SERIAL_NUMBER FROM MACHINE WHERE MACHINE.ID = HD_TICKET.MACHINE_ID)
    WHERE HD_TICKET.ID IN (<TICKET_IDS>) - chucksteel 10 years ago

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

Share

 
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