ساخت فرم های فرآیند “درخواست سفر”
رابط کاربری بیزاجی
طراحی رابط کاری فرآیند یا همان فرم سومین مرحله از مراحل پیاده سازی فرآیند در بیزاجی است . در بیزاجی تمام یوزرتسک ها و رخدادها قابلیت ساخت و تعریف فرم را دارند. کاربران نهایی از طریق یک پورتال وب به اسم “پورتال کاری” به کارتابل خود دسترسی دارند. در این کارتابل کاربران می توانند تسک هایی که منتظر اقدام از سوی آنها است را باز کنند و از طریق رابطه کاربری یا فرم اطلاعات لازم را در خصوص فرآیند مورد نظر را کسب نموده و اقدام لازم را بر روی فرآیند انجام دهند. ما در مقالات متعددی نحوه طراحی فرم و ابزارهای موجود برای طراحی فرم رو آموزش داده ایم که پیشنهاد می کنیم قبل از مطالعه این مقاله به آموزش مربوط به طراحی فرم در بیزاجی مراجعه کنید.
در ادامه فرم های مربوط به هر یک از رخدادها و یوزرتسک ها را طراحی می کنیم.
رویداد آغازین (Start Event)
رویداد آغازین نقطه شروع یک فرآیند است. چنانچه ما برای رویداد آغازین فرآیند خود فرمی را طراحی کرده باشیم کاربر با استارت یک فرآیند جدید وارد فرم رویداد آغازین می شود. برای ساخت فرم در صفحه اصلی وارد سومین مرحله یعنی define forms میشویم
در صفحه جدید، ما نمودار فرآیندمان را میبینیم که اگر روی هر تسک و یا رویدادی کلیک کنیم میتوانیم فرم مخصوص به آن را بسازیم.
ما برای شروع بر روی start event کلیک میکنیم و وارد صفحه ایجاد فرم مان شویم.
ما در صفحه جدید 3 قسمت مهم تحت عنوان سربرگ های عمودی Data، Controls و Layout که برای اطلاعات بیشتر درباره آنها می توانید اینجا اینجا را کلیک کنید
برای شروع فیلد هدف را در موجودیت درخواست سفر داخل فرم بکشید.
ما فیلد هدف از سفر را احباری میکنیم تا از ساخته شدن مورد(Case)های بیهوده جلوگیری کنیم.
تسک ثبت کردن درخواست سفر
برای ساخت فرم مورد نظرمان در این تسک ما نیاز به 2 گروه داریم. گروه اول “اطلاعات سفر” است که برای ساخت گروه آن اول وارد تسک مورد نظر کلیک میشویم تا فرم ادیتور آن باز شود. به بخش controls میرویم و در قسمت containers گزینه ی group را بر روی فرممان میکشیم و نام آن را انتخاب میکنیم.
اگر بخواهیم فرم مان و یا گروهمان به 2 ستون مساوی تقسیم کنیم به قسمت layout میرویم و گزینه %50 %50 را بر روی گروه یا فرم مورد نظر میکشیم. در موقعیت کنونی ما بر روی گروه اطلاعات سفر این layout را میکشیم. یک دسته 2 ستونه با یک ردیف و دو دسته 2ستونه با دو ردیف و یک فیلد ساده 100 درصد درست میکنیم.
فیلد تاریخ درخواست و متقاضی را از روی حالت editable بر میداریم. برای استفاده از cascading combos شهر مبدا را انتخاب و کلیک راست میکنیم. سپس گزینه convert to را میزنیم و cascading combo را انتخاب میکنیم. همین عمل را برای شهر مقصد نیز انجام میدهیم.
Display type را در فیلد هدف روی حالت format قرار میدهیم و is extended را فعال میکنیم. تمام فیلد ها را به جز آدرس پیشنهادی بر روی yes قرار میدهیم. اکنون کالکشن مخارج را در گروه مخارج میکشیم. بر روی edit columns کلیک کرده و ستون توضیحات و مقدار را به آن اضافه میکنیم. در همان حالت بر روی مقدار کلیک میکنیم و operator را در totalizer بر روی sum میگذاریم. ok را کلیک و سپس advanced را کلیک میکنیم و گزینه inline add و inline edit و allow in delete option را فعال میکنیم.
حالا نوبت پیکر بندی actions and validation میرسد. برای اطلاعات بیشتر درباره actions and validations به اینجا مراجعه کنید. بر روی آن کلیک کنید و add action را بزنید. میخواهیم زمانی که متقاضی نیاز به رزرو هتل داشت، فیلد آدرس پیشنهادی نمایان شود و اگر نیاز به رزرو هتل نداشت آدرس پیشنهادی پنهان شود. حالت زیر این عمل را انجام میدهد
اکنون به validation میرویم و یک validation اضافه میکنیم. اگر تاریخ رفت بزرگتر از تاریخ برگشت باشد پیام اروری بالا بیاید.
بر روی table کلیک کنید و در قسمت advanced بر روی table validation کلیک کنید. ما میخواهیم کاری کنیم که متقاضی حداقل یک ردیف از مخارج داشته باشد. برای این کار یک متغیر تعریف میکنیم ردیف های جدول را و اگر مساوی صفر باشد ارور دهد.
گزینه show multiple validation را کلیک میکنیم و یک validation جدید اضافه میکنیم. میخواهیم قانونی بگذاریم که هر خرج کمتر از 1000 تا باشد.
تنها یک validation دیگر برای فرم مانده است. بر روی گزینه advanced بروید. در قسمت minimum بر روی آیکونی به شکل ex کلیک میکنیم. بر روی new بزنید و کلیک راست بر صفحه بزنید add expression را کلیک کنید. یک expression به صفحه اضافه میشود. داخل آن شوید. در پنجره جدید بر روی function بروید و در آن بر تابع today را انتخاب کنید. میتوانید آن را جستجو نیز کنید.
همین کار را بر روی تاریخ برگشت هم انجام میدهیم.
تسک تایید درخواست سفر
برای این فرم جدیدمان میخواهیم که از فرم های قابل استفاده کار کنیم. یعنی فرمی که درون آن فیلد هایی هستند که به مقدار نامحدود قابل استفاده هستند. برای این کار وارد فرم فرآیند در قسمت فرم تسک مورد نظر میرویم و گزینه reusable forms را کلیک راست کرده و new form را بزنید. در اینجا میتوانیم فرم قابل استفاده را درست کنیم. فرم قابل استفاده ما شامل فیلد های زیر است
اکنون Actions و validations های فرم قابل استفاده را باید تعریف کنیم. بر روی گزینه ی آن کلیک کنید و حالتی قبلی برای visibility که در فرم قبل استفاده کردیم را دوباره در اینجا به کار میبریم. گروه را بر روی not editable بگذارید و فرم را سیو کنید تا وارد فرم تسک اصلی شویم. فرم قابل استفاده را بر روی فرم اصلی خود میکشیم و پایین آن یک گروه با نام اطلاعات تایید درست میکنیم و فیلد های زیر را به آن اضافه میکنیم
در آخر collection مخارج را اضافه میکنیم تا یک جدول درست کنیم. بر آن کلیک میکنیم و گزینه edit columns را میزنیم و در گزینه data، توضیحات، مقدار و تایید شده بودن یا نبودن را به جدولمان اضافه میکنیم. بر روی ستون تایید شده کلیک میکنیم و گزینه required را میزنیم ولی برای بقیه نه. همچنین گزینه توضیحات و مقدار نباید editable باشد. بعد از آن دوباره بر روی جدول کلیک کنید و وارد گزینه advanced شوید. گزینه delete option و add options را غیر فعال کنید.
و سپس فیلد توضیحات به پایین گروه اضافه کنید و روی حالت vertical بگذارید.
سپس یک action جدید درست میکنیم که اگر درخواست تایید شود قابلیت دیدن گروه مخارج فعال شود و گزینه ی توضیح حتما required نباشد. در غیر اینصورت چیزی که گفتیم برعکس باشد. به عکس زیر دقت کنید.
تسک طراحی رزرو هتل و هواپیما
فرم قابل استفاده قبلی را دوباره در این فرم استفاده میکنیم و یک گروه به اسم هتل با %layout 50%50 اضافه کرده و فیلد های زیر را از موجودیت هتل اضافه میکنیم.
در گزینه check in وارد قسمت advanced میشویم و minimum date را با استفاده از expression، گزینه today میزنیم. اکنون بیاید برای تاریخ چک این و چک اوت یک validation درست کنیم. ما میخواهیم یک validation بسازیم که تاریخ چک این زود تر از تاریخ چک اوت باشد. برای همین یک validation اضافه میکنیم که قوانین زیر را دارد. همچین اگر این اتفاق افتاد به ما پیامی دهد که «تاریخ چک این باید از تاریخ چک اوت زودتر باشد». به تصویر زیر توجه کنید
ویجت گوگل مپ را در قسمت ویجت ها در control نصب میکنیم و آن را به گروه هتل اضافه میکنیم.
گروه جدیدی به نام بلیط هواپیما اضافه میکنیم و کالکشن پرواز ها را درون آن اضافه میکنیم. ستون توضیحات و شماره پرواز را به جدول اضافه میکنیم. بر روی کالکشن کلیک میکنیم و وارد قسمت advanced میشویم و Inline add را غیر فعال کرده و در گزینه add form گزینه new form را میزنیم تا یک صفحه فرم خالی برای ساختن درست شود. فیلد های زیر را اضافه کنید و در گزینه تاریخ ها در هر دو show time را در قسمت فورمت فعال کنید.
یک اسم به آن اضافه کنید به عنوان مثال «اضافه کردن بلیط پرواز» و آن را سیو کنید. اکنون دوباره به جدول کلیک کنید و در قسمت add form فرمی که الان ساختیم را اضافه کنید و به قسمت table validation بروید. میخواهیم قانونی بگذاریم که حداقل ۱ پرواز وجود داشته باشد. اسم آن را بسازید و سپس قوانین زیر را پیاده سازی کنید.
اکنون بر روی گروه hotel بزنید و یک expression برای visibility آن درست کنید. گزینه new را بزنید و سپس در گزینه ی اول طبق عکس رزرو کردن هتل که بولین هست true بود صفحه نمایش داده شود.
برای بلیط پرواز هم همین کار را میکنیم با این تفاوت که رزرو پرواز باید فعال باشد
تسک صدور پیش پرداخت سفر
دوباره همانند فرم تسک قبل فرم قابل استفاده «اطلاعات سفر» را استفاده میکنیم. گروه دیگری به نام اطلاعات مخارج میسازیم و جدول مخارج را درون آن اضافه میکنیم و ستون توضیحات، مقدار و تایید شده را به آن اضافه میکنیم و جدول را not edible میکنیم. در پایین جدول مخارج در گروه، فیلد های زیر را اضافه میکنیم.
بر روی رسید پیش پرداخت نقدی کلیک راست کنید و گزینه convert to document template کلیک کنید. سپس دوباره بر روی فیلد و در قسمت basic بر روی configuration wizard کلیک کنید. بر روی علامت + در جلوی template کلیک کنید تا وارد صفحه جدیدی شوید. در اینجا یک نام درست کنید و یک قالبی با فرمت ورد که از قبل ساخته اید انتخاب کنید.
قالب
ما برای ساخت سند های پویا در بیزاجی میتوانیم از تگ ها استفاده کنیم. به عنوان مثال اگر بخواهیم سندی بسازیم که نام متقاضی را با شهر مبدا و شهر مقصد بر اساس پرونده مورد نظر خود به شکل پویا ساخته شود. ما با تگ ها باید اکنون متغیرها را که در [] میگذاریم تعریف کنیم. به عکس صفحه ی بعد توجه کنید.
در سند بالا همانطور که میبینید تگ هایی را ساخته ایم. توجه داشته باشید foreach برای ساخت جداول هایی با چند ردیف استفاده میشود و تگ [End] برای نشان دادن پایان جدول است.
برمیگردیم به گزینه ی انتخاب template در فرم ها. آن را انتخاب کنید.
میتوانید ببینید که بیزاجی تگ های مارا در سمت راست پنجره تشخیص داده و نشان میدهد.
اکنون در پنجره document configuration به گزینه mapping میرویم. با mapping میتوانیم داده خود را به تگ های سند وصل کنیم تا پویا شود. اولین کار نام متقاضی را وصل میکنیم به تگ مورد نظر.
نام شهر مقصد را نیز به یکدیگر وصل میکنیم.
اکنون بر روی آیکون تنظیمات کلیک کنید و کالکشن فیلتر را بر روی صفحه بکشید و سپس کالکشن expenses را به فیلتر وصل کنید.
وقتی وصل میکنیم صفحه جدیدی باز میشود. ما در این فیلتر میگوییم که اگر این اتفاق افتاد ما ادامه میدهیم به لینک کردن داده. ما میگوییم که اگر مخارج تایید شده است به لینک کردن تگ ها ادامه میدهیم.
بعد از آن، ما فیلد های مربوط به کالکشن مخارج را به تگ ها وصل میکنیم.
برای استفاده از تگ امروز بر روی ایکون تنظیمات کلیک میکنیم و today date را میکشیم بر صفحه تا یک پنجره جدید باز شود. short date را میزنیم و آن را به today وصل میکنیم.
در آخر total advance را نیز به یکدیگر وصل کنید. سیو کنید و پنجره را ببندید.
گزینه Enable “send as attachment” icon را فعال کنید. فرم را سیو کنید و ببندید.
رویداد لغو درخواست
بر روی رویداد مورد نظر کلیک کنید. فرم قابل استفاده اطلاعات سفر را در بالا فرم بگذارید سپس در پایین آن گزینه لغو درخواست را اضافه کنید. بر روی فیلد کلیک کنید و display as را به عنوان check box انتخاب کنید و حتما required باشد. فرم را سیو کنید و ببندید.