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

طرح مسئله:

فرض کنید قصد دارید گزارشی از تاریخچه  فعالیت های انجام شده روی تسک های فرایندهای اجرا شده شامل اطلاعات اقدام کننده فعالیت، عنوان فعالیت، وضعیت فعالیت و زمان های مربوط به هر وضعیت فعالیت را داشته باشید.

یک راه حل:

با استفاده از کوئری زیر میتوانید موارد ذکر شده را به دست آورید.

DECLARE 
    @FullTitle NVARCHAR(100) = N'',  -- فیلتر نام اقدام‌کننده، خالی = بدون فیلتر
    @TaskName NVARCHAR(100) = N'',   -- فیلتر عنوان فعالیت، خالی = بدون فیلتر
    @StatusType INT = -1,            -- فیلتر نوع وضعیت، -1 = همه
    @StartDate DATETIME = '2000-01-01',  -- تاریخ شروع بازه
    @EndDate   DATETIME = '2100-01-01';  -- تاریخ پایان بازه

SELECT
    p.SerialId AS N'شماره سریال',
    t.Name AS N'عنوان فعالیت',
    s.FullTitle AS N'اقدام کننده',

Didgah_Common.dbo.com_udfGetSolarDateTime(h.[CreatedOn]) AS N'زمان مربوطه',

CASE 
    WHEN h.[Type] = 0 THEN N'ایجاد'
    WHEN h.[Type] = 1 THEN N'لغو انتساب'
    WHEN h.[Type] = 2 THEN N'تکمیل'
    WHEN h.[Type] = 3 THEN N'برداشتن'
    WHEN h.[Type] = 4 THEN N'اختصاص داده شد'
    WHEN h.[Type] = 5 THEN N'مشاهده'
    WHEN h.[Type] = 6 THEN N'لغو شده'
    WHEN h.[Type] = 7 THEN N'متوقف'
    WHEN h.[Type] = 8 THEN N'ادامه'
    WHEN h.[Type] = 9 THEN N'منقضی'
    WHEN h.[Type] = 10 THEN N'منقضی ناشی از خطا'
    WHEN h.[Type] = 12 THEN N'تغییر اقدام کننده'
    ELSE N'نامشخص'
END AS N'وضعیت فعالیت'
FROM [Didgah_BPMS].[dbo].[bpm_TaskHistories] h
INNER JOIN [Didgah_BPMS].[dbo].bpm_tasks t ON h.TaskId = t.id
INNER JOIN [Didgah_BPMS].[dbo].bpm_ProcessInstances p ON t.businesskey = p.businesskey
INNER JOIN Didgah_Common.dbo.com_staff s ON t.ownerid = s.id

WHERE 
    (@FullTitle = N'' OR s.FullTitle LIKE '%' + @FullTitle + '%')
    AND (@TaskName = N'' OR t.Name LIKE '%' + @TaskName + '%')
    AND (@StatusType = -1 OR h.Type = @StatusType)
    AND h.CreatedOn BETWEEN @StartDate AND @EndDate

ORDER BY p.SerialId DESC;

با اجرا کردن کوئری فوق میتوانید زمان ها و موارد ذکر شده را بدست آورید.

نظرات کاربران 0 نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پنج × چهار =