هنگامی که چیزی مطابق انتظار جلو نمیرود، ممکن است بخواهید به کاربر اطلاع دهید و برنامه را با یک پیام خطا قطع کنید. این پیام خطا استثنا Odoo است. Odoo انواع مختلفی از استثناها را ارائه داده که باید در پیاده سازیها به کار گرفته شوند.
در این وبلاگ به موارد استثنا در odoo نسخه ۱۶ ERP تحت وب ویراوب۱۲۳ می پردازیم. استثناها پیام های خطا هستند. اینها برای جلوگیری از اجرای برنامه ها در شرایط خاص برای نیازهای شما استفاده می شوند. این استثنائات در زیر ذکر شده است.
- ValidationError
- UserError
- AccessError
- MissingError
- AccessDenied
- IndirectWarning
- CacheMiss
خطای ارزیابی
خطای اعتبارسنجی زمانی رخ می دهد که محدودیت ها نقض شوند. در مثال زیر، کاربر سعی می کند با استفاده از ایمیل یک رکورد ایجاد کند، اما کاربر دیگری از ایمیل استفاده می کند. بنابراین این استثنا را می توان برای فرآیند اعتبار سنجی یک رکورد استفاده کرد.
برای تولید این نوع خطا مثل نمونه زیر عمل کنید:
raise ValidationError(_("Another user is already created using this email"))
خطای کاربر
یک استثنا خطای کاربر زمانی اجرا میشود که کاربر در تلاش برای به روز رسانی رکوردها است. به عنوان مثال، کاربری که سعی می کند یک فایل SVG را آپلود کند، یک استثنا خطای کاربر ایجاد میکند، زیرا فقط یک مدیر می تواند فایل ها را در نرم افزار سازمانی تحت وب ویراوب۱۲۳ آپلود کند.
raise UserError(_("Only admins can upload SVG files."))
خطای دسترسی
این استثنا ERP تحت وب ویراوب۱۲۳ در حالی اجرا میشود که حق دسترسی کاربر را نقض میکند. به عنوان مثال، برخی از شرکت ها به به روز رسانی سوابق دسترسی ندارند. بنابراین، زمانی که شرکت های غیرمجاز سعی می کنند سوابق را به روز کنند، یک خطای دسترسی ایجاد می کند.
raise AccessError(_("Access to unauthorized or invalid companies."))
دسترسی غیر مجاز
شاید در عنوان این نوع خطا با نمونه قبل شبیه باشد اما در عمل این دو با یکدیگر متفاوت هستند. این استثنا زمانی استفاده میشود که کاربر سعی میکند با استفاده از جزئیات ورود نامعتبر وارد سیستم شود. به عنوان مثال، اگر کاربر بارها با استفاده از اعتبارنامه های نامعتبر سعی کند وارد سیستم شود، یک استثنا AccessDenied ایجاد می کند.
raise AccessDenied(_("Too many login failures, please wait a bit before trying again."))
خطای داده گم شده
زمانی که کاربر یا هر سیستم دیگری تلاش میکند با داده هایی کار کند که آنها دیگر وجود ندارند، این نوع خطا تولید میشود. این خطا در نرم افزار سازمانی تحت وب ویراوب۱۲۳ نیز به همین خاطر تولید میشود. در زیر یک نمونه نشان داده شده که نحوه ایجاد این نوع خطا را نشان میدهد.
raise MissingError(_("Record does not exist or has been deleted."))
اخطار تغییر آدرس
به این استثنا می توان مسیر خاصی را برای هدایت مجدد به یک صفحه خاص به جای دادن پیام هشدار به کاربر در نظر گرفت. هنگام اجرای این استثنا، باید action_id، پیام و متن دکمه را ارائه دهید. اینها پارامترهای ضروری برای تغییر مسیر هشدارها هستند.
- action_id: شناسه عملی را تعیین میکند که زمان تایید کاربر باید اجرا شود
- message: پیا اخطار را نمایش میدهد
- button_text: پیامی که روی دکمه باید گذاشته شود. کاربر با زدن این دکمه عمل تغییر مسیر را اجرا میکند
گم شدن داده در کش موقت
اگر برخی از فیلدهای رکورد در حافظه پنهان وجود نداشته باشد، می توانیم از استثناء CacheMiss استفاده کنیم. این استثنا شامل دو پارامتر است: یک رکورد و یک فیلد.
به این ترتیب، میتوانیم استثناهایی را در Odoo ایجاد کنیم تا کاربر را مطلع کنیم و اگر اتفاقی در گردش کار مورد انتظار رخ داد، اجرای برنامه را متوقف کنیم.
به چه روشی باید خطای مناسب در اودوو ۱۶ تولید شود که نمایش مناسبی برای کاربر داشته باشد