زبان BPMN یا نمادهای Business Process Modeling & Notation مجموعه عناصری هستند که بر اساس استاندارد ارائه شده توسط OMG در مدلسازی فرآیندهای کسب و کار استفاده میشوند.
در این مطلب قصد داریم نمونههایی از تجربیات استفاده مناسب و نامناسب تعدادی از نشانههای این زبان را با چند مثال رایج در مدلسازی فرآیند مرور کنیم. توجه داشته باشید که این تجربیات موفق فارغ از نوع فرآیند یا کسب و کارها برای طراح فرآیند قابل استفادهاند.
نمونه استفاده صحیح از فعالیت قوانین کسب و کار در زبان BPMN
فعالیت قوانین کسب و کار (Business Rules Task)
در مثال زیر یک فرآیند ایجاد صورتحساب، مدل شده است. این فرآیند تخفیف مربوط به صورتحساب مشتری را محاسبه میکند. در این مثال برای محاسبه تخفیف از یک فعالیت قوانین کسب و کار (Business Rules Task) استفاده شده است.
همین فرآیند میتوانست به روش دیگری همراه با پیچیدگی و اشتباه، مدل شود. در مثال زیر قوانین کسب و کار با استفاده درگاه شرطی بر اساس مبلغ خرید مشتری، محاسبه شدهاند. همانگونه که در مدل فرآیند قابل مشاهده است، چهار بازه برای محاسبه تخفیف در نظر گرفته شده است. در مرحله بعد نوع مشتری نیز در محاسبه تخفیف تأثیر میگذارد. طبیعتاً این مدل جوابگو خواهد بود؛ اما در صورتی که قصد داشته باشید بازههای تحفیف را تغییر دهید و یا تنوع بیشتری به انواع مشتری بدهید مدلسازی مجدد فرآیند بدون استفاده از فعالیت قوانین کسب و کار، پیچیده خواهد بود.
در شرایط مکانیزاسیون فرآیند با استفاده از نرمافزار BPMS، قوانین کسب و کار در قالب یک فعالیت یا با استفاده از یک موتور قوانین کسب و کار شرایط مدیریت و تغییر را بسیار ساده خواهدکرد. خارج کردن محاسبات پیچیده از عناصر فرآیند این امکان را به مالک فرآیند میدهد تا در هر زمان بدون نگرانی از پیچیدگی نرمافزار برای بهبود فرآیند اقدام کند.
مدلسازی اشتباه در صورت عدم استفاده از فعالیت قوانین کسب و کار به شکل زیر است:
مدیریت نمونههای وابسته به هم در یک فرآیند
در سناریوهای مختلف نمونههای همزمان یک فرآیند بر عملکرد کسب و کار، تأثیر خواهند داشت. نحوه مدیریت تأثیر نمونههای فرآیند بر هم با روشهای مختلفی صورت میگیرد. در مثال بعد قصد داریم مدلسازی یک فرایند را با نمونههای همزمان و وابسته نمایش دهیم.
در این مثال، قرار است اعتبار یک مشتری کنترل شود. درون قوانین این کسب و کار قانونی وجود دارد که در صورت فعال بودن یک فرآیند اعتبارسنجی مشتری از اجرای فرآیند اعتبارسنجی دیگر، جلوگیری میشود.
اجرای فرآیند به این صورت خواهد بود که در هر نمونه از فرآیند کنترل اعتبار مشتری باید پیش از شروع زیرفرآیند (Subprocess) اعتبارسنجی، بررسی شود که آیا فرآیند دیگری برای این مشتری در حال اجرا هست یا خیر.
اگر نمونه مشابهی وجود نداشت، فرایند ادامه پیدا میکند و عملیات لازم برای انجام کنترل اعتبار اجرا میشود.
برای مدیریت پاسخ مثبت (وجود فرآیند کنترل اعتبار همزمان) از سه رویداد (Event) میتوان استفاده کرد:
- رویداد سیگنال (Signal)
- ریداد پیام (Message)
- رویداد زمانسج (Timer)
راهحل با رویداد سیگنال (Signal)
رویداد سیگنال (Signal)، آسانترین و تأثیرگذارترین راه برای مدلسازی ارتباط میان نمونههای مختلف از یک فرآیند کسب و کار است.
مشکل سیگنال آن است که به صورت دادهپراکنی (Broadcast) عمل میکند و به نمونه یا گیرنده خاصی اشاره ندارد؛ بنابراین اگر بخواهیم در زبان BPMN مشخصاً برای یک مشتری پیام کنترل اعتبارسنجی را ارسال کنیم، با استفاده از المان سیگنال فرض کنترل مشتری خاص، نادیده گرفته میشود .
در صورت فعال بودن هر نمونه فرآیند اعتبارسنجی، از اجرای کنترل اعتبار مشتری، ممانعت میشود. در این نوع مدلسازی با استفاده از سیگنال تنها یک زیرفرآیند اعتبارسنجی در سازمان قابل انجام خواهد بود، چراکه قانون تعریف شده این بود که برای هر مشتری یک فرایند اعتبارسنجی، وجود داشته باشد.
راهحل با رویداد پیام (Message)
در رویداد پیام (Message)، باید گیرنده پیام مشخص باشد. در این حالت پس اتمام کار مشتری، مجدداً بررسی میشود که آیا نمونه مشابهی برای همان مشتری وجود دارد یا خیر. اگر نمونه مشابهی وجود داشت که مشخصاً برای همان مشتری پیغام فرستاده میشود که بتواند کار خود را ادامه دهد و عملیات لازم برای کنترل اعتبار را انجام دهد. اگر نمونه مشابه وجود نداشت، فرآیند خاتمه پیدا میکند.
مشکل ناشی از سیگنال؛ یعنی نبود گیرنده مشخص در این حالت وجود ندارد و طبیعتاً تداخلی بین فرآیند کنترل اعتبار مشتریهای مختلف بهوجود نخواهد آمد.
راهحل با رویداد زمانسنج (Timer) و حلقه
تعدادی از BPMSها قابلیت اجرای رخدادهای مربوط به پیام (Message) و سیگنال (Signal) را ندارند. معمولاً نسخههای رایگان نرمافزارهای BPMS متنباز (Open Source) مانند Processmaker این کمبود را دارند و نیاز است برای پیادهسازی فرآیندهای مانند مثال مورد اشاره از روش زمانسنج استفاده کرد. این روش به دلیل استفاده از حلقه باعث تأخیر در اجرای فرآیند و در نتیجه سربار خواهد شد.
در زبان BPMN برای پیادهسازی این فرآیند با استفاده از رویداد زمانسنج (Timer) نیاز به ارتباط بین نمونهها و اطلاع از وضعیت آن وجود ندارد. با استفاده از رویداد زمانسنج هر چند دقیقه یک بار بانک اطلاعاتی کنترل میشود. اگر نمونه مشابهی در حال اجرا باشد فرآیند به زمانسنج ارجاع داده میشود و مجدد چند دقیقه منتظر میماند. این حلقه آنقدر تکرار میشود تا برای مشتری هیچ نمونه فعال کنترل اعتباری وجود نداشته باشد.
همانطور که گفته شد نسخ متنباز بعضی از نرمافزارهای BPMS مانند Processmaker به دلیل عدم پشتیبانی صحیح از رویدادها پیام و سیگنال ناگزیر به استفاده از این روش هستند که این موضوع باعث تأخیر و سربار خواهد بود. با بررسی هر سه روش پیادهسازی برای فرآیند کنترل نمونههای همزمان و با توجه به امکانات نرمافزار BPMS که در اختیار دارید، میتوانید در زبان BPMN روش مورد نظر خود را انتخاب کنید.
درخواست دموی نرمافزار BPMS دیدگاه
[faq-schema id=”26695″]