قواعد کسبوکار فرم و قابلیت یکتاسازی
در Form Builder GraphBPMS دو قابلیت مستقل اما مرتبط برای کنترل رفتار و صحت دادههای فرم در اختیار طراح قرار دارد: قواعد کسبوکار برای اجرای رفتارهای شرطی روی فیلدها و رخدادهای فرم، و یکتاسازی فیلدها برای جلوگیری از ثبت ترکیبهای تکراری در سطح داده. در هر دو قابلیت، فیلد تودرتو یا SubForm نیز تنظیمات مستقل خودش را دارد؛
قواعد کسبوکار فرم
قواعد کسبوکار برای زمانی است که رفتار فرم باید بر اساس شرطهای مشخص تغییر کند. برای نمونه، میتوان تعیین کرد اگر فیلد X مقدار داشته باشد و مقدار فیلد Y کمتر از 10 باشد، یک فیلد یا Container دیگر نمایش داده نشود.
Ruleهای قبلی در همین بخش قابل مشاهدهاند. هر Rule را میتوان ویرایش یا حذف کرد و با دکمه افزودن یک قاعده جدید ساخت. برای هر قاعده نیز بخش توضیحات وجود دارد تا دلیل ایجاد آن برای مراجعات بعدی مشخص باشد.
ساخت شرطها و گروههای شرطی
هر Rule یک فرمول شرط دارد. شرطها میتوانند مستقیماً در یک سطح قرار بگیرند یا داخل گروههای شرطی قرار داده شوند. حالتهای ترکیب شامل و، یا، و خیر و یا خیر است. با دکمه + نیز میتوان شرط جدید یا گروه شرط جدید اضافه کرد.
(شرط ۱ AND شرط ۲ AND شرط ۳) AND (شرط ۴ OR شرط ۵ OR شرط ۶)
تعیین دو طرف شرط و عملگر مقایسه
هر ردیف شرط از سه بخش تشکیل میشود: منبع یا مقدار سمت اول، عملگر مقایسه و منبع یا مقدار سمت دوم.
- مقدار ثابت: مقدار بهصورت دستی وارد میشود.
- سیستمی: مقادیری مانند تاریخ جاری شمسی/میلادی، تاریخ و زمان جاری، کاربر جاری، نقش جاری و رکورد آیدی جاری در دسترساند. رکورد آیدی جاری همان شناسه رکورد فرم جاری است.
- کنترل: مقدار یکی از فیلدها یا ابزارهای فرم وارد شرط میشود.
- کوئری استرینگ: مقدار Query String موجود در URL استفاده میشود.
- پارامتر فرم: مقدار یک پارامتر فرم وارد شرط میشود.
- حالت فرم: شرط میتواند بر اساس حالت درج، ویرایش یا نمایش ساخته شود.
- موقعیت فرم: محل اجرای فرم مانند فرآیند، کار همراه، بدون احراز یا مستقل در شرط استفاده میشود.
پس از انتخاب منبع، عملگر مقایسه تعیین میشود. عملگرهای رابط شامل مواردی مانند برابر باشد با، برابر نباشد با، بزرگتر باشد از، بزرگتر یا مساوی، کوچکتر باشد از، کوچکتر یا مساوی، بین بازههای، شامل شود، شامل نشود، شروع با، خاتمه با، خالی باشد و خالی نباشد است.
سمت دوم شرط نیز میتواند از همان الگوی منبع استفاده کند و فقط محدود به مقدار ثابت نیست؛ بنابراین میتوان یک فیلد را با فیلد دیگر، مقدار سیستمی، Query String یا پارامتر فرم مقایسه کرد.
تعیین نتیجه Rule
بعد از تعریف شرطها، نتیجه Rule میتواند روی ساختار فیلدها، مقادیر و متنهای نمایشی فیلدها یا رخدادهای فرم اعمال شود.
تغییر ساختار فیلدها
در بخش تنظیمات ساختار فیلدها ابتدا مشخص میشود چه کاری انجام شود و سپس فیلدهای هدف انتخاب میشوند.
- عدم نمایش: فیلدهای انتخابشده نمایش داده نشوند.
- نمایش: فیلدهای انتخابشده نمایش داده شوند.
- اجباری: فیلدهای انتخابشده اجباری شوند.
- اختیاری: فیلدهای انتخابشده اختیاری شوند.
- فقط خواندنی: فیلدهای انتخابشده فقطخواندنی شوند.
- قابل ویرایش: فیلدهای انتخابشده قابل ویرایش شوند.
تغییر مقدار و متنهای نمایشی فیلدها
در تنظیمات مقادیر فیلدها میتوان برای فیلدهای انتخابشده مقدار (`Value`)، برچسب (`Label`)، عنوان لغزنده (`Placeholder`) و متن راهنما (`Tooltip`) را تغییر داد.
فیلدهای انتخابی وابسته به Provider پارامتریک
اگر فیلد انتخابی دادههای خود را از Provider پارامتریک دریافت کند و پارامترهای Provider به کنترلهای دیگر، Query String یا ورودیهای مشابه متصل باشند، ممکن است فهرست مقادیر در محیط تنظیم Rule مستقیماً لود نشود. در این حالت میتوان برای پارامتر Provider یک مقدار نمایشی تعیین کرد تا دادهها در حالت طراحی بارگذاری شوند و انتخاب مقدار برای Rule ممکن شود.
در نمونه بالا برای پارامتر cRole مقدار نمایشی 1 قرار داده شده است. پس از این مقداردهی، دادههای Provider در محیط Rule قابل بارگذاری میشوند و طراح میتواند مقدار واقعی فیلد انتخابی را از فهرست انتخاب کند. در نمونه زیر، مقادیر فیلد حوزه کاری (`JobScope`) در Rule لود شدهاند و گزینههایی مانند نرمافزار و سختافزار قابل انتخاب هستند.
فراخوانی رخدادهای فرم
در تنظیمات فراخوانی رخدادها میتوان تعیین کرد اگر شرطها برقرار شدند، یک یا چند رخداد موجود در فرم فراخوانی شوند. این رخدادها میتوانند مربوط به دکمهها یا سایر رخدادهای تعریفشده در فرم باشند. در نمونه رابط، رخدادهای ButtonSendNotification و BtnCopySteps همزمان انتخاب شدهاند؛ بنابراین یک Rule میتواند بیش از یک رخداد را فراخوانی کند.
اولویت و اجرای آبشاری قواعد
Ruleها بهصورت آبشاری اجرا میشوند و ترتیب آنها اهمیت دارد. اگر Rule پایینتر روی همان فیلد یا همان ویژگی اثری متفاوت اعمال کند، اثر Rule بعدی نیز اعمال میشود. در فهرست قواعد میتوان جستوجو کرد، اولویت را جابهجا کرد و Rule را حذف کرد.
نکته مهم: همین قواعد در SubForm نیز بهصورت مستقل وجود دارد
فیلد تودرتو یا SubForm در تنظیمات اختصاصی خودش نیز بخش قواعد کسبوکار دارد. یعنی هر SubForm میتواند Ruleهای مستقل خودش را داشته باشد. در قواعد کسبوکار اختصاصی هر SubForm، امکان درج شرط بر اساس فیلدهای فرم اصلی (پدر) نیز وجود دارد؛ بنابراین در شرطهای فرم تودرتو میتوان از فیلدهای فرم پدر هم استفاده کرد.
علاوه بر قابلیتهای عمومی Rule، در SubForm یک امکان اضافه با عنوان تغییر ساختار جدول وجود دارد؛ زیرا SubForm علاوه بر فرم ثبت اطلاعات، یک جدول برای نمایش رکوردها دارد.
در سطح ردیف میتوان رنگ پسزمینه، رنگ قلم، وزن قلم و اندازه قلم را بر اساس شرطها تغییر داد. در سطح سلول نیز ابتدا ستون یا فیلد هدف انتخاب میشود و سپس ویژگی ظاهری همان سلول تغییر میکند. امکان تعریف همزمان چند تغییر برای ردیفها و سلولها نیز وجود دارد.
یکتاسازی فیلدها
قابلیت یکتاسازی داده در تنظیمات خود فرم وجود دارد و برای جلوگیری از ثبت دادههای تکراری استفاده میشود. در هر تعریف یکتاسازی میتوان یک یا چند فیلد را انتخاب کرد؛ مشروط بر اینکه فرم دارای جدول پایگاه داده باشد و فیلد انتخابشده ستون متناظر در آن جدول داشته باشد.
منطق این بخش در سطح پایگاه داده با مفهوم UNIQUE CONSTRAINT در SQL Server همراستاست. اگر چند فیلد در یک تعریف یکتا انتخاب شوند، یکتایی روی ترکیب آنها بررسی میشود، نه لزوماً روی تکتک فیلدها بهصورت مستقل.
با دکمه افزودن میتوان تعریف یکتاسازی جدید ایجاد کرد. علاوه بر فیلدهای فرم، ستونهای سیستمی نیز میتوانند در ترکیب یکتایی دخیل شوند؛ از جمله:
- یکتا برحسب تاریخ ثبت
- یکتا برحسب کاربر ثبتکننده
نکته مهم: یکتاسازی در SubForm نیز مستقل است
همین قابلیت یکتاسازی در تنظیمات اختصاصی SubForm نیز وجود دارد و برای هر فیلد تودرتو جداگانه تنظیم میشود. منطق اصلی همان است، اما SubForm یک گزینه سیستمی اضافه دارد:
به این ترتیب میتوان یکتایی را به محدوده هر رکورد فرم پدر محدود کرد؛ یعنی یک مقدار در SubForm یک Parent مشخص تکراری نباشد، اما همان مقدار در SubForm متعلق به Parent دیگری قابل استفاده باشد.
قواعد کسبوکار فرم و قابلیت یکتاسازی
در Form Builder GraphBPMS دو قابلیت مستقل اما مرتبط برای کنترل رفتار و صحت دادههای فرم در اختیار طراح قرار دارد: قواعد کسبوکار برای اجرای رفتارهای شرطی روی فیلدها و رخدادهای فرم، و یکتاسازی فیلدها برای جلوگیری از ثبت ترکیبهای تکراری در سطح داده. در هر دو قابلیت، فیلد تودرتو یا SubForm نیز تنظیمات مستقل خودش را دارد؛
قواعد کسبوکار فرم
قواعد کسبوکار برای زمانی است که رفتار فرم باید بر اساس شرطهای مشخص تغییر کند. برای نمونه، میتوان تعیین کرد اگر فیلد X مقدار داشته باشد و مقدار فیلد Y کمتر از 10 باشد، یک فیلد یا Container دیگر نمایش داده نشود.
Ruleهای قبلی در همین بخش قابل مشاهدهاند. هر Rule را میتوان ویرایش یا حذف کرد و با دکمه افزودن یک قاعده جدید ساخت. برای هر قاعده نیز بخش توضیحات وجود دارد تا دلیل ایجاد آن برای مراجعات بعدی مشخص باشد.
ساخت شرطها و گروههای شرطی
هر Rule یک فرمول شرط دارد. شرطها میتوانند مستقیماً در یک سطح قرار بگیرند یا داخل گروههای شرطی قرار داده شوند. حالتهای ترکیب شامل و، یا، و خیر و یا خیر است. با دکمه + نیز میتوان شرط جدید یا گروه شرط جدید اضافه کرد.
(شرط ۱ AND شرط ۲ AND شرط ۳) AND (شرط ۴ OR شرط ۵ OR شرط ۶)
تعیین دو طرف شرط و عملگر مقایسه
هر ردیف شرط از سه بخش تشکیل میشود: منبع یا مقدار سمت اول، عملگر مقایسه و منبع یا مقدار سمت دوم.
- مقدار ثابت: مقدار بهصورت دستی وارد میشود.
- سیستمی: مقادیری مانند تاریخ جاری شمسی/میلادی، تاریخ و زمان جاری، کاربر جاری، نقش جاری و رکورد آیدی جاری در دسترساند. رکورد آیدی جاری همان شناسه رکورد فرم جاری است.
- کنترل: مقدار یکی از فیلدها یا ابزارهای فرم وارد شرط میشود.
- کوئری استرینگ: مقدار Query String موجود در URL استفاده میشود.
- پارامتر فرم: مقدار یک پارامتر فرم وارد شرط میشود.
- حالت فرم: شرط میتواند بر اساس حالت درج، ویرایش یا نمایش ساخته شود.
- موقعیت فرم: محل اجرای فرم مانند فرآیند، کار همراه، بدون احراز یا مستقل در شرط استفاده میشود.
پس از انتخاب منبع، عملگر مقایسه تعیین میشود. عملگرهای رابط شامل مواردی مانند برابر باشد با، برابر نباشد با، بزرگتر باشد از، بزرگتر یا مساوی، کوچکتر باشد از، کوچکتر یا مساوی، بین بازههای، شامل شود، شامل نشود، شروع با، خاتمه با، خالی باشد و خالی نباشد است.
سمت دوم شرط نیز میتواند از همان الگوی منبع استفاده کند و فقط محدود به مقدار ثابت نیست؛ بنابراین میتوان یک فیلد را با فیلد دیگر، مقدار سیستمی، Query String یا پارامتر فرم مقایسه کرد.
تعیین نتیجه Rule
بعد از تعریف شرطها، نتیجه Rule میتواند روی ساختار فیلدها، مقادیر و متنهای نمایشی فیلدها یا رخدادهای فرم اعمال شود.
تغییر ساختار فیلدها
در بخش تنظیمات ساختار فیلدها ابتدا مشخص میشود چه کاری انجام شود و سپس فیلدهای هدف انتخاب میشوند.
- عدم نمایش: فیلدهای انتخابشده نمایش داده نشوند.
- نمایش: فیلدهای انتخابشده نمایش داده شوند.
- اجباری: فیلدهای انتخابشده اجباری شوند.
- اختیاری: فیلدهای انتخابشده اختیاری شوند.
- فقط خواندنی: فیلدهای انتخابشده فقطخواندنی شوند.
- قابل ویرایش: فیلدهای انتخابشده قابل ویرایش شوند.
تغییر مقدار و متنهای نمایشی فیلدها
در تنظیمات مقادیر فیلدها میتوان برای فیلدهای انتخابشده مقدار (`Value`)، برچسب (`Label`)، عنوان لغزنده (`Placeholder`) و متن راهنما (`Tooltip`) را تغییر داد.
فیلدهای انتخابی وابسته به Provider پارامتریک
اگر فیلد انتخابی دادههای خود را از Provider پارامتریک دریافت کند و پارامترهای Provider به کنترلهای دیگر، Query String یا ورودیهای مشابه متصل باشند، ممکن است فهرست مقادیر در محیط تنظیم Rule مستقیماً لود نشود. در این حالت میتوان برای پارامتر Provider یک مقدار نمایشی تعیین کرد تا دادهها در حالت طراحی بارگذاری شوند و انتخاب مقدار برای Rule ممکن شود.
در نمونه بالا برای پارامتر cRole مقدار نمایشی 1 قرار داده شده است. پس از این مقداردهی، دادههای Provider در محیط Rule قابل بارگذاری میشوند و طراح میتواند مقدار واقعی فیلد انتخابی را از فهرست انتخاب کند. در نمونه زیر، مقادیر فیلد حوزه کاری (`JobScope`) در Rule لود شدهاند و گزینههایی مانند نرمافزار و سختافزار قابل انتخاب هستند.
فراخوانی رخدادهای فرم
در تنظیمات فراخوانی رخدادها میتوان تعیین کرد اگر شرطها برقرار شدند، یک یا چند رخداد موجود در فرم فراخوانی شوند. این رخدادها میتوانند مربوط به دکمهها یا سایر رخدادهای تعریفشده در فرم باشند. در نمونه رابط، رخدادهای ButtonSendNotification و BtnCopySteps همزمان انتخاب شدهاند؛ بنابراین یک Rule میتواند بیش از یک رخداد را فراخوانی کند.
اولویت و اجرای آبشاری قواعد
Ruleها بهصورت آبشاری اجرا میشوند و ترتیب آنها اهمیت دارد. اگر Rule پایینتر روی همان فیلد یا همان ویژگی اثری متفاوت اعمال کند، اثر Rule بعدی نیز اعمال میشود. در فهرست قواعد میتوان جستوجو کرد، اولویت را جابهجا کرد و Rule را حذف کرد.
نکته مهم: همین قواعد در SubForm نیز بهصورت مستقل وجود دارد
فیلد تودرتو یا SubForm در تنظیمات اختصاصی خودش نیز بخش قواعد کسبوکار دارد. یعنی هر SubForm میتواند Ruleهای مستقل خودش را داشته باشد. در قواعد کسبوکار اختصاصی هر SubForm، امکان درج شرط بر اساس فیلدهای فرم اصلی (پدر) نیز وجود دارد؛ بنابراین در شرطهای فرم تودرتو میتوان از فیلدهای فرم پدر هم استفاده کرد.
علاوه بر قابلیتهای عمومی Rule، در SubForm یک امکان اضافه با عنوان تغییر ساختار جدول وجود دارد؛ زیرا SubForm علاوه بر فرم ثبت اطلاعات، یک جدول برای نمایش رکوردها دارد.
در سطح ردیف میتوان رنگ پسزمینه، رنگ قلم، وزن قلم و اندازه قلم را بر اساس شرطها تغییر داد. در سطح سلول نیز ابتدا ستون یا فیلد هدف انتخاب میشود و سپس ویژگی ظاهری همان سلول تغییر میکند. امکان تعریف همزمان چند تغییر برای ردیفها و سلولها نیز وجود دارد.
یکتاسازی فیلدها
قابلیت یکتاسازی داده در تنظیمات خود فرم وجود دارد و برای جلوگیری از ثبت دادههای تکراری استفاده میشود. در هر تعریف یکتاسازی میتوان یک یا چند فیلد را انتخاب کرد؛ مشروط بر اینکه فرم دارای جدول پایگاه داده باشد و فیلد انتخابشده ستون متناظر در آن جدول داشته باشد.
منطق این بخش در سطح پایگاه داده با مفهوم UNIQUE CONSTRAINT در SQL Server همراستاست. اگر چند فیلد در یک تعریف یکتا انتخاب شوند، یکتایی روی ترکیب آنها بررسی میشود، نه لزوماً روی تکتک فیلدها بهصورت مستقل.
با دکمه افزودن میتوان تعریف یکتاسازی جدید ایجاد کرد. علاوه بر فیلدهای فرم، ستونهای سیستمی نیز میتوانند در ترکیب یکتایی دخیل شوند؛ از جمله:
- یکتا برحسب تاریخ ثبت
- یکتا برحسب کاربر ثبتکننده
نکته مهم: یکتاسازی در SubForm نیز مستقل است
همین قابلیت یکتاسازی در تنظیمات اختصاصی SubForm نیز وجود دارد و برای هر فیلد تودرتو جداگانه تنظیم میشود. منطق اصلی همان است، اما SubForm یک گزینه سیستمی اضافه دارد:
به این ترتیب میتوان یکتایی را به محدوده هر رکورد فرم پدر محدود کرد؛ یعنی یک مقدار در SubForm یک Parent مشخص تکراری نباشد، اما همان مقدار در SubForm متعلق به Parent دیگری قابل استفاده باشد.