ویژه 2024-01-15 متخصص بیزاجی

کوئری‌های ضروری SQL برای مشاوران بیزاجی BPM

SQL Bizagi BPM Database Queries
هشدار: من توصیه نمی‌کنم که با محتوای جداول بازی کنید و در اینجا منظورم انجام insert، update یا delete دستی است. احتمال زیادی وجود دارد که با متادیتای بیزاجی مشکل ایجاد کنید و این آخرین چیزی است که می‌خواهید، باور کنید.

محتوای این مقاله

کوئری‌های SQL برای بازیابی داده‌های کاربران

1. لیست همه کاربران

ستون [enabled] نشان می‌دهد که آیا کاربر فعال است (1-درست) یا غیرفعال (0-غلط)

SELECT 
    usr.idUser,
    usr.usrName,
    usr.usrDisplayName,
    usr.usrEmail,
    usr.usrEnabled,
    usr.usrCreationDate
FROM 
    USER usr
ORDER BY 
    usr.usrCreationDate

2. کاربران فعال

SELECT 
    usr.idUser,
    usr.usrName,
    usr.usrDisplayName,
    usr.usrEmail
FROM 
    USER usr
WHERE 
    usr.usrEnabled = 1
ORDER BY 
    usr.usrDisplayName

3. کاربران با نقش‌هایشان

SELECT 
    usr.usrDisplayName AS 'User Name',
    rol.rolName AS 'Role Name',
    rol.rolDescription AS 'Role Description'
FROM 
    USER usr
INNER JOIN 
    USERROLE ur ON usr.idUser = ur.idUser
INNER JOIN 
    ROLE rol ON ur.idRole = rol.idRole
WHERE 
    usr.usrEnabled = 1
ORDER BY 
    usr.usrDisplayName, rol.rolName

بازیابی همه واژه‌نامه‌ها

SELECT 
    voc.idVocabulary,
    voc.vocName,
    voc.vocDescription,
    voc.vocCreationDate
FROM 
    VOCABULARY voc
ORDER BY 
    voc.vocName

بازیابی همه تسک‌ها برای کاربر خاص

SELECT 
    wi.idWorkItem,
    wi.wiName,
    wi.wiCreationDate,
    wi.wiAssignedDate,
    wi.wiFinishedDate,
    wi.wiState,
    usr.usrDisplayName AS 'Assigned User'
FROM 
    WFWORKITEM wi
INNER JOIN 
    USER usr ON wi.idUser = usr.idUser
WHERE 
    usr.usrName = 'username' -- نام کاربری مورد نظر
    AND wi.wiState IN (0, 1) -- 0: Assigned, 1: In Progress
ORDER BY 
    wi.wiCreationDate DESC

بازیابی همه تسک‌ها بر اساس شناسه کیس

SELECT 
    wi.idWorkItem,
    wi.wiName,
    wi.wiCreationDate,
    wi.wiAssignedDate,
    wi.wiFinishedDate,
    wi.wiState,
    cas.casId AS 'Case ID'
FROM 
    WFWORKITEM wi
INNER JOIN 
    WFCASE cas ON wi.idCase = cas.idCase
WHERE 
    cas.casId = 'CASE_ID' -- شناسه کیس مورد نظر
ORDER BY 
    wi.wiCreationDate DESC

بازیابی همه فرآیندها با نسخه‌های موجود

SELECT 
    prc.idProcess,
    prc.prcName,
    prc.prcDescription,
    prc.prcVersion,
    prc.prcCreationDate,
    prc.prcIsActive
FROM 
    PROCESS prc
WHERE 
    prc.prcIsActive = 1
ORDER BY 
    prc.prcName, prc.prcVersion DESC

بازیابی همه کیس‌ها

برای بهبود عملکرد، بیزاجی کیس‌های فعال را در WFCASE و غیرفعال‌ها را در WFCASECL ذخیره می‌کند (CL در انتها مخفف CLOSED است). همین منطق برای WFWORKITEM نیز اعمال می‌شود. انتقال از جدول عادی به CL در شب و زمانی که فعالیت پورتال کم است انجام می‌شود.

کیس‌های فعال

SELECT 
    cas.idCase,
    cas.casId,
    cas.casCreationDate,
    cas.casLastModified,
    prc.prcName AS 'Process Name'
FROM 
    WFCASE cas
INNER JOIN 
    PROCESS prc ON cas.idProcess = prc.idProcess
ORDER BY 
    cas.casCreationDate DESC

کیس‌های بسته شده

SELECT 
    cas.idCase,
    cas.casId,
    cas.casCreationDate,
    cas.casLastModified,
    prc.prcName AS 'Process Name'
FROM 
    WFCASECL cas
INNER JOIN 
    PROCESS prc ON cas.idProcess = prc.idProcess
ORDER BY 
    cas.casCreationDate DESC

همه کیس‌ها (فعال و بسته شده)

-- کیس‌های فعال
SELECT 
    cas.idCase,
    cas.casId,
    cas.casCreationDate,
    cas.casLastModified,
    prc.prcName AS 'Process Name',
    'Active' AS 'Status'
FROM 
    WFCASE cas
INNER JOIN 
    PROCESS prc ON cas.idProcess = prc.idProcess

UNION ALL

-- کیس‌های بسته شده
SELECT 
    cas.idCase,
    cas.casId,
    cas.casCreationDate,
    cas.casLastModified,
    prc.prcName AS 'Process Name',
    'Closed' AS 'Status'
FROM 
    WFCASECL cas
INNER JOIN 
    PROCESS prc ON cas.idProcess = prc.idProcess
ORDER BY 
    casCreationDate DESC

رمزگشایی محتوای کاتالوگ

برای رمزگشایی ستون objContentResolved از تابع [dbo].[fnBA_DB_BlobToClob] استفاده می‌کنم.

SELECT guidObject, objName, [dbo].[fnBA_DB_BlobToClob](objContentResolved) 'Decrypted Content' FROM vwBA_Catalog_BABIZAGICAT_ALL

مقالات بیشتر

Understanding Bizagi Database Architecture

Deep dive into Bizagi database structure and how to effectively query the underlying data.

ادامه مطلب
Performance Optimization Tips

Learn how to optimize your Bizagi processes for better performance and user experience.

ادامه مطلب
Advanced SQL Techniques

Master advanced SQL techniques for complex Bizagi data analysis and reporting.

ادامه مطلب