Odoo da ikki kodsiz vosita bor. Avtomatik qoida biror hodisa yuz berganda tizim oʻzi amal bajarishini taʼminlaydi, masalan xabar yuboradi yoki faoliyat yaratadi. Tasdiqlash qoidasi esa tugma bosilishidan oldin masʼul odamning roziligini talab qiladi. Ikkalasi ham Studio ichida sozlanadi. Eng koʻp xato vaqtli qoidalarda chiqadi, shuning uchun ularni sozlagach qoʻlda bir marta ishga tushirish kerak.
Mebel ustaxonasida buyurtma «Tayyor» bosqichiga oʻtganda mijozga xabar borishi kerak, yirik buyurtmani esa direktor tasdiqlamaguncha tasdiqlab boʻlmasligi lozim. Bu gipotetik ikki talab Odoo da kod yozmasdan hal boʻladi: birinchisi avtomatik qoida, ikkinchisi tasdiqlash qoidasi deyiladi, ikkalasi ham Studio ichida sozlanadi.
Ikki vosita, ikki vazifa
Avtomatik qoida hodisaga javob beradi: biror narsa yuz berdi, tizim amal bajardi. Tasdiqlash qoidasi esa harakat oldida turadi: tugma bosildi, lekin avval kimdir rozilik berishi kerak.
Nomlarda kichik chalkashlik bor. Odoo 20.0 hujjati bu vositani avtomatik qoida deb ataydi, 19 versiya yangiliklari va yangilash qoʻllanmasi esa avtomatik harakat deb yozadi. Bular bir narsa. Qoidaning oʻzi ochiq koddagi asosiy omborda alohida modul sifatida bor va LGPL-3 litsenziyasi ostida chiqariladi. Studio uni qulay oyna orqali sozlash imkonini beradi.
Qoida uch qismdan iborat
Har qoidada hodisa, shart va amal bor. Hodisa qoidani uygʻotadi, shart kerakli yozuvlarni saralaydi, amal esa ishni bajaradi.
Hodisalar besh guruhga boʻlinadi: qiymat oʻzgarishi, elektron pochta voqealari, vaqt shartlari, maxsus hodisalar va tashqi chaqiruv. Qaysi hodisalar mavjudligi modelga bogʻliq. Masalan, vazifaga yorliq qoʻshilishi yoki masʼul shaxs belgilanishi tayyor hodisa sifatida kelishi mumkin.
Shart ikki xil boʻlishi mumkin. «Oʻzgarishdan oldingi shart» yozuv hodisa yuz berishidan oldin qanday boʻlganini tekshiradi, «qoʻllanish sharti» esa hodisadan keyingi holatni. Hujjat misol keltiradi. Mavjud kontaktga elektron pochta birinchi marta qoʻyilganda ishlaydigan, lekin pochta oʻzgartirilganda ishlamaydigan qoida kerak boʻlsin. Buning uchun oʻzgarishdan oldin pochta boʻsh va kontakt kompaniya emas, keyin esa pochta toʻldirilgan, deb yoziladi. Muhim nozik joy: yozuv endi yaratilayotgan boʻlsa, oʻzgarishdan oldingi shart tekshirilmaydi.
Shartni toʻgʻri yozish tezlikka ham taʼsir qiladi. Hujjatga koʻra, samarali filtr tizim keraksiz yozuvlarni qayta ishlamasligini taʼminlaydi. Qoidalar koʻpayganda ularni tushunib olish ham qiyinlashadi, shuning uchun hujjat ikki joyda izoh yozishni tavsiya qiladi: umumiy maqsad uchun alohida yorliq bor, har bir amal uchun esa oʻz tushuntirish yorligʻi.
Vaqtli qoidalar: eng koʻp xato qilinadigan joy
Vaqtli hodisa uch xil: sana maydonidan oldin yoki keyin, yozuv yaratilgandan keyin, oxirgi tahrirdan keyin, kechikish esa daqiqa, soat, kun yoki oyda beriladi.
Bunday qoida soatma-soat tekshirilmaydi. Uni Odoo ning rejali amali ishga tushiradi va u odatda har 4 soatda ishlaydi, kechikish 40 soatdan kam boʻlsa esa ishga tushish tezligi avtomatik oshadi, masalan 18 daqiqagacha. Amal faqat bajarilish vaqti rejali amalning oldingi va hozirgi ishga tushishi oraligʻiga tushsa bajariladi.
Shu sababli hujjat bir qadamni «muhim» deb belgilaydi: qoidani saqlagach, rejali amalni qoʻlda bir marta ishga tushirish kerak, aks holda qoida eski yozuvlarga ham orqaga qarab ishlab ketishi mumkin. Qoʻlda ishga tushirish oxirgi ishga tushish vaqtini belgilab qoʻyadi, qoidaning mantigʻi esa aynan shu vaqtga tayanadi.
Hujjatdagi misolni jadvalda koʻraylik. Shartnoma tugashidan 30 kun oldin xat yuboradigan qoida 15 oktyabr ertalab yaratilgan, shartnoma esa 14 noyabrda soat 23:59 da tugaydi.
| Qadam | Vaqt | Nima boʻladi |
|---|---|---|
| Qoida yaratildi, qoʻlda ishga tushirildi | 15 oktyabr, 11:00 | Oxirgi ishga tushish vaqti belgilandi |
| Rejali amal har 4 soatda ishlaydi | 15:00, 19:00, 23:00 | Amal vaqti hali kelmagan |
| Amalning bajarilish vaqti | 15 oktyabr, 23:59 | Shartnoma tugashidan 30 kun oldin |
| Navbatdagi ishga tushish | 16 oktyabr, 03:00 | Vaqt oraliqqa tushdi: xat yuboriladi |
Jadvaldan ikki xulosa chiqadi. Birinchisi, xat aynan 23:59 da emas, keyingi rejali ishga tushishda ketadi. Ikkinchisi, 14 noyabrdan oldin tugaydigan shartnomalar bu qoidaga tushmaydi, chunki ularning amal vaqti qoida yaratilishidan oldin boʻlgan. Hujjat yana ogohlantiradi: rejali amalni qoʻlda ishga tushirish har doim amal bajarilishini anglatmaydi, shuning uchun sinovda vaqt tartibini tekshirish kerak.
Amallar va ularning tartibi
Qoida bir yoki bir nechta amal bajaradi. Hujjatda yozuvni yangilash, yangi yoki nusxa yozuv yaratish, faoliyat yaratish, xabar yoki SMS yuborish, ichki izoh qoldirish, WhatsApp xabari, kuzatuvchi qoʻshish yoki olib tashlash, imzo soʻrash, tashqi chaqiruv yuborish, Python kodini bajarish va bir nechta amalni birlashtirish keltirilgan.
Amallar turlicha vazifa bajaradi. Yozuvni yangilash amali maydonni aniq qiymat bilan toʻldiradi, ketma-ketlik bilan raqamlaydi yoki hisoblaydi. Hujjat misoli: yangi mijozga yil va tartib raqamidan iborat havola raqami berish, bunda besh xonali tartib raqami 00001 dan boshlanadi. Yozuv yaratish amali esa boshqa modelda yangi yoki nusxa yozuv hosil qiladi: hujjatdagi misolda imkoniyat yutilgach, tayyor vazifalari bor loyiha shablonidan nusxa olinadi.
Xabar yuborish amali xabarni yozuv chatteriga qoldiradi va uni kuzatuvchilarga hamda shablon aniqlagan qabul qiluvchilarga joʻnatadi. Ichki foydalanuvchi xatni yoki Discuss dagi xabarni oladi, tashqi foydalanuvchi esa elektron pochta oladi. Bir nechta amalni birlashtirish mumkin: hujjat misolida katta imkoniyat yutilganda yorliq olib tashlanadi, tanishuv qoʻngʻirogʻi rejalashtiriladi, mijozga xat ketadi va ichki izoh qoldiriladi.
Tartib muhim. Agar avval yozuv yangilanib, keyin xabar yuborilsa, xabar yangi qiymatlarni oladi, tartib teskari boʻlsa esa xabar eski qiymatlar bilan ketadi. Hujjat tartibni amallar yonidagi tutqich bilan oʻzgartirishni koʻrsatadi.
Faoliyat yaratishda ham tanlov bor. Faoliyatni aniq foydalanuvchiga, rolga yoki yozuvga bogʻliq dinamik foydalanuvchiga berish mumkin. Muddat kun, hafta yoki oyda beriladi. Hujjat misoli: yuqori daromadli imkoniyatga taklif yuborilgach, savdo jamoasi rahbariga qoʻngʻiroq faoliyati yaratiladi.
Ayrim hodisalarning cheklovi ham bor. Oʻzgarishda maydon koʻrsatilmasa, qoida bir yozuv uchun bir necha marta ishlashi mumkin. Ekrandagi oʻzgarishga reaksiya beruvchi hodisa faqat Python kodi bilan ishlaydi va faqat qoʻlda qilingan oʻzgarishda ishga tushadi.
Tashqi tizim bilan aloqa
Qoida tashqi tizimdan kelgan hodisaga javob berishi ham mumkin. Buning uchun Odoo da chaqiruv manzili yaratiladi va u tashqi tizimda ulanadi, teskarisi ham bor: Odoo biror hodisadan keyin tanlangan maydonlarni boshqa tizimga yuboradi.
Hujjat bu yerda dasturchi, yechim arxitektori yoki boshqa texnik mutaxassis bilan maslahatlashishni qatʼiy tavsiya qiladi. Notoʻgʻri sozlangan chaqiruv bazaga xalaqit berishi va uni tiklash koʻp vaqt olishi mumkin.
Tasdiqlash qoidalari: tugma oldidagi eshik
Tasdiqlash qoidasi tugmaga bogʻlanadi. Studio da tugmani tanlab, tasdiqlash bosqichi qoʻshiladi. Bosqichda tasdiqlovchi foydalanuvchilar, yoki bitta guruh, yoki ikkalasi koʻrsatiladi. Alohida tasdiqlovchilar koʻrsatilgan boʻlsa, ularga soʻrov faoliyat sifatida boradi, ixtiyoriy ravishda esa tasdiq yoki rad etilganda xabar oladigan odamlar ham belgilanadi.
Bosqich shartga bogʻlanishi mumkin. Masalan, direktor faqat belgilangan chegaradan katta buyurtma uchun talab qilinadi. Bir nechta bosqich qoʻshilsa, tartib raqami beriladi: birinchi raqam birinchi bosqich. Yuqori bosqich tasdiqlovchisi pastki bosqichlarni tasdiqlashi yoki rad etishi mumkin, agar «eksklyuziv tasdiq» yoqilmagan boʻlsa. Eksklyuziv tasdiq bitta odamning bir yozuv uchun ikki bosqichni tasdiqlashiga yoʻl bermaydi.
Ikki bosqichli gipotetik sxemani jadvalda koʻraylik. Bu tahririyatning hujjatdagi sozlamalardan tuzgan namunasi.
| Bosqich | Tasdiqlovchi | Shart | Eksklyuziv tasdiq |
|---|---|---|---|
| 1 | Boʻlim boshligʻi guruhi | Har buyurtma | Yoʻq |
| 2 | Direktor | Buyurtma belgilangan chegaradan katta | Ha |
Bunda kichik buyurtma bitta bosqichdan oʻtadi, katta buyurtma esa ikkita bosqichdan. Eksklyuziv tasdiq yoqilgani uchun boʻlim boshligʻi, agar oʻzi direktor guruhida ham boʻlsa, ikkala bosqichni birdaniga tasdiqlay olmaydi.
Foydalanuvchi tomondan hammasi oddiy koʻrinadi. Tugma yonida har bosqich uchun avatar paydo boʻladi, ruxsati yoʻq odam tugmani bossa esa xato chiqadi va tasdiqlovchilarga faoliyat yuboriladi. Ruxsati bor odam harakatni oʻzi bajaradi yoki tasdiqlab, keyingi odamga qoldiradi, rad etadi va oʻz qarorini bekor ham qila oladi. Tasdiqlovchi huquqini vaqtincha boshqaga ham topshirishi mumkin.
Hammasi yozuv chatterida qayd etiladi, alohida tasdiqlash yozuvlari esa dasturchi rejimida texnik menyuda koʻrinadi.
Alohida Approvals ilovasi haqida
Odoo ning rasmiy sayti Approvals nomli alohida ilovani ham tasvirlaydi: u xodimlarning turli soʻrovlarini bir joyda boshqarish uchun moʻljallangan. Lekin 20.0 hujjatlarida bu ilova uchun alohida sahifa topilmadi. Tasdiqlash u yerda Studio qoidalari va PLM ilovasidagi oʻzgarishlarni koʻrib chiqish sifatida tasvirlangan. Shuning uchun bu maqola faqat Studio qoidalarini tasvirlaydi.
Odoo 19 va 20 da nima oʻzgargan
Odoo 19 amallarga kuzatuvchilarni dinamik qoʻshish imkonini berdi, yaʼni kuzatuvchi yozuvdagi maydondan olinadi. Shu bilan birga Obunalar ilovasining avtomatik qoidalarga bogʻliqligi olib tashlandi, qoidalarni hamma ilovada ishlatmoqchi boʻlgan foydalanuvchi esa Studio ni oʻrnatadi. Odoo 20 qoidalar orqali faoliyat rejalarini ishga tushirishni qoʻshdi, faoliyatni esa shaxsga yoki rolga biriktirish mumkin boʻldi.
Xatolar va ularning oldini olish
Hujjat ogohlantirishlaridan toʻrtta takrorlanuvchi xato koʻrinadi.
- Vaqtli qoidani saqlab, rejali amalni qoʻlda ishga tushirmaslik: qoida eski yozuvlarga ham ishlab ketishi mumkin.
- Maydon koʻrsatmasdan «yaratish va tahrirlash» hodisasidan foydalanish: qoida bir yozuvga bir necha marta ishlaydi.
- Amallar tartibini tekshirmaslik: xabar eski qiymatlar bilan ketadi.
- Tashqi chaqiruvni mutaxassissiz ulash: baza ishiga xalaqit berishi mumkin.
Yangilashdan keyin qoidalarni ham tekshirish kerak: hujjat sinaladigan narsalar roʻyxatiga server va avtomatik amallarni aniq kiritgan.
Amalda nima qilish mumkin
Quyidagi qadamlar hujjat qoidalaridan chiqarilgan tahririyat xulosasi.
- Qoidaga mazmunli nom bering va maqsadini izoh yorligʻida yozing.
- Hodisa, shart va amalni alohida yozib chiqing, keyin sozlang.
- Vaqtli qoidani saqlagach, rejali amalni qoʻlda bir marta ishga tushiring.
- Tasdiqlash bosqichlarini guruhga bering, alohida odamga emas: odam ketsa, jarayon toʻxtamaydi.
- Sinovni nusxa bazada qiling: avval ichki izoh qoldiradigan oddiy amal bilan qoida ishlashini tekshiring, keyin haqiqiy amalni qoʻshing.
Avtomatik qoida hodisaga javob beradi, tasdiqlash qoidasi esa harakat oldida eshik boʻladi. Ikkalasi ham kodsiz sozlanadi, lekin ikkalasini ham sinash, nomlash va hujjatlashtirish kerak. Savol shunday qoʻyiladi: bu jarayon odamga tayanadimi yoki tizim oʻzi bajarsa yetadimi?
Asosiy atamalar
- Avtomatik qoida
- Biror hodisa yuz berganda tizim oʻzi bajaradigan amal. Masalan, buyurtma tayyor boʻlganda mijozga xabar yuborish.
- Hodisa
- Qoidani ishga tushiradigan voqea: yozuv yaratildi, maydon oʻzgardi, xat keldi yoki belgilangan vaqt keldi.
- Shart
- Qoida faqat maʼlum yozuvlarga tegishi uchun qoʻyiladigan filtr. Masalan, faqat tasdiqlangan buyurtmalar.
- Amal
- Qoida bajaradigan harakat: yozuvni yangilash, xabar yuborish, faoliyat yaratish va boshqalar.
- Rejali amal
- Odoo ning orqa fonda belgilangan oraliqda ishga tushadigan vazifasi. Vaqtli qoidalar shunga tayanadi.
- Webhook
- Bir tizim boshqasiga hodisa haqida avtomatik xabar yuboradigan internet manzili.
- Tasdiqlash qoidasi
- Tugma bosilishidan oldin belgilangan odamlardan rozilik talab qiladigan sozlama.
- Tasdiqlovchi
- Tugma uchun rozilik berish huquqi bor foydalanuvchi yoki guruh.
- Faoliyat
- Odoo da yozuvga biriktirilgan vazifa: qoʻngʻiroq, uchrashuv, tekshirish va boshqalar.
- Chatter
- Yozuv pastidagi yozishmalar va oʻzgarishlar jurnali. Tasdiqlash harakatlari ham shu yerda qayd etiladi.
Manbalar
Maqola quyidagi manbalarga tayanadi:
- Odoo S.A., Studio: Automation rules, Odoo 20.0 hujjatlari. https://www.odoo.com/documentation/20.0/applications/studio/automated_actions.html (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., Studio: Approval rules, Odoo 20.0 hujjatlari. https://www.odoo.com/documentation/20.0/applications/studio/approval_rules.html (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., Odoo 19 Release Notes, 2025 sentyabr, Studio va Subscriptions boʻlimlari. https://www.odoo.com/odoo-19-release-notes (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., Odoo 20 Release Notes, 2026 sentyabr, General va Studio boʻlimlari. https://www.odoo.com/odoo-20-release-notes (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., avtomatik qoidalar modulining tavsifi, odoo/odoo omborining 20.0 tarmogʻi. https://github.com/odoo/odoo/blob/20.0/addons/base_automation/__manifest__.py (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., Approvals, odoo.com ilova sahifasi. https://www.odoo.com/app/approvals (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., Product Lifecycle Management, Odoo 20.0 hujjatlari. https://www.odoo.com/documentation/20.0/applications/inventory_and_mrp/plm.html (koʻrilgan: 23-oktabr, 2026)
- Odoo S.A., Upgrade a customized database, Odoo 20.0 dasturchi hujjatlari. https://www.odoo.com/documentation/20.0/developer/howtos/upgrade_custom_db.html (koʻrilgan: 23-oktabr, 2026)