دکمه / رویداد — Button / Event
فیلد دکمه / رویداد (Button / Event) در Form Builder GraphBPMS برای اجرای یک عمل با کلیک کاربر یا از طریق رویدادهای فرم استفاده میشود. همان عملیات دکمه میتواند در Custom JS نیز فراخوانی شود. برای نمونه، این فیلد میتواند فرم جزئیات را باز کند، Provider اجرا کند یا پیام نمایش دهد؛ همچنین برای گزارش و قالب چاپ، شروع فرآیند، فراخوانی مدل تصمیم، ارسال اعلان و عملیات مربوط به فرم یا نگهدارنده قابل استفاده است.
نحوه اجرا و کنترلهای قبل از عملیات
تنظیمات اختصاصی دکمه مشخص میکنند فیلد چگونه فراخوانی شود و پیش از اجرای عملیات چه کنترلهایی انجام شوند.
نمایش دکمه یا استفاده از آن بهصورت رویداد
دکمه از سه مسیر قابل استفاده است:
- کلیک مستقیم کاربر روی دکمه؛
- فراخوانی در رویدادهای فرم؛
- استفاده در Custom JS.
در تنظیم نحوه اجرا دو حالت دکمه و رویداد وجود دارد. اگر توسعهدهنده فقط به فراخوانی دکمه از رویدادهای فرم یا Custom JS نیاز داشته باشد، نحوه اجرا را روی رویداد قرار میدهد. در این حالت دکمه در فرم به کاربر نمایش داده نمیشود.
اگر لازم باشد دکمه در فرم دیده شود، نحوه اجرا روی دکمه قرار میگیرد. در هر دو حالت، عملیات دکمه همچنان از رویدادهای فرم و Custom JS قابل فراخوانی است؛ تفاوت این دو گزینه در نمایش یا عدم نمایش دکمه در فرم است.
نوع عملیات تنظیم اصلی و تعیینکننده فیلد دکمه است و مشخص میکند با فراخوانی آن چه کاری انجام شود. جزئیات هر عملیات در بخشهای بعدی آمده است.
Captcha برای فرمهای بدون احراز هویت
زمانی که فرم در حالت Anonymous و بدون احراز هویت باز میشود، میتوان برای دکمه Captcha فعال کرد. با فعالشدن Captcha، گزینه نحوه نمایش Captcha ظاهر میشود و موقعیت آن نسبت به فیلد دکمه قابل انتخاب است:
- راست؛
- چپ؛
- بالا؛
- پایین؛
- Popup.
اعتبارسنجی فیلدها پیش از اجرای عملیات
با فعالسازی اعتبارسنجی میتوان تعیین کرد که هنگام فراخوانی دکمه، پیش از انجام عملیات اصلی، فیلدهای دیگر بررسی شوند. عملیات فقط در صورت موفقبودن اعتبارسنجیهای تعیینشده ادامه پیدا میکند.
رفتار نوع اعتبارسنجی به این صورت است:
- اگر مقدار این گزینه خالی باشد، هیچ اعتبارسنجی انجام نمیشود.
- در حالت اعتبارسنجی تمامی فیلدها، همه فیلدهای فرم اعتبارسنجی میشوند.
- در حالت اعتبارسنجی فیلدهای خاص، فقط فیلدهایی که در گزینه انتخاب فیلدها برای اعتبارسنجی تعیین شدهاند بررسی میشوند.
گرفتن تأیید کاربر با Confirm
با فعالکردن Confirm، قبل از اجرای عملیات از کاربر تأیید گرفته میشود. اگر کاربر تأیید کند عملیات ادامه پیدا میکند و در غیر این صورت اجرا متوقف میشود.
- فعالسازی: قابلیت Confirm را روشن یا خاموش میکند.
- پیام: متن سؤال تأیید را مشخص میکند؛ برای مثال: «از انجام این کار اطمینان دارید؟»
شخصیسازی ظاهر دکمه
بخش Custom styles نحوه نمایش فیلد و ابعاد آن را کنترل میکند.
- نوع دکمه: فیلد را بهصورت دکمه، لینک یا تصویر نمایش میدهد.
- انتخاب عکس: فقط وقتی نوع دکمه روی تصویر باشد نمایش داده میشود و برای انتخاب تصویر استفاده میشود.
- نحوه نمایش عکس: فقط در حالت تصویر در دسترس است:
- Fill: تصویر فضای تعیینشده را پر میکند. برای پرکردن کامل محدوده ممکن است نسبت عرض به ارتفاع تصویر تغییر کند.
- Contain: نسبت اصلی تصویر حفظ میشود و کل تصویر داخل محدوده دیده میشود؛ اگر نسبت تصویر و محدوده یکسان نباشد، بخشی از فضا خالی میماند.
- Cover: نسبت اصلی تصویر حفظ میشود و محدوده بهطور کامل پوشانده میشود؛ اگر نسبت تصویر و محدوده یکسان نباشد، ممکن است بخشی از لبههای تصویر خارج از محدوده نمایش قرار گیرد.
- عرض: عرض دکمه را تعیین میکند؛ نمونه مقادیر: 50%، 78px و auto.
- ارتفاع: ارتفاع دکمه را با همین الگو تعیین میکند.
انتخاب نوع عملیات
نوع عملیات مشخص میکند پس از فراخوانی دکمه چه کاری انجام شود.
| نوع عملیات | نتیجه |
|---|---|
| اتصال داده | Provider انتخابی را اجرا میکند. |
| باز شدن فرم/نگهدارنده (کانتینر) | یک فرم یا نگهدارنده Popup داخل فرم جاری را باز میکند. |
| گزارش | گزارش انتخابی را نمایش میدهد. |
| قالب چاپ | خروجی قالب چاپ انتخابی را دانلود میکند. |
| شروع فرآیند | فرآیند انتخابی را شروع میکند. |
| مدل تصمیم | مدل تصمیم (DMN) انتخابی را فراخوانی میکند. |
| ارسال اعلان | اعلان را برای کاربران یا نقشهای انتخابشده ارسال میکند. |
| URL | URL تعیینشده را باز میکند. |
| نمایش پیام | پیام را به کاربر نمایش میدهد. |
| بسته شدن فرم/نگهدارنده (کانتینر) | فرم فعلی یا نگهدارنده Popup انتخابی را میبندد. |
| خالی کردن فرم/نگهدارنده (کانتینر) | فرم فعلی یا نگهدارنده انتخابی را خالی میکند. |
اجرای Provider و مدیریت نتیجه عملیات
وقتی نوع عملیات روی اتصال داده قرار میگیرد، دکمه یک Provider را اجرا میکند. در همین عملیات میتوان پارامترهای ورودی، شرط اجرا و رفتارهای بعد از موفقیت یا خطا را تعیین کرد.
پارامترها و شرط اجرای Provider
پارامترهای Provider را میتوان بهصورت فرمولی تعیین و ارسال کرد. فرمول میتواند ترکیبی از مواردی مانند مقدار ثابت، مقدار سیستمی، کنترل و اسکریپت باشد. اگر برای یک پارامتر هیچ فرمولی تنظیم نشود، مقدار null در نظر گرفته میشود.
با تنظیم شرط اجرا میتوان اجرای Provider را مشروط کرد. اگر شرط برقرار باشد Provider اجرا میشود و در غیر این صورت اجرا نمیشود. اگر هیچ شرطی تعیین نشده باشد، Provider همیشه اجرا خواهد شد.
اقدامات پس از موفقیت یا خطا
دو بخش اقدامات پس از پایان رخداد و اقدامات پس از خطا در رخداد ساختار پیکربندی یکسانی دارند. بخش اول پس از اجرای موفق Provider و بخش دوم پس از بروز خطا اجرا میشود. هر بخش میتواند شامل مجموعهای از چند عملیات باشد.
برای هر عملیات میتوان شرط مستقلی تعیین کرد؛ برای مثال فقط وقتی Provider خروجی مشخصی برگرداند، آن عملیات اجرا شود. اگر شرطی تنظیم نشود، عملیات همیشه اجرا خواهد شد.
گزینههای هر عملیات شامل این موارد است:
- نمایش پیام: متن پیام فرمولی است و میتواند ترکیبی از خروجی Provider، مقدار ثابت، مقدار سیستمی و موارد مشابه باشد. نوع نمایش میتواند Toast یا Alert باشد. برای Toast رنگهای سبز، زرد، قرمز، آبی و رنگ سفارشی قابل انتخاباند.
- هدایت به URL دیگر: URL بهصورت فرمولی تعیین میشود و میتواند از خروجی Provider، مقدار ثابت، مقدار سیستمی و موارد مشابه ساخته شود.
- فراخوانی عملیات: میتوان مجموعهای از رویدادهای دیگر را انتخاب کرد و اجرای آنها را روی حالت همزمان یا متوالی قرار داد.
- عملیات فرم: میتوان ادامه عملیات پیشفرض را متوقف کرد، فرم جاری را بست یا همه/بخشی از فیلدها را خالی کرد.
مثال — بررسی کد ملی پیش از ارسال فرم
فرض کنید قبل از ارسال فرم باید صحت کد ملی واردشده توسط کاربر بررسی شود. داخل دکمه یک Provider فراخوانی میشود و کد ملی بهعنوان پارامتر برای آن ارسال میشود. سپس دکمه در بخش فراخوانی رخداد قبل از ارسال فرم انتخاب میشود. پس از اجرای موفق Provider میتوان دو حالت تعریف کرد: اگر خروجی برابر OK باشد پیام موفقیت نمایش داده شود و اگر OK نباشد پیام «کد ملی واردشده نامعتبر است» نمایش داده شود. در حالت عادی، کلیک روی ارسال میتواند باعث ادامه Submit شود حتی اگر کد ملی معتبر نباشد. اگر در شاخه کد ملی نامعتبر گزینه جلوگیری از ادامه عملیات پیشفرض فعال شود، ارسال فرم متوقف خواهد شد.
اگر در عملیات فرم گزینه بستن فرم فعال شود، فرم جاری بسته میشود؛ اگر فرم بهصورت Popup باز شده باشد همان Popup بسته میشود و اگر بهصورت Page باز شده باشد Page فعلی بسته خواهد شد. برای خالیکردن فرم نیز میتوان همه فیلدها یا فیلدهای خاص را انتخاب کرد.
انتصاب خروجی Provider به فیلدها و Sub Form
با کلیک روی انتصاب به فیلد، یک مورد انتصاب جدید به انتهای بخش انتصابها اضافه میشود. در هر انتصاب، خروجی Provider، رکورد موردنظر و فیلد مقصد تعیین میشوند.
خروجی Provider در این سناریو Array of Object است؛ به همین دلیل، وقتی مقصد یک فیلد عادی باشد، باید Index رکوردی که مقدار از آن خوانده میشود مشخص شود.
- اگر فیلد مقصد Sub Form نباشد و در فرم اصلی قرار داشته باشد، مقدار آن مستقیماً تغییر میکند.
- اگر فیلد مقصد خود Sub Form نباشد اما داخل Sub Form قرار داشته باشد، مقدار انتصابشده بهعنوان مقدار پیشفرض آن فیلد استفاده میشود؛ یعنی وقتی کاربر Popup سابفرم را در حالت جدید باز کند، مقدار پیشفرض فیلد برابر مقدار انتصابدادهشده خواهد بود.
- اگر مقصد خود Sub Form باشد، یک فیلد داخل Sub Form نیز انتخاب میشود. در این حالت نیازی به Index نیست؛ کل Array خروجی Provider به Sub Form انتصاب داده میشود و فیلد داخلی انتخابشده در هر رکورد مقدار خروجی انتخابشده را دریافت میکند.
- اگر در انتصاب بعدی همان Sub Form دوباره انتخاب شود و فیلد داخلی دیگری به خروجی دیگری متصل شود، در هر رکورد هر دو فیلد بهصورت همزمان مقدار خواهند گرفت.
وقتی در انتصابها یک Sub Form انتخاب شده باشد، گزینهای برای خالیکردن دادههای قبلی نمایش داده میشود. اگر این گزینه غیرفعال باشد، رکوردهای جدید به رکوردهای قبلی Sub Form اضافه میشوند. اگر فعال باشد، ابتدا رکوردهای قبلی حذف و سپس رکوردهای جدید اضافه خواهند شد.
بازکردن فرم یا نگهدارنده
عملیات باز شدن فرم/نگهدارنده (کانتینر) بر اساس انتخاب طراح فرم، یک فرم یا یک نگهدارنده Popup داخل فرم جاری را نمایش میدهد.
بازکردن فرم و تعیین حالت نمایش
اگر نوع باز شدن روی فرم باشد، این تنظیمات در دسترساند:
- فرم مورد نظر: فرم مقصد را انتخاب میکند.
- نوع نمایش فرم: فرم را در حالت جدید، ویرایش یا نمایش فقطخواندنی باز میکند.
- نوع باز کردن فرم: بین Popup و Page انتخاب میشود. در حالت Page، فرم در تب جدید باز میشود.
- شناسه رکورد فرم: وقتی نوع نمایش ویرایش یا نمایش باشد، شناسه رکوردی که باید باز شود در این گزینه تعیین میشود.
اگر فرم بهصورت Popup باز شود، بخش تنظیمات نمایش Popup نیز در دسترس است:
- اندازه سفارشی: با فعالکردن آن میتوان اندازه Popup را تعیین کرد؛ در غیر این صورت سامانه اندازه پیشفرض را در نظر میگیرد.
- عنوان سفارشی Popup: در صورت نیاز عنوان Popup را مشخص میکند.
در بخش اقدامات پس از پایان رخداد میتوان تعیین کرد بعد از ارسال موفقیتآمیز فرم، یا بعد از اجرای رخدادی در فرم که در اقدامات پس از پایان آن گزینه بستن فرم فعال شده است، چه کاری انجام شود. گزینهها عبارتاند از:
- انتخاب نوع پیام: همان منطق پیام در اقدامات Provider را دارد؛ Toast یا Alert، متن فرمولی و در حالت Toast رنگ سبز، زرد، قرمز، آبی یا سفارشی.
- هدایت به URL دیگر: URL مقصد بهصورت فرمولی تعیین میشود و میتواند از خروجی Provider، مقدار ثابت، مقدار سیستمی و موارد مشابه ساخته شود.
- فراخوانی مجدد فیلدها / رخدادها: رویدادهای موردنظر را برای اجرا انتخاب میکند.
- نحوه اجرا: اجرای رویدادهای انتخابشده را روی همزمان یا متوالی قرار میدهد.
برای ارسال داده به فرم مقصد میتوان در بخش ارسال پارامتر به فرم مجموعهای از پارامترها تعریف کرد. هر پارامتر یک نام و یک مقدار فرمولی دارد. این قابلیت هم در حالت Popup و هم در حالت Page در دسترس است و فرم مقصد میتواند پارامترهای ارسالشده را دریافت کند.
بخش افزودن Query string به URL صفحه فرم فقط زمانی فعال است که فرم در حالت Page باز شود. در این حالت میتوان Query String موردنظر را به URL صفحه فرم اضافه کرد. این قابلیت در حالت Popup در دسترس نیست.
بازکردن نگهدارنده بهصورت Popup
اگر نوع باز شدن روی Popup نگهدارنده باشد، یک نگهدارنده داخل فرم جاری باز میشود. نگهدارنده انتخابشده باید حالت Popup آن فعال باشد.
- انتخاب نگهدارنده: فیلد نگهدارندهای را که باید باز شود مشخص میکند.
- قابل جابهجایی با کشیدن: تعیین میکند Popup با ماوس قابل جابهجایی باشد یا خیر.
- نمایش دکمه بستن: تعیین میکند دکمه بستن در Header Popup نمایش داده شود یا خیر.
- مخفی شدن با کلیک بیرون: اگر فعال باشد، کلیک خارج از Popup آن را میبندد؛ در غیر این صورت کلیک بیرون باعث بستهشدن Popup نمیشود.
- اندازه سفارشی و عنوان سفارشی Popup: همان منطق تنظیمات نمایش Popup فرم را دارند.
گزارش، قالب چاپ و شروع فرآیند
این سه عملیات برای بازکردن گزارش، دانلود خروجی چاپ و شروع یک فرآیند استفاده میشوند.
گزارش؛ مقداردهی پارامترها و کنترل Readonly
در عملیات گزارش، گزینه گزارش مورد نظر گزارش مقصد را مشخص میکند.
اگر گزارش دارای پارامتر باشد، طراح فرم میتواند هر پارامتر را مقداردهی کند:
- اگر پارامتر مقداردهی نشود، کاربر نهایی میتواند مقدار آن را مطابق نیاز خود وارد کند.
- اگر پارامتر توسط طراح فرم مقداردهی شود، کاربر نهایی نمیتواند آن مقدار را تغییر دهد و پارامتر برای او Readonly خواهد بود.
مقداردهی هر پارامتر زمانی فعال میشود که گزینه تنظیم پارامتر مربوط به همان پارامتر فعال شود. سپس فرمولساز نمایش داده میشود و مقدار میتواند از مواردی مانند مقدار ثابت، مقدار سیستمی و کنترل ساخته شود. اگر هیچ مقداری در فرمولساز قرار نگیرد، مقدار null در نظر گرفته میشود.
قالب چاپ؛ انتخاب فرمت و نام فایل
در عملیات قالب چاپ، خروجی قالب چاپ انتخابی برای کاربر دانلود میشود.
- گزارش مورد نظر: گزارشی را که قالب چاپ آن استفاده میشود انتخاب میکند.
- قالب چاپ مورد نظر: قالب چاپ همان گزارش را انتخاب میکند.
- تنظیم پارامترهای قالب چاپ: در صورت نیاز پارامترهای گزارش قالب چاپ را مقداردهی میکند؛ اگر تنظیم نشوند، از پارامترهای پیشفرض استفاده خواهد شد.
- نوع خروجی: یکی از PDF، HTML، CSV یا JPG.
- نام فایل: بهصورت فرمولی تعیین میشود و میتواند ترکیبی از مقدار ثابت، مقدار سیستمی و موارد مشابه باشد.
شروع فرآیند؛ حالت معمولی یا سرویس
در عملیات شروع فرآیند، یک فرآیند انتخاب و اجرا میشود.
- عنوان فرآیند مورد نظر: فرآیندی را که باید شروع شود انتخاب میکند.
- عنوان فرآیند: عنوان شروع فرآیند را با فرمولساز تعیین میکند.
- نحوه شروع فرآیند: روی معمولی یا سرویس قرار میگیرد.
در حالت معمولی، کاربر به صفحه User Task فرآیند هدایت میشود. در این حالت گزینه Target نمایش داده میشود و میتوان بازشدن User Task را روی صفحه فعلی یا صفحه جدید قرار داد.
در حالت سرویس، فرآیند بهصورت سرویس اجرا میشود و میتوان از خروجی فرآیند استفاده کرد؛ منطق استفاده از خروجی مشابه عملیات Provider است.
در بخش پارامترهای فرآیند میتوان پارامترها را با همان منطق فرمولی پارامترهای Provider مقداردهی کرد. بخشهای اقدامات پس از پایان رخداد و اقدامات پس از خطا در رخداد فقط در حالت سرویس نمایش داده میشوند و همان ساختار عملیات اتصال داده را دارند. بنابراین در هر اقدام میتوان شرط اجرا تعیین کرد، پیام Toast یا Alert با متن فرمولی نمایش داد، کاربر را به URL فرمولی هدایت کرد، رخدادهای دیگر را بهصورت همزمان یا متوالی فراخوانی کرد، عملیات فرم را کنترل کرد و خروجی را به فیلدها انتصاب داد.
مدل تصمیم و ارسال اعلان
مدل تصمیم (DMN)؛ استفاده از خروجی با مسیر دستی
در عملیات مدل تصمیم، یک مدل تصمیم فراخوانی میشود و میتوان از خروجی آن استفاده کرد.
- انتخاب مدل تصمیم: مدل تصمیمی را که قبلاً ساخته شده انتخاب میکند.
- انتخاب Decision: Decision مربوط به DMN انتخابشده را مشخص میکند.
- پارامترهای DMN: با همان منطق پارامترهای عملیات اتصال داده و بهصورت فرمولی مقداردهی میشوند.
اقدامات پس از پایان رخداد و اقدامات پس از خطا در رخداد همان ساختار عملیات Provider را دارند. برای هر اقدام میتوان شرط تعیین کرد، پیام Toast یا Alert با متن فرمولی نمایش داد، به URL فرمولی هدایت کرد، رخدادهای دیگر را بهصورت همزمان یا متوالی فراخوانی کرد، عملیات فرم را کنترل کرد و خروجی را به فیلدها انتصاب داد. تفاوت در دسترسی به خروجی DMN است: مسیر خروجی باید بهصورت دستی نوشته شود؛ برای مثال:
Result[0].Id
ارسال اعلان؛ رویه، گیرنده و محتوای اعلان
در عملیات ارسال اعلان، دکمه برای کاربران و نقشهای انتخابشده اعلان ارسال میکند.
در بخش پیکربندی رویههای اطلاعرسانی:
- انتخاب رویههای اطلاعرسانی: رویههای موردنظر را انتخاب میکند. اگر هیچ رویهای انتخاب نشود، رویههای پیشفرض سیستم در نظر گرفته خواهند شد.
- پارامترها: پارامترهای رویههای انتخابشده را مقداردهی میکند. هر رویه پارامترهای خودش را دارد. کاربران و نقشهایی که قرار است اعلان برای آنها ارسال شود نیز در همین بخش مقداردهی میشوند. مقدارها بهصورت فرمولی تنظیم میشوند.
در بخش تنظیمات ارسال اعلان، محتوای اعلان تعیین میشود:
- موضوع: موضوع اعلان بهصورت فرمولی؛
- محتوا: بدنه اصلی اعلان بهصورت فرمولی؛
- URL: آدرسی که دریافتکننده با کلیک روی اعلان به آن هدایت میشود، بهصورت فرمولی.
اقدامات پس از پایان رخداد و اقدامات پس از خطا در رخداد همان منطق عملیات اتصال داده را دارند. در هر اقدام میتوان شرط تعیین کرد، پیام Toast یا Alert با متن فرمولی نمایش داد، به URL فرمولی هدایت کرد، رخدادهای دیگر را بهصورت همزمان یا متوالی فراخوانی کرد و عملیات فرم را کنترل کرد. دو تفاوت این عملیات:
- قابلیت انتصاب به فیلد وجود ندارد؛
- از خروجی عملیات ارسال اعلان در این بخش استفاده نمیشود.
URL و نمایش پیام
هدایت کاربر به URL
در عملیات URL، آدرس مقصد بهصورت فرمولی تعیین میشود. گزینه Target مشخص میکند مقصد روی صفحه فعلی باز شود یا در تب جدید مرورگر.
نمایش پیام بهصورت Toast یا Alert
در عملیات نمایش پیام، متن پیام بهصورت فرمولی تعیین میشود و میتواند ترکیبی از خروجی Provider، مقدار ثابت، مقدار سیستمی و موارد مشابه باشد.
نوع نمایش پیام:
- Toast؛
- Alert.
در حالت Toast، رنگ پیام میتواند سبز، زرد، قرمز، آبی یا سفارشی باشد.
بستن یا خالیکردن فرم و نگهدارنده
بستن فرم جاری یا نگهدارنده Popup
در عملیات بسته شدن فرم/نگهدارنده (کانتینر)، گزینه نوع بستن تعیین میکند فرم فعلی بسته شود یا یک نگهدارنده مشخص در فرم جاری بسته شود.
اگر نوع بستن روی Popup (نگهدارنده) باشد، بخش تنظیمات نگهدارنده نمایش داده میشود و در گزینه انتخاب نگهدارنده، نگهدارنده موردنظر انتخاب میشود.
نکته: نگهدارنده انتخابشده باید حتماً در حالت Popup باشد.
خالیکردن همه یا بخشی از فیلدها
در عملیات خالی کردن فرم/نگهدارنده (کانتینر)، گزینه نوع خالی کردن تعیین میکند فرم فعلی یا یک نگهدارنده مشخص خالی شود.
اگر نوع خالیکردن روی فرم باشد:
- در حالت خالی کردن تمامی فیلدها، همه فیلدهای فرم خالی میشوند.
- در حالت خالی کردن فیلدهای خاص، فقط فیلدهایی که در گزینه انتخاب فیلدها برای خالی کردن مشخص شدهاند خالی میشوند.
اگر نوع خالیکردن روی Popup (نگهدارنده) باشد، همان دو انتخاب برای نگهدارنده وجود دارد: خالیکردن همه فیلدها یا فقط فیلدهای خاص انتخابشده.
آموزشهای مرتبط
- مدل تصمیم (DMN)
- رویهها و قالبهای اطلاعرسانی