قوانین خودکارسازی

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

برای ایجاد یک قانون خودکارسازی با استودیو، به صورت زیر عمل کنید:

  1. استودیو را باز کرده و روی خودکارسازی‌ها کلیک کنید، سپس روی جدید کلیک کنید.

  2. محرک را انتخاب کنید (محرک) و در صورت لزوم، فیلدهایی که بر اساس محرک انتخاب شده ظاهر می‌شوند را پر کنید.

  3. روی اضافه کردن یک اقدام کلیک کنید، سپس نوع اقدام (اقدام) را انتخاب کرده و فیلدهایی که بر اساس اقدام انتخاب شده ظاهر می‌شوند را پر کنید.

  4. روی ذخیره و بستن یا ذخیره و جدید کلیک کنید.

مثال

نمونه‌ای از یک اقدام خودکار بر روی مدل اشتراک

نکته

  • برای تغییر مدل خودکارسازی، قبل از کلیک روی خودکارسازی‌ها در استودیو، مدل‌ها را تغییر دهید، یا حالت توسعه‌دهنده را فعال کنید، یک قانون خودکارسازی ایجاد یا ویرایش کنید و مدل را در فرم قوانین خودکارسازی انتخاب کنید.

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

    ایجاد خودکارسازی‌ها از یک مرحله کانبان

محرک

محرک برای تعیین زمان اعمال قانون خودکارسازی استفاده می‌شود. محرک‌های موجود بستگی به مدل دارند (مدل). به طور کلی پنج دسته محرک وجود دارد:

نکته

همچنین می‌توانید یک دامنه قبل از به‌روزرسانی تعریف کنید تا شرایطی که باید قبل از اجرای قانون خودکارسازی برآورده شوند را مشخص کنید. در مقابل، شرایط تعریف‌شده با استفاده از شرایط اضافی و فیلترهای اعمال در در طول اجرای قانون خودکارسازی بررسی می‌شوند.

برای تعریف یک دامنه قبل از به‌روزرسانی، حالت توسعه‌دهنده را فعال کنید، یک قانون خودکارسازی ایجاد یا ویرایش کنید، روی ویرایش دامنه کلیک کنید، سپس روی قانون جدید کلیک کنید.

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

نمونه‌ای از یک محرک با دامنه قبل از به‌روزرسانی

مقادیر به‌روزرسانی شده

محرک‌های موجود در این دسته‌بندی بستگی به مدل دارند و بر اساس تغییرات رایج فیلدها مانند افزودن یک برچسب خاص (مثلاً به یک کار) یا تنظیم فیلد کاربر هستند. محرک را انتخاب کنید، سپس در صورت نیاز یک مقدار را انتخاب کنید.

نمونه‌ای از یک محرک مقادیر به‌روزرسانی شده

رویدادهای ایمیلی

اقدامات خودکار را هنگام دریافت یا ارسال ایمیل‌ها اجرا کنید.

شرایط زمانی

اقدامات خودکار را بر اساس یک فیلد تاریخ اجرا کنید. محرک‌های زیر موجود هستند:

  • بر اساس فیلد تاریخ: فیلدی که باید استفاده شود را کنار فیلد تأخیر انتخاب کنید.

  • بعد از ایجاد: اقدام زمانی که یک رکورد ایجاد و ذخیره می‌شود اجرا می‌گردد.

  • بعد از آخرین به‌روزرسانی: اقدام زمانی که یک رکورد موجود ویرایش و ذخیره می‌شود اجرا می‌گردد.

سپس می‌توانید تعریف کنید:

  • تأخیر: تعداد دقیقه‌ها، ساعت‌ها، روزها یا ماه‌ها را مشخص کنید. برای اجرای اقدام قبل از تاریخ محرک، یک عدد منفی وارد کنید. اگر محرک بر اساس فیلد تاریخ را انتخاب کردید، باید فیلد تاریخ مورد استفاده برای تعیین تأخیر را نیز انتخاب کنید.

  • شرایط اضافی: روی افزودن شرط کلیک کنید، سپس شرایطی را که باید برای اجرای قانون خودکارسازی برآورده شوند مشخص کنید. برای اضافه کردن شرط دیگر روی قانون جدید کلیک کنید.

اقدام زمانی که تأخیر به دست می‌آید و شرایط برآورده می‌شوند اجرا می‌شود.

مثال

اگر می‌خواهید 30 دقیقه قبل از شروع یک رویداد تقویم یک ایمیل یادآوری ارسال کنید، شروع (رویداد تقویم) را زیر تاریخ محرک انتخاب کنید و تأخیر را به -30 دقیقه تنظیم کنید.

نمونه‌ای از یک محرک بر اساس فیلد تاریخ

توجه

به طور پیش‌فرض، برنامه‌ریز هر 4 ساعت یکبار تاریخ‌های محرک را بررسی می‌کند، به این معنی که خودکارسازی‌های مبتنی بر زمان با دقت پایین ممکن است همیشه رعایت نشوند.

سفارشی

اجرای اقدامات خودکار:

  • هنگام ذخیره: وقتی رکورد ذخیره می‌شود؛

  • هنگام حذف: وقتی یک رکورد حذف می‌شود؛

  • هنگام تغییر در رابط کاربری: زمانی که مقدار یک فیلد در نمای فرم تغییر می‌کند، حتی قبل از ذخیره رکورد.

برای محرک‌های هنگام ذخیره و هنگام تغییر در رابط کاربری، باید فیلد(ها)یی که برای اجرای قانون خودکارسازی استفاده می‌شوند را در فیلد هنگام به‌روزرسانی انتخاب کنید.

هشدار

اگر هیچ فیلدی در فیلد هنگام به‌روزرسانی انتخاب نشود، اقدام خودکار ممکن است چندین بار برای هر رکورد اجرا شود.

در صورت تمایل، می‌توانید شرایط اضافی را برای اجرای قانون خودکارسازی در فیلد اعمال در تعیین کنید.

توجه

محرک هنگام تغییر در رابط کاربری فقط با اقدام python-code استفاده می‌شود و تنها زمانی کار می‌کند که تغییر به صورت دستی انجام شود. اگر فیلد از طریق یک قانون خودکارسازی دیگر تغییر کند، اقدام اجرا نمی‌شود.

خارجی

اقدامات خودکار را بر اساس یک رویداد خارجی با استفاده از وب‌هوک اجرا کنید. وب‌هوک روشی برای ارتباط بین دو سیستم است که در آن سیستم منبع یک درخواست HTTP(S) را به سیستم مقصد بر اساس یک رویداد خاص ارسال می‌کند. این درخواست معمولاً شامل یک محموله داده‌ای است که حاوی اطلاعاتی درباره رویداد رخ داده است.

برای پیکربندی محرک روی وب‌هوک، URL تولید شده توسط اودو را در سیستم مقصد (یعنی سیستم دریافت‌کننده درخواست) کپی کنید. سپس، در فیلد رکورد هدف کد لازم برای تعریف رکورد(ها)یی که باید با استفاده از قانون خودکارسازی به‌روزرسانی شوند را وارد کنید.

هشدار

این URL باید به عنوان محرمانه تلقی شود؛ به اشتراک گذاشتن آن به صورت آنلاین یا بدون احتیاط می‌تواند سیستم شما را به خطر بیاندازد. در صورت لزوم روی دکمه تغییر راز کلیک کنید تا راز URL تغییر کند.

توجه

  • کد تعریف‌شده به‌طور پیش‌فرض در فیلد رکورد هدف برای وب‌هوک‌های دریافتی از یک پایگاه داده دیگر اودو کار می‌کند. از آن برای تعیین رکورد(ها)یی که باید با استفاده از اطلاعات موجود در محموله به‌روزرسانی شوند استفاده می‌شود.

  • اگر مایلید از محتوای وب‌هوک برای هدفی غیر از یافتن رکورد(ها) استفاده کنید (مثلاً ایجاد یک رکورد)، تنها گزینه شما استفاده از یک اقدام python-code است. در این صورت، فیلد رکورد هدف باید شامل هر کدی معتبر باشد، اما نتیجه آن تأثیری بر خود اقدام خودکار ندارد.

  • محتوای وب‌هوک در زمینه اقدام سرور به عنوان یک متغیر payload در دسترس است (یعنی یک دیکشنری که حاوی پارامترهای GET یا بدنه POST JSON درخواست ورودی است).

همچنین می‌توانید گزینه ثبت تماس‌ها را انتخاب کنید تا محموله‌های دریافتی را ثبت کنید، مثلاً برای اطمینان از اینکه داده‌های ارسال‌شده توسط سیستم منبع با فرمت و محتوای مورد انتظار مطابقت دارند. این کار همچنین به شناسایی و تشخیص هرگونه مشکلی که ممکن است بوجود بیاید کمک می‌کند. برای دسترسی به گزارش‌ها، روی دکمه هوشمند گزارش‌ها در بالای فرم قوانین خودکارسازی کلیک کنید.

اقدامات

پس از تعریف محرک قانون خودکارسازی (trigger)، روی اضافه کردن اقدام کلیک کنید تا اقدامی که باید اجرا شود را تعریف کنید.

نکته

شما می‌توانید چندین اقدام برای یک محرک یا قانون خودکارسازی تعریف کنید. اقدامات به ترتیبی که تعریف شده‌اند اجرا می‌شوند. به عنوان مثال، اگر ابتدا اقدام به‌روزرسانی رکورد و سپس اقدام ارسال ایمیل را تعریف کنید، ایمیل از مقادیر به‌روزرسانی‌شده استفاده می‌کند. اما اگر اقدام ارسال ایمیل قبل از اقدام به‌روزرسانی رکورد تعریف شود، ایمیل از مقادیر تنظیم‌شده قبل از اجرای اقدام به‌روزرسانی استفاده خواهد کرد.

به‌روزرسانی رکورد

این اقدام به شما امکان می‌دهد یکی از فیلدهای رکورد (مرتبط) را به‌روزرسانی کنید. روی فیلد به‌روزرسانی کلیک کنید و در لیستی که باز می‌شود، فیلدی را که باید به‌روزرسانی شود انتخاب یا جستجو کنید؛ اگر لازم بود روی پیکان سمت راست نام فیلد کلیک کنید تا به لیست فیلدهای مرتبط دسترسی پیدا کنید.

اگر یک فیلد many2many انتخاب کرده‌اید، انتخاب کنید که آیا فیلد باید با افزودن، حذف، یا تنظیم به مقدار انتخاب‌شده به‌روزرسانی شود یا با پاک کردن آن.

مثال

اگر می‌خواهید اقدام خودکار یک برچسب را از رکورد مشتری حذف کند، فیلد به‌روزرسانی را روی مشتری > برچسب‌ها تنظیم کنید، گزینه با حذف را انتخاب کنید، سپس برچسب مورد نظر را انتخاب کنید.

نمونه‌ای از یک اقدام به‌روزرسانی رکورد

نکته

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

محاسبه یک فیلد datetime سفارشی با استفاده از عبارت پایتون

ایجاد فعالیت

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

  • برای اختصاص دادن همیشگی فعالیت به یک کاربر مشخص، کاربر خاص را انتخاب کنید و کاربر را در فیلد مسئول اضافه کنید؛

  • برای هدف قرار دادن یک کاربر مرتبط با رکورد به صورت پویا، کاربر پویا (بر اساس رکورد) را انتخاب کنید و در صورت لزوم فیلد فیلد کاربر را تغییر دهید.

مثال

پس از تبدیل یک سرنخ به فرصت، می‌خواهید اقدام خودکار یک تماس برای کاربر مسئول سرنخ تنظیم کند. برای انجام این کار، نوع فعالیت (Activity Type) را به تماس و نوع کاربر (User Type) را به کاربر پویا (بر اساس رکورد) تنظیم کنید.

نمونه‌ای از یک اقدام ایجاد فعالیت

ارسال ایمیل و ارسال پیامک

این اقدامات برای ارسال ایمیل یا پیامک به یک مخاطب مرتبط با یک رکورد خاص استفاده می‌شوند. برای این کار، یک قالب ایمیل یا قالب پیامک انتخاب کنید یا ایجاد کنید، سپس در فیلد ارسال ایمیل به عنوان یا ارسال پیامک به عنوان انتخاب کنید که چگونه می‌خواهید ایمیل یا پیامک را ارسال کنید:

  • ایمیل: برای ارسال پیام به عنوان ایمیل به گیرندگان قالب ایمیل.

  • پیام: برای ارسال پیام روی رکورد و اطلاع‌رسانی به دنبال‌کنندگان رکورد.

  • یادداشت: برای ارسال پیام به عنوان یادداشت داخلی که برای کاربران داخلی در چتر قابل مشاهده است.

  • پیامک (بدون یادداشت): برای ارسال پیام به عنوان پیامک به گیرندگان قالب پیامک.

  • پیامک (با یادداشت): برای ارسال پیام به عنوان پیامک به گیرندگان قالب پیامک و ارسال آن به عنوان یادداشت داخلی در چتر.

  • فقط یادداشت: فقط پیام را به عنوان یادداشت داخلی در چتر ارسال کنید.

افزودن دنبال‌کنندگان و حذف دنبال‌کنندگان

از این اقدامات برای اضافه کردن یا حذف کردن مخاطبین موجود به/از رکورد استفاده کنید.

ایجاد رکورد

این اقدام برای ایجاد یک رکورد جدید در هر مدلی استفاده می‌شود.

مدل مورد نیاز را در فیلد رکوردی که باید ایجاد شود انتخاب کنید؛ به طور پیش‌فرض حاوی مدل جاری است. نامی برای رکورد مشخص کنید و سپس اگر می‌خواهید رکورد را در مدل دیگری ایجاد کنید، یک فیلد در فیلد فیلد پیوند انتخاب کنید تا رکوردی که باعث ایجاد رکورد جدید شده است را پیوند دهید.

توجه

لیست کشویی مرتبط با فیلد فیلد پیوند فقط شامل فیلدهای one2many موجود در مدل جاری است که به فیلد many2one در مدل هدف پیوند دارند.

نکته

می‌توانید یک قانون خودکارسازی دیگر با اقدامات به‌روزرسانی رکورد برای به‌روزرسانی فیلدهای رکورد جدید ایجاد کنید. به عنوان مثال، می‌توانید از اقدام ایجاد رکورد برای ایجاد یک وظیفه پروژه جدید و سپس اختصاص آن به یک کاربر خاص با استفاده از اقدام به‌روزرسانی رکورد استفاده کنید.

اجرای کد

این اقدام برای اجرای کد پایتون استفاده می‌شود. شما می‌توانید کد خود را در تب کد با استفاده از متغیرهای زیر بنویسید:

  • env: محیطی که اقدام در آن اجرا می‌شود

  • model: مدل رکوردی که اقدام روی آن اجرا می‌شود؛ یک رکوردست خالی است

  • record: رکوردی که اقدام روی آن اجرا می‌شود؛ ممکن است خالی باشد

  • records: رکوردست همه رکوردهایی که اقدام روی آن‌ها در حالت چندگانه اجرا می‌شود؛ ممکن است خالی بماند

  • time، datetime، dateutil، timezone: کتابخانه‌های مفید پایتون

  • float_compare: تابعی برای مقایسه اعداد اعشاری بر اساس دقت خاص

  • log(message, level='info'): تابع ثبت‌نام برای ثبت اطلاعات اشکال‌زدایی در جدول ir.logging

  • _logger.info(message): لاگر برای ارسال پیام‌ها در گزارش‌های سرور

  • UserError: کلاس استثناء برای نمایش پیام‌های هشدار به کاربر

  • Command: فضای نام دستورات x2many

  • action = {...}: برای بازگشت یک اقدام

نکته

متغیرهای موجود در هر دو تب کد و راهنما توضیح داده شده‌اند.

ارسال اعلان وب‌هوک

این اقدام به شما امکان می‌دهد یک درخواست POST با مقادیر فیلدها به URL مشخص‌شده در فیلد URL ارسال کنید.

پیش‌نمایش محموله نمونه پیش‌نمایشی از داده‌های موجود در درخواست را با استفاده از داده‌های یک رکورد تصادفی یا داده‌های آزمایشی در صورت عدم وجود رکورد ارائه می‌دهد.

اجرای اقدامات موجود

این اقدام برای اجرای همزمان چندین اقدام (مرتبط با مدل جاری) استفاده می‌شود. برای این کار، روی اضافه کردن یک خط کلیک کنید، سپس در پنجره اضافه کردن: اقدامات فرزند، یک اقدام موجود را انتخاب کنید یا روی جدید کلیک کنید تا یک اقدام جدید ایجاد کنید.