دمو تماس پورتال

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

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

طرح مسئله:

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

یک راه حل:

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

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 نظر

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

19 + دوازده =