خاطرات فنی من

یادداشتهایی در مورد تجربیات فنی من به عنوان یک مهندس نرم افزار برای مراجعه بعدی خودم و احتمالا دیگران.

سعی می کنم مطالب برای دیگران هم قابل استفاده باشند اما به دلیل کمی وقت نمی توانم زیاد نگران نگارش و چینش متن باشم

اینکه گروه سرویس دسک خودش چند درصد یا چه تعداد از درخواستهای واحد را بتنهایی و بدون ارجاع به گروههای دیگر می بندد می تواند یکی از معیارهای ارزشیابی سرویس دسک باشد.


حالا در ServiceDesk Plus چطور می توانیم چنین گزارشی ایجاد کنیم


select WorkOrder.workorderId, title, statusDefinition.statusName, 
(dateadd(s, workorder.ResolvedTime/1000, convert(datetime, '1-1-1970 04:30:00'))) as resolvedDate, workorder.ResolvedTime,
CONCAT(sduser.firstname, ' ', sduser.lastname) as technicianName
from WorkOrder, workorderstates, WorkOrder_Queue, sduser, statusDefinition where
workorder.WORKORDERID = workorderstates.WORKORDERID and
workorderstates.STATUSID in (3 , 4) and
workorder.WORKORDERID = WorkOrder_Queue.WORKORDERID and
WorkOrder_Queue.QUEUEID = 601 and
workorderStates.ownerId = sdUser.userId and
workorderstates.STATUSID = statusDefinition.STATUSID and
datediff(d, dateadd(s, workorder.ResolvedTime/1000, convert(datetime, '1-1-1970 04:30:00')), getdate()) < 30 and
WorkOrder.workorderId not in
(select WorkOrderHistory.WORKORDERID from WorkOrderHistory, WorkOrderHistoryDiff, WorkOrder where
workorder.WORKORDERID = WorkOrderHistory.WORKORDERID and
WorkOrderHistory.HISTORYID = WorkOrderHistoryDiff.HISTORYID and
cast(COLUMNNAME as varchar) = 'queueId')
order by resolvedDate desc


این گزارش لیست درخواستهایی است که سرویس دسک در 30 روز گذشته بسته است و حالت آن Resolved یا Closed  است.

عدد 601 در دیتابیس ما کد گروه سرویس دسک است که از جدول QueueDefinition بدست آمده است.

اعداد 3 و 4 کد حالتهای Resolved و Closed برای درخواستهاست که از جدول StatusDefinition به دست آمده است.

در مورد نحوه کار کردن با فیلد زمان که از نوع BigInt است به این مطلب مراجعه کنید


با کمی تغییر در همین Query می توانیم تعداد درخواستهایی که هر کارشناس سرویس دسک در 30 روز گذشته بسته است را ببینیم:

select count(WorkOrder.workorderId) as NumberOfRequests, CONCAT(sduser.firstname, ' ', sduser.lastname) as technicianName
from WorkOrder, workorderstates, WorkOrder_Queue, sduser where
workorder.WORKORDERID = workorderstates.WORKORDERID and
workorderstates.STATUSID in (3 , 4) and
workorder.WORKORDERID = WorkOrder_Queue.WORKORDERID and
WorkOrder_Queue.QUEUEID = 601 and
workorderStates.ownerId = sdUser.userId and
datediff(d, dateadd(s, workorder.ResolvedTime/1000, convert(datetime, '1-1-1970 04:30:00')), getdate()) < 30 and
WorkOrder.workorderId not in
(select WorkOrderHistory.WORKORDERID from WorkOrderHistory, WorkOrderHistoryDiff, WorkOrder where
workorder.WORKORDERID = WorkOrderHistory.WORKORDERID and
WorkOrderHistory.HISTORYID = WorkOrderHistoryDiff.HISTORYID and
cast(COLUMNNAME as varchar) = 'queueId')
group by CONCAT(sduser.firstname, ' ', sduser.lastname)





موافقین ۰ مخالفین ۰ ۹۸/۰۳/۲۱
محسن

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی