وقتی میخوای سریع آزمایش کنی، تحلیل بسازی، و بعد اگر خوب بود تبدیل به ماژول کنی، بهترین ابزار در اکوسیستم Odoo همین:
bi_sql_editor از ریپازیتوری OCA/reporting-engine
است.
بیایم دقیق و مهندسی بررسیش کنیم 👇
🧠 bi_sql_editor چیست؟
bi_sql_editor یک ابزار داخل Odoo است که بهت اجازه میدهد:
👉 بدون نوشتن ماژول
👉 فقط با SQL
👉 یک مدل تحلیلی (dynamic model) بسازی
👉 و مستقیم در UI از آن استفاده کنی
🎯 مسئلهای که حل میکند
سوالهایی که خودت گفتی 👇
- دادهها چطور آماده میشود ✅ (SQL)
- چه کسانی دسترسی دارند ✅ (Access Control)
- چطور نمایش داده میشود ✅ (Auto Views)
- چه زمانی بهروز میشود ✅ (Real-time یا manual)
👉 این ماژول دقیقاً این ۴ تا را پوشش میدهد
⚙️ نحوه کار (Step by Step)
1️⃣ تعریف Query
داخل UI:
SELECT
sml.product_id,
sml.date,
sml.qty_done,
(sml.full_weight - sml.empty_weight) AS net_weight
FROM stock_move_line sml
WHERE sml.state = 'done'
2️⃣ تبدیل به Model
ماژول به صورت خودکار:
_auto = False
یک مدل میسازد (مثل SQL View)
3️⃣ ساخت View اتوماتیک
خودش میسازد:
- Tree View
- Pivot View
- Graph View
4️⃣ استفاده توسط کاربر
کاربر میتواند:
- فیلتر کند
- group by بزند
- تحلیل کند
🔥 ویژگیهای کلیدی
✅ 1. بدون نیاز به توسعه
هیچ:
لازم نیست
✅ 2. بسیار سریع برای Prototype
تو میتونی:
- ۱۰ تا تحلیل مختلف بسازی
- بهترین رو انتخاب کنی
- بعد تبدیل به ماژول کنی
✅ 3. Dynamic Model
مدلها runtime ساخته میشوند
✅ 4. امنیت
میتوانی تعیین کنی:
- چه گروهی دسترسی داشته باشد
- فقط read باشد
✅ 5. Editable Query
هر زمان:
👉 query را تغییر بده
👉 نتیجه را بلافاصله ببین
🧱 این ماژول در معماری کجا قرار میگیرد؟
برمیگردیم به مدل سهلایهای:
🧩 لایه Data Processing
👉 bi_sql_editor اینجاست
| ابزار | نقش |
| SQL View | پایه |
| bi_sql_editor | نسخه dynamic و سریع |
🧩 لایه Presentation
👉 خروجی مستقیم میدهد:
⚡ تفاوت با SQL View معمولی
| ویژگی | SQL View (Module) | bi_sql_editor |
| نیاز به کدنویسی | بله | ❌ |
| سرعت توسعه | کند | 🚀 سریع |
| مناسب production | ✅ | ⚠️ بعد از تبدیل |
| مناسب تست | ❌ | ✅ عالی |
💡 بهترین use case
سناریوی واقعی تو (بتن)
تو میتونی سریع بسازی:
Query:
SELECT
partner_id,
product_id,
date::date as day,
SUM(qty_done) as total_qty,
SUM(full_weight - empty_weight) as net_weight
FROM stock_move_line
GROUP BY partner_id, product_id, day
نتیجه:
- تحلیل مصرف روزانه
- تحلیل مشتری
- تحلیل محصول
🧠 چرخه پیشنهادی حرفهای
این مهمترین بخشه 👇
مرحله 1: کشف (Discovery)
با bi_sql_editor:
- سریع query بنویس
- تحلیل بساز
- نیاز واقعی را کشف کن
مرحله 2: تثبیت (Stabilize)
وقتی مطمئن شدی:
👉 تبدیل به:
مرحله 3: ارائه (Present)
- Pivot
- Dashboard
- MIS Builder
⚠️ محدودیتها
❌ برای production سنگین نیست
- مدیریت version ندارد
- migration ندارد
❌ performance
- برای queryهای خیلی سنگین مناسب نیست
❌ dependency management
- اگر schema عوض شود، ممکن است query بشکند
🧠 جمعبندی
bi_sql_editor:
👉 یک ابزار Rapid BI داخل Odoo است
👉 برای ساخت سریع گزارشهای تحلیلی بدون کدنویسی
🎯 پاسخ نهایی به نیاز تو
اگر بخوام دقیق بگم:
این ماژول همان چیزی است که کمبودش در Odoo حس میشود:
یک لایه sandbox برای تحلیل داده قبل از تبدیل به ماژول