قوانین خودکارسازی¶
قوانین خودکارسازی امکان اجرای یک یا چند اقدام از پیش تعریفشده را در پاسخ به یک محرک خاص فراهم میکنند، به عنوان مثال، ایجاد یک فعالیت زمانی که یک فیلد به مقدار مشخصی تنظیم شود، یا بایگانی کردن یک رکورد ۷ روز پس از آخرین بهروزرسانی آن.
هنگام ایجاد یک قانون خودکارسازی، فیلترهای دامنه به شما امکان میدهند شرایطی را اضافه کنید که باید برای اجرای قانون خودکارسازی رعایت شوند، به عنوان مثال، فرصت باید به یک فروشنده خاص اختصاص داده شود یا وضعیت رکورد نباید پیشنویس باشد.
برای ایجاد یک قانون خودکارسازی با Odoo Studio، به صورت زیر عمل کنید:
استودیو را باز کنید و روی اتوماسیونها کلیک کنید، سپس جدید.
به قانون خودکارسازی یک نام واضح و معنادار بدهید که هدف آن را مشخص کند.
محرک را انتخاب کنید و در صورت لزوم، فیلدهایی که بر اساس محرک انتخابشده روی صفحه ظاهر میشوند را پر کنید.
روی افزودن یک اقدام کلیک کنید، سپس نوع اقدام را انتخاب کرده و بر اساس اقدام انتخابی خود، فیلدهایی که روی صفحه ظاهر میشوند را پر کنید.
کلیک کنید: ذخیره و بستن یا ذخیره و جدید.
Example
برای اطمینان از پیگیری مشتریان کمتر راضی، این قانون خودکار سه ماه پس از ایجاد یک سفارش فروش برای مشتریانی که درصد رضایت آنها کمتر از ۳۰٪ است، یک فعالیت ایجاد میکند.

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

توجه
دامنه قبل از بهروزرسانی هنگام ایجاد یک رکورد بررسی نمیشود.
مقادیر بهروزرسانی شد¶
اقدامات خودکار را زمانی که تغییرات خاصی در پایگاه داده رخ میدهد، فعال کنید. محرکهای موجود در این دسته به مدل بستگی دارند و بر اساس تغییرات رایج مانند افزودن یک برچسب خاص (مثلاً به یک وظیفه) یا تنظیم مقدار یک فیلد (مثلاً تنظیم فیلد کاربر) هستند.
محرک را انتخاب کنید، سپس در صورت نیاز یک مقدار انتخاب کنید.
رویدادهای ایمیل¶
فعالسازی اقدامات خودکار هنگام دریافت یا ارسال ایمیلها.
شرایط زمانبندی¶
اعمال خودکار را در یک زمان مشخص نسبت به یک فیلد تاریخ یا ایجاد یا بهروزرسانی یک رکورد فعال کنید. محرکهای زیر در دسترس هستند:
بر اساس فیلد تاریخ: این اقدام در یک دوره زمانی مشخص قبل یا بعد از تاریخ فیلد تاریخ انتخابشده فعال میشود.
پس از ایجاد: این اقدام در یک بازه زمانی مشخص پس از ایجاد و ذخیره یک رکورد فعال میشود.
پس از آخرین بهروزرسانی: این اقدام در یک دوره زمانی مشخص پس از ویرایش و ذخیره یک رکورد موجود انجام میشود.
سپس میتوانید تعریف کنید:
تاخیر: تعداد دقیقهها، ساعتها، روزها یا ماهها را مشخص کنید. برای اجرای یک اقدام قبل از تاریخ محرک، یک عدد منفی وارد کنید. اگر محرک بر اساس فیلد تاریخ را انتخاب کردهاید، باید فیلد تاریخ مورد استفاده برای تعیین تاخیر را نیز انتخاب کنید.
توجه
بهصورت پیشفرض، زمانبند هر 240 دقیقه یا 4 ساعت قوانین خودکارسازی مبتنی بر زمان را بررسی میکند. این تناوب معمولاً برای تأخیرهایی مانند 3 ماه پس از تاریخ سفارش یا 7 روز پس از آخرین بهروزرسانی کافی است.
برای تأخیرهای کمتر از معادل ۲۴۰۰ دقیقه یا ۴۰ ساعت، سیستم فرکانس این بررسی را مجدداً محاسبه میکند تا اطمینان حاصل شود که تأخیرهای جزئیتر، مانند ۱ ساعت قبل از تاریخ و زمان شروع رویداد یا ۳۰ دقیقه پس از ایجاد، تا حد امکان رعایت شوند.
یک پیام روی صفحه نشاندهنده احتمال تأخیر پس از زمانبندی اجرای قانون است.
برای مشاهده یا ویرایش دستی تناوب زمانبندیکننده، با فعال بودن حالت توسعهدهنده، به مسیر بروید تا تمامی اقدامات زمانبندیشده برای پایگاه داده خود را مشاهده کنید.
در نوار جستجو عبارت «اتوماسیون» را وارد کنید، سپس در لیست نتایج روی قوانین اتوماسیون: بررسی و اجرا کلیک کنید. در صورت تمایل، مقدار فیلد اجرا هر را بهروزرسانی کنید. در هر زمان میتوانید با کلیک روی اجرای دستی این اقدام زمانبندیشده را بهصورت دستی فعال کنید.
شرایط اضافی: روی افزودن شرط کلیک کنید، سپس شرایطی را که باید برای اجرای قانون خودکار رعایت شوند مشخص کنید. برای افزودن شرط دیگر، روی قانون جدید کلیک کنید.
عمل زمانی اجرا میشود که تأخیر به پایان برسد و شرایط برآورده شوند.
Example
برای ارسال یک ایمیل یادآوری ۳۰ دقیقه قبل از شروع یک رویداد تقویمی، فیلد تاریخ شروع (رویداد تقویم) را برای محرک انتخاب کنید و تاخیر را روی -۳۰
دقیقه تنظیم کنید.

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

توجه
ماشه در تغییر رابط کاربری فقط میتواند با اقدام اجرای کد استفاده شود و تنها زمانی کار میکند که تغییری به صورت دستی انجام شود. اگر فیلد از طریق یک قانون خودکار دیگر تغییر کند، این اقدام اجرا نمیشود.
خارجی¶
ایجاد اقدامات خودکار بر اساس یک رویداد خاص در یک سیستم یا برنامه خارجی با استفاده از وبهوک.
پس از پیکربندی وبهوک در Odoo، که در آن URL وبهوک ایجاد شده و رکورد هدف تعریف میشود، لازم است در سیستم خارجی پیادهسازی شود.
هشدار
توصیه میشود که هنگام تصمیمگیری برای استفاده از وبهوکها و در طول فرآیند پیادهسازی، با یک توسعهدهنده، معمار راهحل یا نقش فنی دیگری مشورت کنید. در صورت پیکربندی نادرست، وبهوکها ممکن است باعث اختلال در پایگاه داده Odoo شوند و بازگرداندن آنها زمانبر باشد.

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

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

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

ارسال ایمیل و ارسال پیامک¶
این اقدامات برای ارسال ایمیل یا پیامک به یک مخاطب مرتبط با یک رکورد خاص استفاده میشوند. برای انجام این کار، یک الگوی ایمیل یا الگوی پیامک انتخاب یا ایجاد کنید، سپس در فیلد ارسال ایمیل به عنوان یا ارسال پیامک به عنوان، نحوه ارسال ایمیل یا پیامک را انتخاب کنید:
ایمیل: برای ارسال پیام به عنوان ایمیل به گیرندگان قالب ایمیل.
پیام: برای ارسال پیام در رکورد و اطلاعرسانی به دنبالکنندگان رکورد.
یادداشت: برای ارسال پیام به عنوان یک یادداشت داخلی که برای کاربران داخلی در چتر قابل مشاهده باشد.
پیامک (بدون یادداشت): برای ارسال پیام به صورت پیامک به گیرندگان قالب پیامک.
پیامک (با یادداشت): ارسال پیام به صورت پیامک به گیرندگان قالب پیامک و ثبت آن به عنوان یادداشت داخلی در چتر.
فقط یادداشت: برای ارسال پیام بهعنوان یک یادداشت داخلی در چتر.
ارسال واتساپ¶
مهم
برای خودکارسازی ارسال پیامهای واتساپ، یک یا چند قالب واتساپ باید ایجاد شود.
این اقدام برای ارسال پیام واتساپ به یک مخاطب مرتبط با یک رکورد خاص استفاده میشود. برای انجام این کار، قالب واتساپ مناسب را از منوی کشویی انتخاب کنید.
افزودن دنبالکنندگان و حذف دنبالکنندگان¶
این عملیات برای اشتراک یا لغو اشتراک مخاطبین موجود در رکورد استفاده میشود.
ایجاد رکورد¶
این اقدام برای ایجاد یک رکورد جدید در هر مدلی استفاده میشود.
مدل مورد نیاز را در قسمت رکورد برای ایجاد انتخاب کنید؛ به طور پیشفرض شامل مدل فعلی است. یک نام برای رکورد مشخص کنید و سپس، اگر میخواهید رکورد را در مدل دیگری ایجاد کنید، یک فیلد را در قسمت فیلد لینک انتخاب کنید تا رکوردی که باعث ایجاد رکورد جدید شده است را لینک کنید.
توجه
فهرست کشویی مربوط به فیلد Link Field تنها شامل فیلدهای یکبهچند موجود در مدل فعلی است که به یک فیلد چندبهیک در مدل هدف متصل هستند.
نکته
شما میتوانید یک قانون خودکارسازی دیگر با اقدامات بهروزرسانی رکورد ایجاد کنید تا در صورت نیاز، فیلدهای رکورد جدید را بهروزرسانی کنید. بهعنوان مثال، میتوانید از اقدام ایجاد رکورد برای ایجاد یک وظیفه جدید در پروژه استفاده کنید و سپس با استفاده از اقدام بهروزرسانی رکورد آن را به یک کاربر خاص اختصاص دهید.
اجرای کد¶
مهم
برای قوانین خودکاری که نیاز به اجرای کد سفارشی دارند، توجه داشته باشید که نگهداری کد سفارشی در برنامههای قیمتگذاری استاندارد یا سفارشی گنجانده نشده و شامل هزینههای اضافی میشود.
این اقدام برای اجرای کد پایتون استفاده میشود. شما میتوانید کد خود را با استفاده از متغیرهای زیر در برگه کد بنویسید:
env
: محیطی که اقدام در آن انجام میشودمدل
: مدل رکوردی که عملیات بر روی آن انجام میشود؛ یک مجموعه رکورد خالی استرکورد
: رکوردی که اقدام بر روی آن انجام میشود؛ ممکن است خالی باشدرکوردها
: مجموعه رکوردهای تمامی رکوردهایی که عملیات در حالت چندگانه بر روی آنها اجرا میشود؛ این ممکن است خالی باقی بماندtime
،datetime
،dateutil
،timezone
: کتابخانههای مفید پایتونfloat_compare
: تابع کمکی برای مقایسه اعداد اعشاری بر اساس دقت مشخصlog(message, level='info')
: تابع ثبت برای ذخیره اطلاعات اشکالزدایی در جدول ir.logging_logger.info(message)
: لاگر برای ارسال پیامها در گزارشهای سرورخطای کاربر
: کلاس استثنا برای نمایش پیامهای هشدار به کاربراندستور
: فضای نام دستورات x2manyaction = {...}
: برای بازگرداندن یک اقدام
نکته
متغیرهای موجود هم در زبانههای کد و راهنما توضیح داده شدهاند.
همچنین ببینید
قابلیتهای ORM اودو <../../developer/reference/backend/orm>
ارسال اعلان وبهوک¶
این اقدام برای ارسال درخواست API نوع POST
با مقادیر فیلدهای انتخابشده به URL وبهوک مشخصشده در فیلد URL استفاده میشود.
نمونه بارگذاری پیشنمایشی از دادههای موجود در درخواست را با استفاده از دادههای یک رکورد تصادفی یا دادههای فرضی در صورت عدم وجود رکورد ارائه میدهد.
توجه
همچنین امکان تنظیم یک اقدام خودکار وجود دارد که از یک وبهوک برای دریافت دادهها از یک سیستم خارجی استفاده میکند زمانی که یک رویداد از پیش تعریف شده در آن سیستم رخ میدهد.
اجرای اقدامات موجود¶
این اقدام برای فعالسازی چندین اقدام (مرتبط با مدل فعلی) بهطور همزمان استفاده میشود. برای انجام این کار، روی افزودن یک خط کلیک کنید، سپس در پنجره افزودن: اقدامات فرعی یک اقدام موجود را انتخاب کنید یا روی جدید کلیک کنید تا یک اقدام جدید ایجاد کنید.