سطح دسترسی اجرای ورک فلو در سی آر ام مایکروسافت

1. Realtime Workflow (Synchronous)

  • Realtime Workflow همیشه در Context همان کاربری اجرا می‌شود که عملیات را انجام داده است.

  • یعنی اگر کاربر “Ali” رکوردی ایجاد کند و Realtime Workflow روی آن Trigger شود:

    • Workflow با سطح دسترسی Ali اجرا خواهد شد.

    • هر اکشنی که Workflow انجام دهد (Create, Update, Assign, Send Email و …) باید توسط Ali مجاز باشد.

    • اگر Ali مجوز کافی نداشته باشد، Workflow خطا می‌دهد و عملیات اصلی (مثلاً Save) هم Rollback می‌شود.


2. Background Workflow (Asynchronous)

  • در این حالت، Workflow توسط Asynchronous Service اجرا می‌شود.

  • اما همچنان دو Context مطرح است:

    1. مالک (Owner) Workflow

    2. کاربر Trigger کننده (Created By / Modified By)

🔑 قانون اصلی:

  • Background Workflow در Context کاربری اجرا می‌شود که مالک آن Workflow است (Owner).

  • به همین دلیل است که اگر Owner Workflow ادمین باشد، Workflow در عمل با دسترسی‌های ادمین اجرا می‌شود.

📌 مثال:

  • فرض کن Workflowی طراحی کردی که روی ایجاد Lead یک ایمیل ارسال کند.

  • کاربر “Sara” یک Lead ایجاد می‌کند → Workflow شروع می‌شود.

  • اگر Owner این Workflow “System Administrator” باشد:

    • ایمیل با دسترسی Admin ارسال می‌شود.

    • حتی اگر “Sara” مجوز ارسال ایمیل نداشته باشد، Workflow موفق خواهد بود.


🔹 تفاوت مهم

  • Realtime: محدود به دسترسی‌های کاربر اجراکننده (Trigger کننده).

  • Background: وابسته به دسترسی‌های مالک Workflow (Owner).


🔹 نکته امنیتی مهم

  • چون Background Workflow می‌تواند با دسترسی‌های بالاتر از کاربر اجرا شود، باید دقت زیادی در تعیین Owner آن داشت.

  • اگر همه Workflowها را با Owner “System Administrator” ذخیره کنید، در عمل هر کاربر عادی می‌تواند اکشن‌هایی انجام دهد که خودش مجوزش را ندارد (مثل تغییر Owner رکوردهای حساس).

  • بهترین Practice این است که:

    • Workflowهایی که قرار است با دسترسی بالا کار کنند، عمداً مالکشان Admin باشد.

    • Workflowهایی که باید محدود به دسترسی‌های کاربران باشند، بهتر است Realtime باشند یا با مالک غیرادمین تنظیم شوند.


جمع‌بندی:

  • Realtime Workflow → همیشه با دسترسی کاربر اجراکننده اجرا می‌شود.

  • Background Workflow → همیشه با دسترسی مالک Workflow اجرا می‌شود (اگر Admin باشد، در عمل Workflow با دسترسی Admin اجرا می‌شود).

دیدگاه خود را بیان کنید

نشانی ایمیل شما منتشر نخواهد شد.