
مثال گردش کار با Nintex
ژانویه 25, 2017
خطاهای احتمالی در نصب شیرپوینت ۲۰۱۶
ژوئن 17, 2017نرمافزار فرآیندساز نینتکس یکی از ابزارهای ساخت و مدیریت فرآیندها در شیرپوینت است. بعد از چندین سال تجربه در زمینه پیادهسازی فرآیندها با نینتکس و شیرپوینت، حالا در این مطلب، قصد داریم به نکات و ترفندهایی اشاره کنیم که به توسعهدهندگان نینتکس کمک میکند تا پیادهسازی، خطایابی و سرعت توسعه را افزایش دهند. از طریق لینک زیر میتوانید این مقاله را به صورت کامل در یک فایل PDF دانلود کنید:
این نکات و ترفندها عبارتند از:
این نکات و ترفندها عبارتند از:
1برچسبگذاری مناسب
یک فرآیند خوب و کارآمد، فرآیندی است که بهطور مناسب و صحیح مستند شده باشد و امکان دنبال کردن گامهای بعدی فرآیند وجود داشته باشد و اگر کاربر دیگری قصد توسعه آن را داشت، به راحتی متوجه روند کار شود. یکی از بهترین راهها برای این کار استفاده ازعنوان و توضیح مناسب برای هر اکشن است.
هر اکشن ۴ برچسب دارد که در Workflow Designer قابل ویرایش است:
(Action title (top
Left text
Right text
Bottom text
شما میتوانید به راحتی با کلیک روی هر کدام از اکشنها، توضیحات مورد نظر خود را در جای مناسب درج کنید.
هر اکشن ۴ برچسب دارد که در Workflow Designer قابل ویرایش است:
(Action title (top
Left text
Right text
Bottom text
شما میتوانید به راحتی با کلیک روی هر کدام از اکشنها، توضیحات مورد نظر خود را در جای مناسب درج کنید.
2بکاپگیری به کمک Export
در فرآیندساز نینتکس Nintex از گزینه Export برای کپی کردن یک فرآیند از محیطی به محیط دیگر استفاده میشود. با Export فرآیند فایلها با پسوند .nwfبا حجم بسیار کمی ذخیره میشوند و به راحتی میتوان آن را ایمیل کرد و یا در جای دیگر کپی نمود. از آنجایی که فایلها بسیار کوچک هستند، اغلب آنها را میتوان به مدت طولانی در یک فایل ذخیره کرد.
یکی دیگر از استفاده های Export، تهیه پشتیبان از فرآیند است. بهترین کار در هنگام طراحی فرآیند این است که از نسخه فعلی فرآیند، قبل از هرگونه تغییرات عمده یک نسخهی پشتیبان تهیه کنیم. این کار تضمین میکند که طراحان فرآیند در صورت تمایل بتوانند فرآیند را به نسخههای قبلی بازگردانند. فایل تهیه شده به کمک Export میتواند در یک پنجره مرورگر جداگانه، به منظور مقایسهی دو طرفه باز شود. بهتر است برای یکپارچگی مستندات و نسخهبندی مناسب، الگوی نامگذاری مناسبی برای فایلهای پشتیبان داشته باشیم. به این صورت که با هر اکسپورت کردن، فایل را به صورت زیر نامگذاری کند. (به عنوان مثال، WorkflowName_VersionNumber_ Date_Time.nwf).
یکی دیگر از استفاده های Export، تهیه پشتیبان از فرآیند است. بهترین کار در هنگام طراحی فرآیند این است که از نسخه فعلی فرآیند، قبل از هرگونه تغییرات عمده یک نسخهی پشتیبان تهیه کنیم. این کار تضمین میکند که طراحان فرآیند در صورت تمایل بتوانند فرآیند را به نسخههای قبلی بازگردانند. فایل تهیه شده به کمک Export میتواند در یک پنجره مرورگر جداگانه، به منظور مقایسهی دو طرفه باز شود. بهتر است برای یکپارچگی مستندات و نسخهبندی مناسب، الگوی نامگذاری مناسبی برای فایلهای پشتیبان داشته باشیم. به این صورت که با هر اکسپورت کردن، فایل را به صورت زیر نامگذاری کند. (به عنوان مثال، WorkflowName_VersionNumber_ Date_Time.nwf).
3نام مناسب برای متغیرها
متغیرهای فرآیند (Workflow Variables)، برای نگهداری موقت اطلاعات در هنگام اجرای فرآیند استفاده میشوند. طراحان فرآیند این امکان را دارند که به تعداد مورد نیاز خودشان متغیر تعریف کنند. برای این کار میتوانند در ریبون بالای صفحه در قسمت تنظیمات از گزینهی Workflow variable استفاده کنند. همچنین برای پیکربندی هر اکشن در همان قسمت میتوانند یک متغیر تعریف نمایند.
تعداد زیاد متغیرهای ساخته شده در یک فرآیند میتواند دردسر ساز باشد. برای رسیدن به یک راه خوب جهت سازماندهی این متغیرها و دستیابی سریع به آنها، میتوانید به صورت زیر عمل کنید:
نمونه مثال نامگذاری متغیرها: (نوع متغیر – نام متغیر)
تعداد زیاد متغیرهای ساخته شده در یک فرآیند میتواند دردسر ساز باشد. برای رسیدن به یک راه خوب جهت سازماندهی این متغیرها و دستیابی سریع به آنها، میتوانید به صورت زیر عمل کنید:
نمونه مثال نامگذاری متغیرها: (نوع متغیر – نام متغیر)
- متن تک خطی – txtFullName
- شماره - numDaysOffRequested
- تاریخ و زمان - dtStartDate
- شخص یا گروه – pgContractApprovers
- عدد صحیح - intLoopCounter
- Collection - colltemsImpacted

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

- طراحان میتوانند یک اکشن را از منوی مربوط به اکشنهای فرآیند واقع در سمت راست یا چپ کشیده و در هر نقطه ممکن در محیط طراحی فرآیند مورد نظر رها سازند.
- همچنین با کلیک روی نقطههای رها سازی اکشنها و انتخاب گزینه ایجاد اکشن از داخل منو و سپس انتخاب اکشن مورد نظر از منوهای دستهبندی شده میتوان اکشنها را اضافه کرد.

5انتقال یک وظیفه (Task) از کاربر غیرفعال به کاربر فعال
اگر یکی از کارکنان سازمان را ترک کند، چه اتفاقی بر سر فرآیندهای سازمان میافتد؟
در زمان غیبت آنها وظیفههای جدید واگذار شده به ایشان چه میشوند؟
برای اینگونه مسائل، میتوان به راحتی با یک فرآیند ساده در نینتکس این مشکل را حل کرد. ادمین شیرپوینت میتواند با فعال کردن گزینه " Long Term Delegation Site Administrators " در تنظیمات نینتکس این مشکل را رفع کند. ( به طور پیشفرض این گزینه غیرفعال است.) برای این کار، مراحل زیر را دنبال کنید:
در زمان غیبت آنها وظیفههای جدید واگذار شده به ایشان چه میشوند؟
برای اینگونه مسائل، میتوان به راحتی با یک فرآیند ساده در نینتکس این مشکل را حل کرد. ادمین شیرپوینت میتواند با فعال کردن گزینه " Long Term Delegation Site Administrators " در تنظیمات نینتکس این مشکل را رفع کند. ( به طور پیشفرض این گزینه غیرفعال است.) برای این کار، مراحل زیر را دنبال کنید:
- به قسمت SharePoint Central Administration بروید.
- به بخش Nintex Workflow Management بروید.
- روی لینک "Global settings" کلیک کنید.
- در پایین صفحه به دنبال گزینه "Site Administrators Long Term Delegation" باشید.
- در تنظیمات، قسمت "Allow site administrators to set longterm delegation for other users:" را به گزینهی Yes تغییر دهید.
- دکمه Ok را بزنید.
6واگذاری موقت وظیفه به کاربر دیگر
در صورتی که فردی در یک سازمان به مرخصی یا تعطیلات برود فرآیندهای سازمان باید همچنان ادامه یابد و به جلو پیش برود. در مورد فرآیندهای اتوماتیک هم همین اتفاق خواهد افتاد و در نبود کاربر باید فرآیندها انجام شوند.
نینتکس فرآیندساز، یک گزینه برای واگذاری وظیفه جدید به کاربر دیگر در غیاب کاربر اصلی، پیش روی شما میگذارد.
(تفاوت این گزینه با گزینهی قبلی "Long Term Commitment" این است که در حالت قبل به طور کلی فرآیند مربوط به کاربر به کاربر دیگری انتقال مییافت. ولی در اینجا صرفا به طور موقت در بازهی زمانی خاصی آن را به فرد دیگری تحویل میدهیم.)
گزینهی Task Delegation به کاربر این اجازه را میدهد تا وظیفه جدیدی به همکار دیگری در یک زمان خاصی تخصیص دهد. به این طریق کاربران میتوانند مشخص کنند که در غیاب آنها چه کسی، در چه بازه ی زمانی و در چه محدودهای از اختیارات به فرآیندهای سازمان دسترسی داشته باشد.
مراحل زیر را دنبال کنید:
نینتکس فرآیندساز، یک گزینه برای واگذاری وظیفه جدید به کاربر دیگر در غیاب کاربر اصلی، پیش روی شما میگذارد.
(تفاوت این گزینه با گزینهی قبلی "Long Term Commitment" این است که در حالت قبل به طور کلی فرآیند مربوط به کاربر به کاربر دیگری انتقال مییافت. ولی در اینجا صرفا به طور موقت در بازهی زمانی خاصی آن را به فرد دیگری تحویل میدهیم.)
گزینهی Task Delegation به کاربر این اجازه را میدهد تا وظیفه جدیدی به همکار دیگری در یک زمان خاصی تخصیص دهد. به این طریق کاربران میتوانند مشخص کنند که در غیاب آنها چه کسی، در چه بازه ی زمانی و در چه محدودهای از اختیارات به فرآیندهای سازمان دسترسی داشته باشد.
مراحل زیر را دنبال کنید:
- بر روی نام کاربری خود در شیرپوینت کلیک کنید.
- در منو به گزینهی Nintex Workflow 2013 بروید و سپس "Task Delegation" را انتخاب کنید.

- بر روی لینک "Delegate tasks to a user between specific dates" کلیک کنید.
- در صفحهی باز شدهی Add Delegation اطلاعات زیر را مشاهده میکنید. به ترتیب زیر عمل کنید:
- From the beginning of - برای تعیین شروع تاریخ واگذاری وظیفه میتوان از date picker برای انتخاب تاریخ کمک گرفت.
- Until the end of – تاریخ پایان واگذاری وظیفه. میتوان از date picker برای انتخاب تاریخ کمک گرفت.
- Delegate to – کاربری که وظیفه به او واگذار میشود. بر روی گزینه lookup کلیک و کاربر مورد نظر خود را سرچ کنید.
- Scope – اطمینان از واگذاری وظیفه فقط در همین سایت.
- برای ذخیره روی ok کلیک کنید.

7اجرای فرآیند
پس از طراحی و تنظیمات فرآیند به مرحلهی Save و Publish و اجرای آن میرسیم.
هر فرآیند میتواند به روشهای مختلفی اجرا و run شود:
- دستی
- با اجرای یک آیتم خاص یا
- .تغییر یک آیتم خاص.
یک تنظیم شناخته شده برای شروع فرآیند start option Conditional است. این گزینه نیاز به یک شرط دارد که اگر شرط بر قرار بود فرآیند اجرا میشود در غیر این صورت هرگز اجرا نمیگردد. مراحل زیر را دنبال کنید:
- با اجرای یک آیتم خاص یا
- .تغییر یک آیتم خاص.
یک تنظیم شناخته شده برای شروع فرآیند start option Conditional است. این گزینه نیاز به یک شرط دارد که اگر شرط بر قرار بود فرآیند اجرا میشود در غیر این صورت هرگز اجرا نمیگردد. مراحل زیر را دنبال کنید:
- Workflow designer را باز کنید.
- در ریبون منو بر روی تنظیمات فرآیند کلیک کنید.
- با حرکت موس به پایین گزینهی " start when items are created" یا "start when items are modified" مشاهده میکنید که برای تنظیمات لیست وکتابخانه (library) در شیرپوینت در نظر گرفته شده است.
- گزینهی conditional را انتخاب کنید سپس روی دکمهی conditions کلیک کنید.
- کوئری مورد نظر خود را بسازید و ذخیره کنید.
- دوباره در صفحه اصلی دخیره کنید.
8گروهبندی اکشن ها
با فرآیندساز نینتکس میتوان فرآیندهای پیچیده با تعداد زیادی اکشن را ایجاد کرد. میتوان اکشنی را اضافه کرد، گسترش داد و یا طول و عرض آن را کم و زیاد کرد. اما زمانیکه فرآیند کسب و کار بخواهد تغییر کند، مرور فرآیند و تغییرات آن برای طراحان، کار زمانبری خواهد بود.
Action set شرایطی را فراهم آورده است که میتوان به کمک آن تعدادی از اکشنها را در یک گروه جمعآوری کرد، به طوری که به راحتی میتوان آن را جابهجا، کوچک، بزرگ و یا کپی کرد.
مزایای action set
Action set شرایطی را فراهم آورده است که میتوان به کمک آن تعدادی از اکشنها را در یک گروه جمعآوری کرد، به طوری که به راحتی میتوان آن را جابهجا، کوچک، بزرگ و یا کپی کرد.
مزایای action set
- گروهی از اکشنهای ست شده میتواند به صورت snippet ذخیره شود و سپس در فرآیند دیگری استفاده شود.
- اکشن ستها میتوانند به راحتی در بخشهایی از فرآیند حرکت کنند.
- زمانی که فرآیند پیچیده است، اکشن ستهای گسترده میتوانند مینیمایز (minimize) شوند.
- کل یک گروه از اکشنها را میتوان کپی کرد و در جای دیگری از فرآیند به کار برد.
9اکشنهای شرطی
در بسیاری از مواقع یک فرآیند مسیری را بر حسب نتایج یک شرط منطقی طی میکند. در این شرایط Nintex اکشن Set a condition را پیشنهاد میکند که با آن، یک عبارت منطقی شرطی را ارزیابی میکند و فرآیند را بر اساس عبارت شرطی که true و یا false باشد، هدایت مینماید.
هر مسیری که فرآیند طی میکند، معمولا مجموعه مختلفی از اکشنها را اجرا میکند، اگرچه گاهی اوقات یکی از این انشعابها نیازی به گرفتن اکشن ندارد و خالی رها میشود.
یکی از بهترین اعمال در این مورد، استفاده از اکشن Run If بجای اکشن Set a Condition است. اکشن Run If اکشنها را در یک مخزن منطقی گروهبندی میکند که فقط در صورتی که عبارت شرطی برابر با true باشد اجرا میشود. این گروه از اکشنها در صورتیکه عبارت شرطی برابر با false باشد نادیده گرفته میشوند. طراحان فرآیند عبارت شرطی را با بهوسیله صفحه پیکربندی اکشنها، تنظیم میکنند.
اکشن Run If ویژگیهای اکشنهای Set a Condition و Action Set را درون یک اکشن ترکیب میکند. در واقع Run if ترکیبی از دو اکشن Set a Condition و Action Set در قالب یک اکشن است.

هر مسیری که فرآیند طی میکند، معمولا مجموعه مختلفی از اکشنها را اجرا میکند، اگرچه گاهی اوقات یکی از این انشعابها نیازی به گرفتن اکشن ندارد و خالی رها میشود.
یکی از بهترین اعمال در این مورد، استفاده از اکشن Run If بجای اکشن Set a Condition است. اکشن Run If اکشنها را در یک مخزن منطقی گروهبندی میکند که فقط در صورتی که عبارت شرطی برابر با true باشد اجرا میشود. این گروه از اکشنها در صورتیکه عبارت شرطی برابر با false باشد نادیده گرفته میشوند. طراحان فرآیند عبارت شرطی را با بهوسیله صفحه پیکربندی اکشنها، تنظیم میکنند.
اکشن Run If ویژگیهای اکشنهای Set a Condition و Action Set را درون یک اکشن ترکیب میکند. در واقع Run if ترکیبی از دو اکشن Set a Condition و Action Set در قالب یک اکشن است.

10افزایش انعطافپذیری
برای تعامل بین کاربران در یک فرآیند کسب و کار، اکشنهای متنوعی وجود دارد. دو مورد از این اکشنها Assign Flexi Task و Request Approval است. هر دوی این اکشنها در فرآیند، امکان ساخت و تخصیص وظیفه به یک یا چند کاربر و امکان ارسال نوتیفیکیشن به کاربران و ایجاد فرم برای تایید درخواست را فراهم میکنند.
اکشن Assign Flexi Task با یک گام بیشتر انجام میشود. همچنین این اکشن قابلیت یادآوری دارد. طراحان فرآیند ترجیح میدهند از Assign Flexi Task استفاده کنند، زیرا قابلیت انعطافپذیری بیشتری در تغییرات فرایندهای پیچیده و بهروزرسانی فرایندها، به آنان می دهد.
مزایای استفاده از Assign Flexi Task :
اکشن Assign Flexi Task با یک گام بیشتر انجام میشود. همچنین این اکشن قابلیت یادآوری دارد. طراحان فرآیند ترجیح میدهند از Assign Flexi Task استفاده کنند، زیرا قابلیت انعطافپذیری بیشتری در تغییرات فرایندهای پیچیده و بهروزرسانی فرایندها، به آنان می دهد.
مزایای استفاده از Assign Flexi Task :
- Reminders and Escalation functionality – این قابلیت در Request Approval وجود ندارد. حتی اگر به این قابلیت نیاز ندارید، استفاده از آن تمرین خوبی بوده و به کاهش تغییرات در آینده کمک میکند.

- امکان دو یا چند خروجی از یک تسک: اکشن Request Approval فقط تایید یا رد میکند، بنابراین امکان اضافه یا تغییر خروجی از اکشن را ندارد. درحالی که استفاده از Assign Flexi Task این اجازه را به ما میدهد که چند خروجی بگیریم.

- امکان درج کامنت در خروجی یک فرآیند: با استفاده از اکشن Flexi Task میتوان علاوه بر گزینه تایید یا رد برای درخواستکننده کامنت هم گذاشت. کامنتگذاری میتواند اختیاری، اجباری یا غیرفعال باشد. این امکان در Request Approval وجود ندارد.


- امکان رفتارهای متعدد برای تعیین یک خروجی- طراحان میتوانند برای رد یا تایید یک فرایند رفتارهای متفاوتی در نظر بگیرند. به طور مثال اولین شخصی که نظر خود را اعلام کرد فرایند تکمیل شود. یا اینکه همه افراد باید نظر خود را اعلام کنند سپس فرآیند پایان یابد.

11Snippet
قابلیت استفاده مجدد، یکی از ویژگیهای کلیدی فرآیندساز نینتکس است. اغلب اوقات، طراحان نیاز به اکشنهای خاص و یا گروهی از اکشنها، و به کارگیری در دیگر فرآیندها دارند. Nintex قابلیت ذخیره مجموعهای از اکشنهای از پیش تعیینشده به عنوان یک Snippet را فراهم میکند. Snippet را میتوان مانند هر عمل فرآیند، به فرآیند دیگری اضافه کرد.
برای شروع کار مراحل زیر را دنبال کنید:
ذخیرهی کل فرآیند
بر روی منوی آبشاری دکمه Save کلیک کنید.
Save as Snippet را انتخاب کنید.
در قسمت نام فیلد، یک اسم مناسب انتخاب کنید و سپس Submit کنید. حالا تمام اکشنهای فرآیند در یک Snippet ذخیره شدهاند.
این snippet در My Snippets مشاهده میشود.
دخیرهی Action set
روی منوی آبشاری و گزینه Action set کلیک کنید.
Save as snippet را انتخاب کنید.
در قسمت نام فیلد، یک اسم مناسب انتخاب کنید و سپس Submit کنید. حالا تمام اکشنهای داخل مجموعه به همراه متغیرهای استفاده شده در آن در Snippet ذخیره شدهاند.
این snippet در My Snippets مشاهده میشود.
هنگامی که یک snippet ذخیره شده است، میتوان آن را به فرآیند فعلی و یا هر فرآیند دیگری در مجموعه سایتهای مشابه مانند هر عمل فرآیند دیگر اضافه کرد. به سادگی به دسته My snippet در جعبه ابزار عملیات فرآیند رفته و با کشیدن snippet به یک نقطه فرآیند، فرآیند موردنظر خود را طراحی کنید.
به همین ترتیب، طراحان میتوانند snippet را با کلیک کردن بر روی نقطه اتصال بین اکشنها و سپس گزینه Insert action و رفتن به گزینه منو snippet My و کلیک کردن بر روی نام snippet اکشن ذخیره شدهی خود، به فرآیند اضافه کنند.
برای حذف هر Snippet میتوان در جعبه ابزار آن را انتخاب کرد و بر روی آن راست کلیک کرد. حالا گزینه حذف را مشاهده میکنید.

برای شروع کار مراحل زیر را دنبال کنید:
ذخیرهی کل فرآیند
بر روی منوی آبشاری دکمه Save کلیک کنید.
Save as Snippet را انتخاب کنید.
در قسمت نام فیلد، یک اسم مناسب انتخاب کنید و سپس Submit کنید. حالا تمام اکشنهای فرآیند در یک Snippet ذخیره شدهاند.
این snippet در My Snippets مشاهده میشود.
دخیرهی Action set
روی منوی آبشاری و گزینه Action set کلیک کنید.
Save as snippet را انتخاب کنید.
در قسمت نام فیلد، یک اسم مناسب انتخاب کنید و سپس Submit کنید. حالا تمام اکشنهای داخل مجموعه به همراه متغیرهای استفاده شده در آن در Snippet ذخیره شدهاند.
این snippet در My Snippets مشاهده میشود.
هنگامی که یک snippet ذخیره شده است، میتوان آن را به فرآیند فعلی و یا هر فرآیند دیگری در مجموعه سایتهای مشابه مانند هر عمل فرآیند دیگر اضافه کرد. به سادگی به دسته My snippet در جعبه ابزار عملیات فرآیند رفته و با کشیدن snippet به یک نقطه فرآیند، فرآیند موردنظر خود را طراحی کنید.
به همین ترتیب، طراحان میتوانند snippet را با کلیک کردن بر روی نقطه اتصال بین اکشنها و سپس گزینه Insert action و رفتن به گزینه منو snippet My و کلیک کردن بر روی نام snippet اکشن ذخیره شدهی خود، به فرآیند اضافه کنند.
برای حذف هر Snippet میتوان در جعبه ابزار آن را انتخاب کرد و بر روی آن راست کلیک کرد. حالا گزینه حذف را مشاهده میکنید.

12گزارشگیری با استفاده از Log in history list
قابل مشاهده بودن فرآیند امری ضروری برای دنبال کردن و نظارت بر روند کارها است. تمامی کاربران و طراحان نیاز دارند که بدانند فرآیند در چه مرحلهای قرار دارد و به کدام نقطه میتواند برود. دادههای قبلی فرآیند وارد عملیات عادی شده و شمارش میشوند تا ثابت کنند که اهداف کار از ابتدا تا کنون حاصل شدهاند. نینتکس اکشنی را به اسم Log in history list برای پیگیری رد فرآیند و مشاهده انجام یا بروز خطا در هر مرحله برای هر اکشن ارائه کرده است. طراحان فرآیند باید اکشن Log in history list را در نقاط چندگانه در فرآیندها استفاده کنند تا پیغام سفارشی شده را در بخش پیغام فرآیند و وضعیت فرآیند ثبت کنند.
این پیغامهای ثبتشده میتوانند طوری ساخته شوند که شامل متن و ارجاعیات وارد شده به دادههای فرآیند باشند تا متوجه شویم که در اجرای فرآیند، دادههای درون فرآیند مقدار صحیح گرفته است یا خیر. این عمل یک کار بسیار حیاتی در طراحی فرآیندها جهت ثبت کردن پیغامهایی برای بهبود روند دنبال کردن رد فرآیند و عیبیابی اشکالات فرآیند است.
این پیغامهای ثبتشده میتوانند طوری ساخته شوند که شامل متن و ارجاعیات وارد شده به دادههای فرآیند باشند تا متوجه شویم که در اجرای فرآیند، دادههای درون فرآیند مقدار صحیح گرفته است یا خیر. این عمل یک کار بسیار حیاتی در طراحی فرآیندها جهت ثبت کردن پیغامهایی برای بهبود روند دنبال کردن رد فرآیند و عیبیابی اشکالات فرآیند است.





