معین کننده ها ابزاری برای دسته بندی مفاهیم گوناگون فرایندها در سطح پایگاه هستند برای مثال فیلدهای از نوع معین کننده، فیلدهایی هستند که مستقل از گردش کار و در سطح پایگاه تعریف می شود و به همین خاطر این نوع از فیلدها می تواند در هر گردش کار موجود در پایگاه استفاده شود.
در این مطلب به کاربرد معین کننده ها در دسته بندی اجزای گردش کارها (وظایف و وضعیتها) به منظور مدیریت اختیارات کاربران در سطح پایگاه می پردازیم. به دلایلی که در بخشهای بعدی شرح داده خواهد شد به نظر می رسد در شرایط خاصی اجزای گردش کارها (وظایف و وضعیتها) نیز به نوعی دسته بندی برای مدیریت متمرکز اختیارات کاربران نیاز دارند. برای روشن تر شدن قضیه، ابتدا به روش عادی و فعلی مدیریت اختیارات کاربران در گردش کارها می پردازیم و سپس با شرحی در مورد کاستی های روش قبلی، به تفصیل به روش جدید یعنی تعریف معین کننده برای گردش کارها خواهیم پرداخت و ارزش افزوده و در انتها مزایا و ارزش افزوده بدست آمده از این روش را بررسی خواهیم کرد.
روش معمول مدیریت اختیارات کاربران در گردش کارها
تاکنون در سیستم مدیریت فرایندهای نوسا، مدیریت اختیارات کاربران در گردش کارها به دو شکل انجام می شد:
1- اختیارات سراسری: همانطور که از نام این روش می توان برداشت کرد، با تعیین اختیار در این سطح، کاربر در تمام وظایف (یا وضعیتهای) گردش کار دارای اختیار می شود.
2- اختیار در سطح وظیفه یا وضعیت: در این حالت، اختیار و دسترسی کاربر فقط به وظیفه یا وضعیت مورد نظر تعلق می گیرد.
کاستی روش معمول
ابتدا ببینیم چه نیازمندیهای واقعی باعث پیاده سازی یک امکان جدید شده است. به عبارت دیگر روشهای موجود چه کاستی هایی داشته که برای رفع آن باید از روش جدیدی برای مدیریت اختیارات کاربران استفاده کنیم.
- عدم انعطاف در اختیارات سراسری
در روش موجود، اختیارات سراسری حالت همه یا هیچ دارد یعنی با تعریف این اختیار، کاربر در سراسر گردش کار اختیار خواهد داشت یا اینکه در هیچ قسمتی از گردش کار اختیار نخواهد داشت. به عبارت دیگر نمی توانیم استثنایی برای یک یا چند وظیفه (یا وضعیت) قائل شویم. برای روشن تر شدن موضوع به مثال زیر توجه کنید:
مثال : گردش کار تامین کالاها
فرض کنید می خواهیم در این گردش کالا، تمام اختیارات را به کارشناس خرید بدهیم بجز اختیار لغو یا پایان کار، در این صورت مجبور هستیم در تک تک وضعیتها و وظایف مورد نظر برای این کاربر، و در محاوره اصلاح مشخصات وظیفه (یا وضعیت)، کاربر کارشناس خرید را با اختیار انجام وظیفه اضافه کنیم. و در دو وظیفه «لغو کار» و «پایان کار» اختیار انجام وظیفه را به سرپرست یا مدیر تدارکات محول کنیم.
- عدم امکان دسته بندی وظایف و وضعیتها
در گردش کارهای واقعی معمولا بیش از یک کاربر در روند کار دخالت دارند و لذا اختیار سراسری عملا غیرقابل استفاده است و در اکثر موارد باید اختیارات را در سطح وظیفه و وضعیت تدوین کنیم. اختیار سراسری تنها برای ادمین و طراح گردش کار و یا کاربر سیستم کاربرد دارد که در وضعیتهای تصمیم گیر و خودکار، انجام وظیفه می کند. یا در موارد خیلی خاص مثلا این که در یک گردش کار خاص، یک مدیر به تمام وضعیتها اختیار ملاحظه وضعیت کار را نیاز داشته باشد.
از طرف دیگر بخش بزرگی از گردش کارها، به نوعی طراحی می شود که انگار قسمتهای مختلف دارد و اختیارات هر قسمت، معمولا به یک کاربر خاص داده می شود. برای مثال در گردش کارهای از نوع فروش محصولات، چهار دسته فعالیت وجود دارد:
- امور مربوط به مشتری : مثل درخواست کالا از طرف مشتری، تایید یا رد پیش فاکتور، درخواست نمونه کالا، ارسال بازخورد...
- امور اعتبارسنجی مشتری: بررسی میزان اعتبار مشتری، تعریف مشتری جدید، ...
- امور اجرایی: مانند ارسال پیش فاکتور و پی گیری تا تایید و سپس ارسال فاکتور، ...
- امور مدیریتی : مانند بررسی مدیر یا سرپرست فروش برای تایید یا ویرایش قیمت ، تعیین میزان تخفیف، لغو درخواست و ...
با نگاهی دقیق تر به دیاگرام گردش کار فروش محصولات می توانید قسمتهای مختلف این گردش کار و وظایف و وضعیتهای مرتبط با این قسمتها را مشخص کنیم:

واضح است که این گردش کار از نظر مفهومی و در بطن خود شامل چند چهار زیرگردش کار متناظر با قسمتهای چهارگانه فوق است اما به هر دلیل طراح گردش کار تصمیم گرفته است تمام فعالیت ها را در یک گردش کار جایگذاری نماید. در ادامه ابتدا وظایف و سپس وضعیتهای این گردش کار را بر مبنای قسمتهای چهارگانه، دسته بندی می کنیم.
وظایف
- وظایف مربوط به مشتری: درخواست محصول، تایید پیش فاکتور، درخواست تخفیف
- وظایف اعتبارسنجی: کسب تکلیف از مدیر فروش، تایید اعتبار مشتری
- وظایف اجرایی: ارسال پیش فاکتور، ارسال فاکتور
- وظایف مدیریتی: تایید اعتبار مشتری توسط مدیر فروش، لغو بر مبنای اعتبارسنجی، تعیین درصد تخفیف، لغو به دلیل درخواست تخفیف
وضعیتها
در مورد وضعیتها چون هدف اصلی اطلاع رسانی وضعیتهاست لذا واقعیت این است که برخلاف وظایف در این مورد خیلی مرزهای مشخصی وجود ندارد و پاره ای از وضعیتها بطور مشترک به بیش از یک دسته اطلاع رسانی می شود.
- وضعیتهای مربوط به مشتری: در انتظار بررسی مدیر فروش برای تخفیف، در انتظار ارسال پیش فاکتور، در انتظار ارسال فاکتور
- وضعیتهای اعتبارسنجی: در انتظار اعلام نظر مدیر فروش در مورد اعتبار مشتری
- وضعیتهای اجرایی: در انتظار تایید پیش فاکتور توسط مشتری، در انتظار بررسی اعتبار مشتری توسط مدیر فروش
- وضعیتهای مدیریتی: در انتظار تایید پیش فاکتور توسط مشتری، در انتظار ارسال پیش فاکتور، در انتظار ارسال فاکتور
ملاحظه می کنید که وضعیتهای «در انتظار ارسال پیش فاکتور» و «در انتظار ارسال فاکتور» میان قسمتهای مدیریتی و مشتری مشترک است و همچنین وضعیت «در انتظار تایید پیش فاکتور توسط مشتری» میان دسته های اجرایی و مدیریتی مشترک است
نتیجه مهم: وضعیتهایی که به نظر مشترک می رسند مناسب دسته بندی نیستند و بهتر است به شکل پیش فرض باقی بمانند.
اصل کلی: هیچ الزامی به تعیین معین کننده برای تمام اجزای گردش کار وجود ندارد و تنها زمانی از معین کننده ها استفاده می کنیم که واقعا حس می کنیم دسته از اجزای گردش کار اشتراک مفهومی دارند و به هم مرتبط هستند.
دشواری مدیریت اختیارات در این نوع از گردش کارها
در این حالت، تخصیص اختیارات به کاربران بسیار دشوار است زیرا باید تمام وظایف و وضعیتها تک به تک ویرایش شوند و دسترسی کاربران مورد نظر به آنها تعریف شود. بنابراین بنظر می رسد علاوه بر امکانات موجود (تدوین اختیارات تکی و سراسری) به یک مفهوم میانی و جدیدی برای امکان دسته بندی وظایف و وضعیتها نیاز داریم که در میانه طیف «یک یا همه» قرار بگیرد. یعنی در عین حال که بیش از یک وظیفه (یا وضعیت) را شامل می شود اما تمام گردش کار را به شکل سراسری در بر نمی گیرد. در واقع در روش جدید، اختیارات سراسری به شکل گروهی و دسته بندی شده تخصیص می یابد و دیگر به شکل همه یا یک نیست.
در ادامه ملاحظه خواهید کرد که با استفاده از گروه معین کننده ها چطور می توانیم اجزای گردش کار را دسته بندی و مدیریت کنیم:
استفاده از معین کننده ها برای دسته بندی اجزای گردش کار
برای این کار باید گروه معین کننده هایی برای دسته بندی اجزای گردش کارها ایجاد کنیم. به عنوان مثال یک گروه معین کننده بنام «گردش کارهای از نوع فروش کالا» به شکل زیر ایجاد می کنیم:

ملاحظه می کنید این گروه معین کننده شامل 4 معین کننده است که می تواند مبنایی برای دسته بندی وظایف و وضعیتهای این نوع از گردش کارها باشد.
نکته: تمام معین کننده های این مثال تقریبا در اکثر گردش کارها قابل اطلاق اند و تنها معین کننده «امور مربوط به مشتری» مختص گردش کارهای از نوع فروش خدمات و کالاست. بنابراین از 3 معین کننده دیگر، می توانیم برای دسته بندی اجزای انواع دیگر گردش کارها (پشتیبانی، تامین کالاها، مدیریت وامها، تامین نیروی انسانی و ... ) نیز استفاده کنیم.
سوال چالشی: به نظر شما آیا همیشه می توانیم برای تمام اجزای یک گردش کار، معین کننده مرتبط با آن را انتخاب کنیم؟ به عبارت دیگر آیا باید همه اجزای گردش کار دارای معین کننده باشد؟ در غیر این صورت تکلیف اجزایی که معین کننده ندارند چه می شود؟ بهترین راه حل برای این موارد چیست؟
در ادامه مطلب، برای آشنایی با نحوه دسته بندی اجزای گردش کار، مثال بالا یعنی «فروش محصولات» را با معین کننده های فوق دسته بندی می کنیم:
مثال 2: دسته بندی اجزای گردش کار فروش محصولات بر اساس معین کننده ها
به عنوان اولین گام باید یک گروه معین کننده را برای گردش کار تعیین کنیم.
تعیین گروه معین کننده برای گردش کار
برای این کار مطابق شکل زیر، در محاوره اصلاح اطلاعات گردش کار، در فیلد گروه معین کننده، فهرست بازشونده را باز می کنیم و معین کننده مورد نظر خود (در این مثال گردش کارهای از نوع فروش کالا) را انتخاب می کنیم:

تعیین معین کننده برای وظایف
برای مثال از اولین وظیفه این گردش کار، یعنی وظیفه «درخواست محصول» شروع می کنیم. در شکل زیر محاوره اصلاح اطلاعات این وظیفه را ملاحظه می کنید که حاوی فیلدی بنام «معین کننده» است:

حال باید کلیک روی آیکون
فهرست اجزای گروه معین کننده را به شکل زیر باز کنید:

ملاحظه می کنید که محاوره ای باز می شود که فهرست معین کننده های مورد نظر در آن نمایش داده شده و قابل جستجو و انتخاب است. در این مثال چون وظیفه درخواست محصول مرتبط با مشتری است لذا روی معین کننده با کد 6 «امور مربوط به مشتری» دبل کلیک می کنیم. به این ترتیب، معین کننده مورد نظر به شکل زیر در محاوره قرار می گیرد:

این محاوره را تصویب می کنیم و این کار را به همین ترتیب برای وظایف دیگر انجام می دهیم. برای مثال در شکل زیر برای وظیفه «ارسال پیش فاکتور» معین کننده «امور اجرایی» انتخاب شده است:

و کار را به همین ترتیب تا آخرین وظیفه ادامه می دهیم.
تعیین معین کننده برای وضعیتها
در مورد وضعیتها نیز تعیین معین کننده در محاوره اصلاح اطلاعات وضعیت انجام می شود. برای مثال به شکل زیر توجه کنید:

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

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

همانطور که می بینید این آیکون فقط یک گزینه با عنوان «رنگ آمیزی بر اساس معین کننده» دارد که با کلیک روی این گزینه، معین کننده ها رنگهای نمایش داده شده در این فهرست باز شونده را به خود می گیرد. حال این گزینه را کلیک می کنیم تا اجزای گردش کار را براساس معین کننده رنگ آمیزی کنیم. در این مرحله محاوره رنگ آمیزی مجدد عناصر دیاگرام به شکل زیر روی صفحه ظاهر می شود:

این محاوره زمانی کاربرد دارد که طراح گردش کار از قبل رنگهای دلخواه خود را به وظایف و وضعیتها داده است و مایل است رنگ آمیزی قبلی حفظ شود. برای مثال فرض کنید یک طراح عادت دارد که رنگ تمام وضعیتهای اعتبار سنجی سبز کمرنگ انتخاب کند (همانند مثال بالا) . گزینه ای که در محاوره بالا وجود دارد اگر فعال شود، آنگاه رنگهای قبلی به رنگ خود باقی می ماند و مجدد رنگ آمیزی نمی شود و در غیر این صورت رنگهای جدید جایگزین رنگهای قبلی می شود. با تصویب این محاوره، دیاگرام شکل زیر را به خود می گیرد:

مشاهده می کنید که قسمتهای مشخص شده با فلش قرمز، رنگ معین کننده «امور اجرایی» و قسمتهای مشخص شده با فلش سبز، به رنگ معین کننده «امور مدیریتی» در آمده است. نکته ای که در اینجا وجود دارد رنگ معین کننده «امور مربوط به مشتری» است که در شکل زیر مشخص شده است:

در این رنگ بندی، تمام عناصر مرتبط با مشتری با فلش قرمز مشخص شده است. توجه می کنید که همه عناصر بجز وضعیت «در انتظار اعتبار سنجی مشتری» همرنگ اند که این به دلیل انتخابی بود که در محاوره قبلی داشتیم و گزینه رنگ آمیزی مجدد رنگهای قبلی را تیک نزدیم. حال که اگر گزینه یاد شده تیک بزنیم این وضعیت نیز به رنگ معین کننده «امور مربوط به مشتری» (بنفش) درخواهد آمد.
مزایای روش معین کننده بجای استفاده از زیرگردش کار
همانطور که قبلا هم گفته شد، یکی دیگر از راه حلهای تفکیک و تقسیم بندی گردش کار، استفاده از امکان زیرگردش کارهاست. اما روش معین کننده ها نسبت به روش زیرگردش کار، دارای مزایایی است که مهمترین آنها به شرح زیر است:
- امکان دسته بندی اجزای پراکنده: در یک گردش کار ترکیبی، همانند مثالی که در بالا زده شد، ممکن است اجزای یک قسمت در طول گردش کار پراکنده باشند. برای مثال به پراکندگی اجزای «امور مدیریتی» که با فلش سبزرنگ نشان داده شده است، توجه کنید:

ملاحظه می کنید که در این گردش کار، امکان استفاده از زیرگردش کار برای امور مدیریتی وجود ندارد چون اجزای آن پیوستگی ندارند و پراکنده اند.
- امکان تنوع در ماهیت اجزای گردش کارها: ماهیت امور و حتی نام وظایف و وظیفه ها ممکن است در گردش کارهای مختلف متفاوت باشند. برای مثال «امور اجرایی» را در نظر بگیرید:
در گردش کار پشتیبانی وظایفی نظیر «رفع اشکال»، «هماهنگی با مشتری»، «ثبت ماموریت» و ... ماهیت اجرایی داشته باشد اما مثلا در گردش کار تامین کالاها، وظایفی مثل «استعلام قیمت»، «درخواست از انبار»، «خرید کالا» و ... جزء امور اجرایی باشد. بنابراین واضح است که امکان تعریف یک زیرگردش کار واحد برای امور اجرایی وجود ندارد و برای هر گردش کار باید یک زیرگردش کار مجزا و اختصاصی تعریف کنیم. اما در روش معین کننده ها این تنوع کاملا به رسمیت شناخته می شود و اشکالی در مدیریت اختیارها ایجاد نمی کند.
- امکان استفاده در سطح پایگاه و مستقل از گردش کارها: همانطور که قبلا گفته شد، مفهوم معین کننده در سطح پایگاه است و لذا امکان استفاده در گردش کارهای متعدد را دارد. در واقع این نوع دسته بندی، مثل یک ریسمان نامرئی، گردش کارها را به نوعی مرتبط می کند و به دنبال آن امکان مدیریت متمرکز اختیارات را برای کاربران فراهم می کند. اما در روش زیرگردش کار این امکان وجود ندارد و هر زیرگردش کار لزوما میان گردش کارهای متعدد مشترک نیست و ممکن است طراحی های متفاوتی داشته باشد. لازم به توضیح است که این مزیت در واقع توصیف مزیت قبلی (تنوع در ماهیت اجزای گردش کارها) از نگاهی دیگر است و به نوعی می توان گفت نتیجه آن است.
مدیریت اختیارات در اجزای گردش کار
حال که معین کننده های اجزای گردش کار مشخص شده است نوبت تخصیص اختیار به این عناصر است. با توجه به این که این تخصیص اختیارات بصورت گروهی انجام می شود لذا این کار در محاوره تعیین اختیارات سراسری انجام می شود. البته با این تفاوت که دیگر اختیارات لزوما سراسری نیست بلکه محدود به یک معین کننده خاص می شود. برای نمونه به شکل زیر توجه کنید:

در این مثال، صلاحیت و اختیار انجام وظایف میان معین کننده ها توزیع شده است. برای مثال امور مدیریتی به عهده آقای اشتری (مدیر فروش) و امور مربوط به مشتری در اختیار گروه مشتریان است. حال این کار را برای معین کننده های وضعیت ادامه می دهیم:

در این مثال، اطلاع رسانی وضعیت کار نیز توسط معین کننده ها مدیریت شده است اما اگر به مورد آخر یعنی آقای اشتری توجه کنید می بینید که هیچ معین کننده ای برای این کاربر که مدیر فروش است اختصاص داده نشده است. بنابراین تنها این مورد از اختیارات بصورت سراسری تخصیص داده شده است.
نکته1: اگر معین کننده را تعیین نکنید، اختیارات بصورت سراسری اعمال می شود.
نکته2: لزوما تمام اختیارات از طریق معین کننده ها اعمال نمی شود و در هر گردش کار ممکن است بعضی از اختیارات به صورت سراسری اعمال شود. برای مثال در هنگام طراحی به راحتی می توانیم تمام اختیارات را به شکل سراسری به طراح گردش کار اختصاص دهیم.
نکته 3: تا قبل از این نسخه، هر کاربر برای هر نوع از اختیارات (انجام وظیفه، اطلاع از وضعیت، مدیریت کار و ...) فقط یک بار امکان تعریف داشت. و در صورت تکرار، سیستم پیغام خطا می داد که «کاربر در فهرست نقشهای گردش کار تکراری است». اما در روش جدید، امکان تعیین مکرر اختبارات برای یک کاربر وجود دارد. برای مثال یک کاربر می تواند هم به معین کننده «امور اجرایی» دسترسی داشته باشد و هم به معین کننده «امور مدیریتی»
در انتها بهتر است با ارزش افزوده و مزایای این روش آشنا شویم:
مزایای روش تقسیم بندی اجزای گردش کار از طریق معین کننده ها
در اینجا سعی می کنیم ارزش افزوده این روش را بصورت خلاصه جمع بندی کنیم:
1· قسمت بندی گردش کار و مدیریت اختیارات هر قسمت به صورت گروهی
با تعیین معین کننده برای اجزای گردش کار، نوعی گروه بندی به وجود می آید که به دنبال خود امکان مدیریت گروهی را فراهم می کند.
2·امکان توسعه طراحی گردش کار بدون درگیر شدن با اختیارات کاربران
فرض کنید می خواهید یک وضعیت و وظیفه دیگر به گردش کار اضافه کنید. در این جا فقط کافی است معین کننده این وظیفه (یا وضعیت) را تعیین کنید. به این ترتیب چون اختیارات کاربران برای این معین کننده، از قبل تعیین و تعریف شده است لذا دیگر نیازی به تعیین اختیارات برای این عنصر جدید نیست و اختیارات مورد نظر بطور خودکار به عنصر جدید منتقل می شود.
3·وابستگی و نیاز کمتر به تعیین اختیارات در سطح وظیفه و وضعیت
ادر این روش، تنها یکبار معین کننده های اجزای گردش کار تعیین می شود و از آن پس تعیین اختیارات از طریق معین کننده انجام می شود و نیازی به ویرایش تک تک وظایف یا وضعیتها نیست. این قابلیت را در دو شکل می توانیم نشان دهیم:
- انعطاف در برابر تغییرات سازمانی کاربران: برای مثال اگر کاربری جایگزین کاربر فعلی شود کافی است فقط در قسمت تعیین اختیارات سراسری، کاربر را تغییر دهیم.
- انعطاف در برابر تغییر سیاستهای مدیریتی: مثلا اگر قرار است کاربر دیگری را به یک معین کننده اضافه کنیم یا اختیاری را از کاربری سلب کنیم این کار فقط یک بار و در قسمت تعیین اختیارات سراسری انجام می شود.
4· گزارشگیری درهمکرد و یکپارچه از معین کننده ها
از این پس در تمام گزارشهایی که دارای ستون «نام وظیفه» یا «نام وضعیت» هستند، امکان افزودن دو ستون «نام معین کننده وظیفه» و «نام معین کننده وضعیت» نیز وجود دارد. این دو معین کننده، به ویژه اگر در جداول پیشرفته و به عنوان سرجمع استفاده شود، اطلاعات بسیار مفیدی در مورد عملکردهای قسمتهای مختلف گردش کار ارائه می کند. برای مثال به گزارش توقف در وضعیتهای گردش کار توجه کنید:

ملاحظه می کنید که در وضعیتهای با معین کننده «امور اجرایی»، اطلاعات آماری تجمعی مربوط به توقف در وضعیتها به تفکیک گردش کارها نمایش داده شده است.
به عنوان مثال دوم به گزارش زیر توجه کنید:

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

این گزارش نیز براساس نام معین کننده وظیفه گروه بندی شده است. یعنی اطلاعات تجمعی انجام وظایف مرتبط با هم نیز محاسبه و نمایش داده شده است.
نتیجه: با پیاده سازی معین کننده های وظایف و وضعیتها، امکان تهیه گزارشهای گروه بندی شده وظایف و وضعیتهای مرتبط به هم فراهم شده است که دید فراگیر و انتزاعی تری از سهم اجزای گردش کار، به کاربر می دهد.