Data Analytics & BI serimizin bir parçası
Tam kılavuzu okuyunPower BI + Odoo Entegrasyonu İçin Tam Kılavuz
Odoo, 12 milyondan fazla kullanıcısı ve satış ve envanterden üretim ve insan kaynaklarına kadar her şeyi kapsayan 43 resmi modülüyle dünyanın en güçlü açık kaynaklı ERP platformlarından biridir. Power BI, aylık 300 milyondan fazla aktif kullanıcısıyla sektör lideri iş zekası platformudur. Ancak şaşırtıcı bir şekilde çok az kuruluş bu iki sistemi birbirine bağlayarak masada muazzam bir analitik değer bırakıyor.
Bunun nedeni açıktır: Odoo'nun kendi yerleşik raporlaması vardır ve çoğu Power BI danışmanlığı Microsoft Dynamics, SAP veya Salesforce entegrasyonlarına odaklanır. Çok az firmanın her iki platformda da derin uzmanlığı var. ECOSIRE olarak 43'ten fazla Odoo modülü oluşturup dağıttık ve derin Power BI uzmanlığımızı sürdürüyoruz; bu da Odoo + Power BI kombinasyonunu temel uzmanlıklarımızdan biri haline getiriyor. Bu kılavuz, düzinelerce gerçek dünya entegrasyonundan öğrendiğimiz her şeyi özetlemektedir.
Temel Çıkarımlar
- Odoo'nun PostgreSQL veritabanı, yerel PostgreSQL bağlayıcısı kullanılarak doğrudan Power BI Desktop'a bağlanabilir, böylece her tabloya ve alana tam erişim sağlayabilirsiniz
- Analitik için en değerli beş Odoo tablosu sale_order, account_move,stock_picking, hr_employee ve mrp_prodüksiyondur — birlikte yönetici raporlama ihtiyaçlarının yüzde 80'ini karşılarlar
- Power BI'daki artımlı yenileme, yalnızca son yenilemeden bu yana değişen kayıtları getirerek Odoo veri yükleme sürelerini saatlerden dakikalara indirebilir
- OData uç noktaları ve Odoo'nun Harici API'si, doğrudan veritabanı erişimi mümkün olmadığında bulut dostu alternatifler sağlar
- Power BI'daki satır düzeyinde güvenlik, Odoo'nun çok şirketli erişim denetimlerini yansıtarak kullanıcıların yalnızca kendilerine atanmış şirketlerden gelen verileri görmesini sağlar
- Odoo'nun PostgreSQL veritabanına yönelik özel SQL sorguları, veritabanı düzeyinde filtreleme, birleştirme ve toplama işlemleri gerçekleştirebildiğiniz için genel tablo içe aktarma işlemlerinden 5-10 kat daha iyi performans gösterir
- İyi tasarlanmış bir Odoo + Power BI dağıtımı, düzinelerce elektronik tablo raporunun yerini tek bir yönetilen analiz platformuyla alır
Odoo + Power BI Neden Güçlü Bir Kombinasyondur?
Odoo'nun Yerleşik Raporlamasının Sınırlamaları
Odoo çeşitli raporlama araçlarıyla birlikte gelir: özet görünümler, grafik görünümleri ve yerleşik bir kontrol paneli. Günlük işlemler için bunlar yeterlidir. Ancak kurumsal analiz konusunda birkaç kritik açıdan yetersiz kalıyorlar.
İlk olarak, Odoo'nun pivot görünümleri birden fazla modülden gelen verileri tek bir görselleştirmede birleştiremez. Tek bir grafikte satış gelirini stok devir hızı ve üretim verimiyle birleştiremezsiniz. Her modülün raporlaması ayrı tutulur.
İkincisi, Odoo'nun zaman zekası fonksiyonları yok. Yıldan yıla karşılaştırmalar, yuvarlanan ortalamalar, kümülatif toplamlar ve dönemden bugüne hesaplamalar, özel geliştirme veya manuel elektronik tablo aktarımı gerektirir.
Üçüncüsü, Odoo'nun yönetilen veri modeli kavramı yoktur. "Gelir" veya "müşteri yaşam boyu değeri" gibi metrikler için paylaşılan bir tanım yoktur. Her kullanıcının kendi yorumunu yaratması, yönetim toplantılarında çelişkili rakamlara yol açmaktadır.
Dördüncüsü, Odoo'nun görselleştirme yetenekleri temel çubuk grafikler, çizgi grafikler ve pasta grafiklerle sınırlıdır. Isı haritaları, dağılım grafikleri, şelale grafikleri, ayrıştırma ağaçları ve KPI kartları mevcut değildir.
Power BI'nın Katkıları
Power BI bu sınırlamaların her birini ele alır. Odoo'nun PostgreSQL veritabanına (veya API'sine) bağlanır ve tüm modüllerde birleşik bir anlamsal model oluşturur. DAX formülleri zaman zekası, istatistiksel işlevler ve karmaşık iş mantığı sağlar. Görselleştirme kütüphanesi 300'den fazla grafik türünü içerir. Power BI'ın yönetim özellikleri (çalışma alanları, satır düzeyinde güvenlik, onay, duyarlılık etiketleri) kurumsal düzeyde veri yönetimi sağlar.
Bu kombinasyon size günlük işler için Odoo'nun operasyonel mükemmelliğini ve stratejik karar alma için Power BI'nın analitik derinliğini kazandırır. Operasyon ekipleri Odoo'da çalışmaya devam ediyor; yöneticiler ve analistler otomatik olarak güncellenen Power BI panolarına sahip oluyor.
Bağlantı Yöntemleri: Doğrudan Veritabanı ve API
Power BI'ı Odoo'ya bağlamanın üç temel yöntemi vardır. Her birinin barındırma modelinize ve güvenlik gereksinimlerinize bağlı olarak değiş tokuşları vardır.
Yöntem 1: Doğrudan PostgreSQL Bağlantısı
Bu, şirket içi veya şirket içinde barındırılan Odoo dağıtımları için tercih edilen yöntemdir. Odoo tüm verileri PostgreSQL'de depolar ve Power BI'da yerel bir PostgreSQL bağlayıcı bulunur.
Avantajları:
- En hızlı sorgu performansı (API ek yükü yok)
- Özel modüller dahil her tablo ve alana tam erişim
- Veritabanı düzeyinde birleştirme ve toplamalarla karmaşık SQL sorgularını destekler
- Artımlı yenilemeyi etkinleştirir (bir tarihsaat sütunu gerektirir)
- Odoo lisansı veya API hız sınırı yok
Kurulum adımları:
- Power BI Desktop'ı açın ve Veri Al'ı, ardından PostgreSQL veritabanı'nı seçin
- Odoo sunucunuzun ana bilgisayar adını ve veritabanı adını girin (genellikle Odoo örnek adı)
- Salt okunur bir veritabanı kullanıcısı kullanın (asla Odoo yönetici hesabını kullanmayın)
- Çoğu senaryo için İçe Aktarma modunu veya gerçek zamanlı ihtiyaçlar için DirectQuery'yi seçin.
- Tablo listesinde gezinin veya özel bir SQL sorgusu kullanın
Bağlantı dizesi parametreleri:
| Parametre | Tipik Değer |
|---|---|
| Sunucu | sizin-odoo-sunucunuz.com:5432 |
| Veritabanı | odoo_prodüksiyon |
| Kullanıcı adı | powerbi_readonly |
| Şifre | (kimlik bilgilerinde saklanır) |
| SSL Modu | Gerektir (üretim için) |
| Komut Zaman Aşımı | 600 (saniye, büyük sorgular için) |
PostgreSQL'de salt okunur bir kullanıcı oluşturma:
CREATE ROLE powerbi_readonly WITH LOGIN PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE odoo_production TO powerbi_readonly;
GRANT USAGE ON SCHEMA public TO powerbi_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO powerbi_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO powerbi_readonly;
Bu yaklaşım, Power BI'ın üretim veritabanınıza herhangi bir yazma erişimi olmadan mevcut ve gelecekteki tüm tabloları okuyabilmesini sağlar.
Yöntem 2: Odoo Harici API (XML-RPC / JSON-RPC)
Odoo, verileri okumak ve yazmak için tam bir API sunar. Power BI bunu özel bağlayıcılar veya Python betikleri aracılığıyla kullanabilir.
Avantajları:
- Odoo.sh ve Odoo Online ile çalışır (doğrudan veritabanı erişimi gerekmez)
- Odoo'nun erişim kontrol kurallarına ve kayıt kurallarına saygı duyar
- Veritabanı portunu harici olarak açığa çıkarmaya gerek yok
Dezavantajları:
- Doğrudan veritabanı sorgularından önemli ölçüde daha yavaş (büyük veri kümeleri için 10-100x)
- API oranı limitleri yüksek hacimli ekstraktları kısıtlayabilir
- Özel bir Power Query işlevi veya ara ETL adımı gerektirir
- Sayfalandırma karmaşıklığı artırır
Odoo'nun JSON-RPC uç noktası için tipik bir Power Query M işlevi, kimlik doğrulamayla birlikte https://your-odoo.com/jsonrpc öğesini çağırır ve ardından sonuçları sayfalara ayırır. Bu işe yarar ancak 50.000'den fazla kaydın bulunduğu tablolar için pratik değildir.
Yöntem 3: Odoo Bağlayıcı Modülleri aracılığıyla OData Uç Noktaları
Çeşitli Odoo topluluk modülleri, Power BI'ın yerel olarak kullanabileceği OData akışlarını kullanıma sunar. Power BI'daki OData bağlayıcısı, kimlik doğrulamayı ve sayfalandırmayı anında destekler.
Bu yöntem ne zaman kullanılmalı:
- Veritabanı erişiminin kısıtlandığı Odoo Online / Odoo.sh dağıtımları
- Verilerde Odoo'nun iş mantığını (hesaplanan alanlar, erişim kuralları) gerektiren senaryolar
- Daha küçük veri kümeleri (varlık başına 100.000'den az kayıt)
Çoğu kurumsal dağıtım için Yöntem 1 (doğrudan PostgreSQL) şiddetle tavsiye edilir. Performans farkı büyüktür ve SQL sorgularının esnekliği, verileri kaynakta şekillendirmenize olanak tanır.
Power BI için Temel Odoo Tabloları
Odoo'nun PostgreSQL veritabanı yüzlerce tablo içerir. Temel tabloları ve bunların ilişkilerini anlamak, etkili Power BI modelleri oluşturmak için kritik öneme sahiptir. Yönetici kontrol panellerinin yüzde 80'ini destekleyen tablolar aşağıdadır.
Satış Modülü Tabloları
| Tablo | Amaç | Anahtar Alanlar |
|---|---|---|
| sale_order | Satış siparişleri (başlıklar) | kimlik, ad, iş ortağı_kimliği, sipariş_tarihi, toplam_miktar, eyalet, şirket_kimliği, kullanıcı_kimliği |
| sale_order_line | Satış siparişi satır öğeleri | sipariş_kimliği, ürün_kimliği, ürün_uom_adet, fiyat_birimi, fiyat_alttoplam, indirim |
| res_partner | Müşteriler ve satıcılar | kimlik, ad, e-posta, ülke_kimliği, kategori_kimliği, müşteri_sıralaması, tedarikçi_sıralaması |
| ürün_ürün | Ürün çeşitleri | kimlik, varsayılan_kod, liste_fiyatı, standart_fiyat, kategori_kimliği, aktif |
| ürün_şablonu | Ürün şablonları | kimlik, ad, tür, indirim_tamam, satınalma_tamam |
Önemli ilişkiler: sale_order.partner_id, res_partner.id'ye bağlantılar. sale_order_line.product_id,product_product.id'ye bağlanır. product_product.product_tmpl_id,product_template.id'ye bağlanır.
Tipik bir satış analitiği sorgusu, denormalize edilmiş bir olgu tablosu oluşturmak için bu tabloları birleştirir:
SELECT
so.id AS order_id,
so.name AS order_number,
so.date_order,
so.state,
rp.name AS customer_name,
rp.country_id,
rc.name AS country_name,
sol.product_id,
pt.name AS product_name,
pc.name AS product_category,
sol.product_uom_qty AS quantity,
sol.price_unit,
sol.discount,
sol.price_subtotal AS line_total,
so.amount_total AS order_total,
ru.login AS salesperson
FROM sale_order so
JOIN sale_order_line sol ON sol.order_id = so.id
JOIN res_partner rp ON so.partner_id = rp.id
LEFT JOIN res_country rc ON rp.country_id = rc.id
JOIN product_product pp ON sol.product_id = pp.id
JOIN product_template pt ON pp.product_tmpl_id = pt.id
LEFT JOIN product_category pc ON pt.categ_id = pc.id
LEFT JOIN res_users ru ON so.user_id = ru.id
WHERE so.state IN ('sale', 'done')
ORDER BY so.date_order DESC;
Muhasebe Modül Tabloları
| Tablo | Amaç | Anahtar Alanlar |
|---|---|---|
| account_move | Faturalar, faturalar, yevmiye kayıtları | kimlik, ad, taşıma_türü, iş ortağı_kimliği, fatura_tarihi, miktar_toplam, durum, ödeme_durumu |
| account_move_line | Günlük girişi satırları | move_id, account_id, borç, kredi, bakiye, tarih, partner_id |
| account_account | Hesap planı | kimlik, kod, ad, hesap_türü |
| account_payment | Ödemeler | kimlik, partner_id, tutar, tarih, durum, ödeme_türü |
| account_journal | Günlükler (banka, satış vb.) | kimlik, ad, tür, kod |
Kritik ayrım: Odoo'da account_move, faturaları (move_type = 'out_invoice'), satıcı faturalarını ('in_invoice'), kredi notlarını ('out_refund', 'in_refund') ve yevmiye girişlerini ('giriş') saklar. Power BI sorgularınızda her zaman move_type'a göre filtreleyin.
account_move'daki payment_state alanı size bir faturanın 'ödenmemiş', 'ödemeli', 'ödenmiş', 'kısmi' veya 'geri çevrilmiş' olup olmadığını belirtir. Bu, alacak hesaplarının yaşlandırma kontrol panelleri için gereklidir.
Envanter Modül Tabloları
| Tablo | Amaç | Anahtar Alanlar |
|---|---|---|
| stok_toplama | Teslimat siparişleri, makbuzlar, dahili transferler | kimlik, ad, partner_id, planlanan_tarih, tarih_done, durum, picking_type_id |
| stok_move | Bireysel ürün hareketleri | picking_id, ürün_id, ürün_uom_qty, miktar, durum, tarih |
| stok_quant | Mevcut mevcut envanter | ürün_kimliği, konum_kimliği, miktar, ayrılmış_miktar |
| stok_konumu | Depolar, bölgeler, silolar | kimlik, ad, kullanım, konum_kimliği (ana) |
| stok_depo | Depo tanımları | kimlik, ad, kod, partner_id |
Gerçek zamanlı envanter: Stock_quant her zaman envanterin mevcut durumunu yansıtır. Geçmiş envanter analizi için, stok_move'u tarih filtreleriyle sorgulamanız ve cari bakiyeleri hesaplamanız gerekir.
Üretim Modül Tabloları
| Tablo | Amaç | Anahtar Alanlar |
|---|---|---|
| mrp_prodüksiyon | Üretim siparişleri | kimlik, ad, ürün_kimliği, ürün_adet, tarih_başlangıç, tarih_bitiş, durum |
| mrp_bom | Malzeme listeleri | kimlik, ürün_tmpl_id, ürün_miktarı, tür |
| mrp_bom_line | Malzeme Listesi bileşenleri | bom_id, ürün_id, ürün_adet |
| mrp_workorder | İş emri işlemleri | üretim_kimliği, çalışma merkezi_kimliği, süre, durum |
| mrp_workcenter | İş merkezleri/makineler | kimlik, ad, kapasite, time_efficiency |
OEE hesaplaması: Genel Ekipman Verimliliği, planlanan süreyi fiili süreyle karşılaştırarak, kesinti nedenlerini analiz ederek ve kalite ölçümlerini takip ederek mrp_workorder kayıtlarından elde edilebilir.
İnsan Kaynakları Tabloları
| Tablo | Amaç | Anahtar Alanlar |
|---|---|---|
| hr_çalışan | Çalışan kayıtları | kimlik, ad, departman_kimliği, iş_kimliği, iş_e-postası, etkin |
| hr_department | Bölümler | kimlik, ad, ebeveyn_kimliği, yönetici_kimliği |
| hr_sözleşme | İş sözleşmeleri | çalışan_kimliği, ücret, başlangıç_tarihi, tarih_bitiş, eyalet |
| hr_leave | Mola talepleri | çalışan_kimliği, tatil_durum_kimliği, başlangıç tarihi, bitiş tarihi, eyalet |
| hr_attendance | Saat giriş/çıkış kayıtları | çalışan_kimliği, giriş_çıkış, çıkış_saati, çalışılan_saatler |
Power BI Veri Modelini Oluşturma
Yıldız Şeması Tasarımı
Odoo analitiği için en etkili veri modeli yıldız şeması modelini takip eder. Bilgi tabloları (satış siparişleri, faturalar, stok hareketleri, üretim siparişleri) merkezde yer alır. Boyut tabloları (ürünler, müşteriler, tarihler, çalışanlar, konumlar) bunları çevreler.
Önerilen bilgi tabloları:
- Fact_Sales — sale_order + sale_order_line'dan (tane: sipariş satırı başına bir satır)
- Fact_Invoices — account_move + account_move_line'dan (tahıl: günlük satırı başına bir satır)
- Fact_Inventory — Stock_move'dan (tahıl: stok hareketi başına bir satır)
- Fact_Production — mrp_prodüksiyon + mrp_workorder'dan (tahıl: iş emri başına bir satır)
- Fact_Attendance — hr_attendance'den (tane: saat giriş/çıkış çifti başına bir satır)
Paylaşılan boyut tabloları:
- Dim_Date — Power BI'da oluşturulan bir takvim tablosu (zaman zekası için gereklidir)
- Dim_Customer — res_partner'dan (customer_rank > 0'a kadar filtrelendi)
- Dim_Product — ürün_ürün + ürün_template + ürün_kategorisinden
- Dim_Employee — hr_employee + hr_department + hr_job'dan
- Dim_Location — stok_konumu + stok_warehouse'dan
- Dim_Company — res_company'den (çok şirketli Odoo dağıtımları için)
Tarih Boyutunu Oluşturma
Odoo'nun özel bir tarih boyutu tablosu yoktur. DAX'ı kullanarak Power BI'da bir tane oluşturmanız gerekir:
Dim_Date =
ADDCOLUMNS(
CALENDAR(DATE(2020, 1, 1), DATE(2030, 12, 31)),
"Year", YEAR([Date]),
"Quarter", "Q" & QUARTER([Date]),
"Month", FORMAT([Date], "MMMM"),
"MonthNumber", MONTH([Date]),
"WeekNumber", WEEKNUM([Date]),
"DayOfWeek", FORMAT([Date], "dddd"),
"FiscalYear", IF(MONTH([Date]) >= 4, YEAR([Date]), YEAR([Date]) - 1),
"FiscalQuarter", "FQ" & SWITCH(TRUE(),
MONTH([Date]) >= 10, 3,
MONTH([Date]) >= 7, 2,
MONTH([Date]) >= 4, 1,
4
),
"IsWeekend", IF(WEEKDAY([Date], 2) > 5, TRUE(), FALSE()),
"YearMonth", FORMAT([Date], "YYYY-MM")
)
Bu tabloyu Power BI'da bir tarih tablosu olarak işaretleyin ve her olgu tablosunun tarih sütunundan Dim_Date[Date] ile ilişkiler oluşturun. Mali yılın başlangıç ayını kuruluşunuza uyacak şekilde ayarlayın.
Odoo'nun Çok Şirketli Yapısının Yönetilmesi
Odoo, tek bir veritabanının birden fazla tüzel kişiye hizmet verdiği çok şirketli yapılandırmaları destekler. Her işlem tablosu bir company_id yabancı anahtar içerir. Power BI'da res_company'den bir Dim_Company tablosu oluşturun ve her olgu tablosuyla ilişkiler kurun.
Satır düzeyinde güvenlik için, oturum açan kullanıcının şirket atamasına göre Dim_Company'yi filtrelemek üzere Power BI'ın RLS özelliğini kullanın. Bu, Odoo'nun BI katmanındaki çok şirketli erişim kontrollerini yansıtır.
Kontrol Paneli Tarifleri: Satış Analitiği
Yönetici Satış Kontrol Paneli
Bu kontrol paneli her CEO'nun sorduğu beş soruyu yanıtlıyor: Bu ay gelir ne kadar? Çeyrek için doğru yolda mıyız? Hangi ürünler kazanıyor? Hangi satış görevlileri performans sergiliyor? Müşterilerimiz nerede?
Oluşturmaya yönelik önlemler:
Total Revenue = SUM(Fact_Sales[line_total])
Revenue MTD =
TOTALMTD([Total Revenue], Dim_Date[Date])
Revenue QTD =
TOTALQTD([Total Revenue], Dim_Date[Date])
Revenue YTD =
TOTALYTD([Total Revenue], Dim_Date[Date])
Revenue PY =
CALCULATE([Total Revenue], SAMEPERIODLASTYEAR(Dim_Date[Date]))
Revenue Growth % =
DIVIDE([Total Revenue] - [Revenue PY], [Revenue PY], 0)
Average Order Value =
DIVIDE([Total Revenue], DISTINCTCOUNT(Fact_Sales[order_id]))
Orders Count =
DISTINCTCOUNT(Fact_Sales[order_id])
Görsel düzen:
-
- Sıra: Dört KPI kartı (Gelir MTD, Gelir QTD, Gelir YTD, Büyüme %'si)
-
- Satır: Çizgi grafik (aylık gelir, cari yıl ile önceki yılın karşılaştırması) ve çubuk grafik (ürün kategorisine göre gelir)
-
- Satır: Harita görseli (müşteri ülkesine göre gelir) ve tablo (gelir, sipariş sayısı, ortalama anlaşma boyutuyla ilk 10 satış elemanı)
-
- Satır: Şelale grafiği (gelir köprüsü: yeni müşteriler, mevcut ve kaybedilen müşteriler) ve halka grafiği (satış kanalına göre gelir)
Satış Hattı Analizi
Odoo CRM'yi Satış modülünün yanında kullanıyorsanız, satış hattı kontrol panelleri oluşturmak için crm_lead tablosunu bağlayın:
| Tablo | Amaç | Anahtar Alanlar |
|---|---|---|
| crm_lead | Fırsatlar ve potansiyel müşteriler | kimlik, ad, iş ortağı_kimliği, beklenen_gelir, olasılık, aşama_kimliği, kullanıcı_kimliği, tarih_son tarih |
| crm_stage | Boru hattı aşamaları | kimlik, ad, sıra |
Boru hattı önlemleri:
Pipeline Value =
SUMX(
FILTER(Fact_Pipeline, Fact_Pipeline[active] = TRUE()),
Fact_Pipeline[expected_revenue] * Fact_Pipeline[probability] / 100
)
Win Rate =
DIVIDE(
CALCULATE(COUNTROWS(Fact_Pipeline), Fact_Pipeline[stage_name] = "Won"),
CALCULATE(COUNTROWS(Fact_Pipeline),
OR(Fact_Pipeline[stage_name] = "Won", Fact_Pipeline[stage_name] = "Lost")
)
)
Average Sales Cycle Days =
AVERAGEX(
FILTER(Fact_Pipeline, Fact_Pipeline[stage_name] = "Won"),
DATEDIFF(Fact_Pipeline[create_date], Fact_Pipeline[date_closed], DAY)
)
Kontrol Paneli Tarifleri: Envanter ve Tedarik Zinciri
Envanter Durumu Kontrol Paneli
Bu kontrol paneli stok seviyelerini, ciro oranlarını ve tedarik zinciri performansını izler.
Temel önlemler:
Inventory Value =
SUMX(Fact_Inventory_Current, Fact_Inventory_Current[quantity] * RELATED(Dim_Product[standard_price]))
Inventory Turnover =
DIVIDE(
[COGS Trailing 12 Months],
[Average Inventory Value]
)
Days of Inventory =
DIVIDE(365, [Inventory Turnover])
Stockout Rate =
DIVIDE(
CALCULATE(COUNTROWS(Dim_Product), Dim_Product[on_hand_qty] <= 0, Dim_Product[active] = TRUE()),
CALCULATE(COUNTROWS(Dim_Product), Dim_Product[active] = TRUE())
)
Reorder Point Items =
CALCULATE(
COUNTROWS(Dim_Product),
FILTER(Dim_Product, Dim_Product[on_hand_qty] <= Dim_Product[reorder_min])
)
Görseller:
- KPI kartları: Toplam stok değeri, ciro oranı, stokta kalma oranı, yeniden sipariş noktasının altındaki ürünler
- Dağılım grafiği: Her ürün ciro oranı (x ekseni) ve marj (y ekseni) ile çizilir ve gelir katkısına göre boyutlandırılır --- bu ABC-XYZ analiz görselidir
- Çubuk grafik: Envanter değerine göre ilk 20 ürün (yavaş hareket eden stoklara bağlı sermayeyi tanımlar)
- Tablo: Mevcut stok, günlük talep ve tahmini stok tükenme tarihiyle birlikte yeniden sipariş noktasının altındaki ürünler
Teslimat Performansı
stock_picking'dan zamanında teslimatı ölçün:
On-Time Delivery Rate =
DIVIDE(
CALCULATE(
COUNTROWS(Fact_Deliveries),
Fact_Deliveries[date_done] <= Fact_Deliveries[scheduled_date]
),
COUNTROWS(Fact_Deliveries)
)
Average Lead Time Days =
AVERAGEX(
Fact_Deliveries,
DATEDIFF(Fact_Deliveries[create_date], Fact_Deliveries[date_done], DAY)
)
Kontrol Paneli Tarifleri: Üretim
Üretim Performansı Kontrol Paneli
Odoo Manufacturing çalıştıran üreticiler için mrp_prodüksiyon ve mrp_workorder tabloları zengin operasyonel veriler sağlar.
OEE (Genel Ekipman Verimliliği) hesaplaması:
Availability =
DIVIDE(
[Actual Production Time],
[Planned Production Time]
)
Performance Rate =
DIVIDE(
[Ideal Cycle Time] * [Total Units Produced],
[Actual Production Time]
)
Quality Rate =
DIVIDE(
[Good Units],
[Total Units Produced]
)
OEE = [Availability] * [Performance Rate] * [Quality Rate]
Görseller:
- Gösterge grafikleri: OEE, Kullanılabilirlik, Performans, Kalite (her biri hedef eşik değerlerine sahiptir: %85'in üzerinde yeşil, %60-85 sarı, %60'ın altında kırmızı)
- Çizgi grafiği: Kontrol limitleriyle birlikte haftaya göre OEE eğilimi
- Kümelenmiş çubuk grafik: İş merkezine göre OEE, hangi makinelerin düşük performans gösterdiğini ortaya koyuyor
- Tablo: Planlanan ve gerçekleşen süreyi, sapmayı ve hurda miktarını içeren üretim siparişleri
İş Merkezi Kullanımı
Utilization Rate =
DIVIDE(
SUM(Fact_WorkOrders[duration_minutes]),
[Available Minutes Per Period]
)
Downtime Hours =
DIVIDE(
[Available Minutes Per Period] - SUM(Fact_WorkOrders[duration_minutes]),
60
)
Bu kontrol paneli, üretim yöneticilerinin darboğazlı iş merkezlerini belirlemesine ve planlamayı optimize etmesine yardımcı olur. Odoo'nun planlama modülü verileriyle birleştirildiğinde, maksimum kullanıma ne zaman ulaşacağınızı tahmin eden kapasite planlama modelleri oluşturabilirsiniz.
Kontrol Paneli Tarifleri: İK ve İşgücü
İşgücü Analitiği Kontrol Paneli
Odoo verilerinden oluşturulan İK kontrol panelleri, çoğu HRIS sisteminin yüksek fiyatlar talep ettiği bilgiler sağlar.
Çalışan sayısı ve ciro ölçümleri:
Active Employees =
CALCULATE(
COUNTROWS(Dim_Employee),
Dim_Employee[active] = TRUE()
)
Attrition Rate =
DIVIDE(
CALCULATE(
COUNTROWS(Dim_Employee),
Dim_Employee[departure_date] <> BLANK(),
YEAR(Dim_Employee[departure_date]) = YEAR(TODAY())
),
[Average Headcount],
0
)
Average Tenure Years =
AVERAGEX(
FILTER(Dim_Employee, Dim_Employee[active] = TRUE()),
DATEDIFF(Dim_Employee[contract_start_date], TODAY(), DAY) / 365.25
)
Cost Per Employee =
DIVIDE(
SUM(Fact_Payroll[total_cost]),
[Active Employees]
)
hr_leave'deki devamsızlık analizi:
Absence Rate =
DIVIDE(
SUM(Fact_Leaves[number_of_days]),
[Working Days In Period] * [Active Employees]
)
Bradford Factor =
SUMX(
Dim_Employee,
VAR AbsenceSpells = CALCULATE(COUNTROWS(Fact_Leaves), Fact_Leaves[state] = "validate")
VAR TotalDays = CALCULATE(SUM(Fact_Leaves[number_of_days]), Fact_Leaves[state] = "validate")
RETURN AbsenceSpells * AbsenceSpells * TotalDays
)
hr_attendance'tan katılım analizi:
Average Daily Hours =
AVERAGEX(
VALUES(Dim_Date[Date]),
CALCULATE(SUM(Fact_Attendance[worked_hours]))
)
Overtime Hours =
SUMX(
Fact_Attendance,
IF(Fact_Attendance[worked_hours] > 8, Fact_Attendance[worked_hours] - 8, 0)
)
Artımlı Yenileme Yapılandırması
Milyonlarca kayıt içeren Odoo veritabanları için tam veri yenilemeleri pratik değildir. Power BI'ın artımlı yenileme özelliği yalnızca yeni ve değiştirilmiş kayıtları yükleyerek yenileme sürelerini saatlerden dakikalara indirir.
Önkoşullar
- Power BI Pro veya Premium lisansı
- Her tablonun güvenilir bir tarihsaat sütunu olması gerekir (Odoo'da write_date idealdir --- bir kayıt değiştirildiğinde güncellenir)
- Veri kaynağı sorgu katlamayı desteklemelidir (PostgreSQL destekler)
Yapılandırma Adımları
1. Adım: RangeStart ve RangeEnd parametrelerini oluşturun
Power Query'de DateTime türünde iki parametre oluşturun:
- RangeStart: varsayılan değer = 1/1/2020 12:00:00
- Aralık Sonu: varsayılan değer = 31.12.2030 12:00:00
2. Adım: Tabloları parametrelere göre filtreleyin
Her olgu tablosu için Power Query'ye bir filtre adımı ekleyin:
= Table.SelectRows(Source, each [write_date] >= RangeStart and [write_date] < RangeEnd)
Bu filtrenin veritabanına katlanması gerekir (oluşturulan SQL'de görünmelidir). Adımı sağ tıklayıp "Yerel Sorguyu Görüntüle"yi seçerek doğrulayın.
3. Adım: Artımlı yenileme politikasını tanımlayın
Modeldeki tabloya sağ tıklayın, Artımlı Yenileme'yi seçin ve yapılandırın:
| Ayar | Önerilen Değer |
|---|---|
| Satırları sonuncuda saklayın | 3 yıl |
| Sondaki satırları yenile | 7 gün |
| Veri değişikliklerini algıla | write_date sütunu |
| Yalnızca tamamlanmış dönemleri yenile | Etkin |
Bu yapılandırma üç yıllık geçmişi saklar ancak her zamanlanmış yenileme sırasında yalnızca son yedi günü yeniler. Odoo'nun write_date sütunu, bir kayıttaki herhangi bir alan değiştiğinde otomatik olarak güncellenir, bu da onu güvenilir bir değişiklik algılama sütunu haline getirir.
Performans Etkisi
| Senaryo | Tam Yenileme | Artımlı Yenileme |
|---|---|---|
| 1 milyon satış siparişi satırı | 12 dakika | 45 saniye |
| 5 milyon günlük girişi | 38 dakika | 2 dakika |
| 10 milyon hisse senedi hareketi | 65 dakika | 4 dakika |
Performans artışı, özellikle yüksek hacimli işlem verileri üreten üretim ve envanter veri kümeleri için çarpıcı düzeydedir.
Gelişmiş: Çok Şirketli ve Çoklu Para Birimi
Çok Şirketli Odoo Dağıtımlarını Yönetme
Birçok Odoo Enterprise dağıtımı, tek bir veritabanından birden fazla tüzel kişiye hizmet eder. Her işlem kaydında bir company_id alanı bulunur. Power BI'da:
res_company'den birDim_Companytablosu oluşturun- Her bir bilgi tablosunun şirket_id'sinden Dim_Company'ye kadar ilişkiler kurun
- Her kontrol paneli sayfasına bir şirket dilimleyici ekleyin
- Her kullanıcının yalnızca kendi şirketinin verilerini görebilmesi için satır düzeyinde güvenlik uygulayın
Para Birimi Dönüştürme
Odoo, tutarları şirketin temel para biriminde saklar. Çoklu para birimi raporlaması için res_currency_rate tablosuna katılın:
SELECT
so.id,
so.amount_total AS amount_local,
so.amount_total / COALESCE(
(SELECT rate FROM res_currency_rate
WHERE currency_id = so.currency_id
AND name <= so.date_order::date
ORDER BY name DESC LIMIT 1),
1
) AS amount_usd
FROM sale_order so;
Alternatif olarak, Power BI'da günlük döviz kurlarını içeren bir Dim_Currency_Rate tablosu bulundurun ve rapor zamanında dönüştürmek için DAX'ı kullanın. Bu yaklaşım, olası senaryolar için daha esnektir (örneğin, "geçen yılın döviz kurlarına göre gelir nasıl olurdu?").
Odoo Online için OData ve REST API Entegrasyonu
Doğrudan PostgreSQL erişiminin bulunmadığı Odoo Online veya Odoo.sh kullanan kuruluşlar için alternatif bağlantı yöntemleri mevcuttur.
Odoo'nun JSON-RPC API'sini kullanma
Odoo, /jsonrpc adresinde bir JSON-RPC uç noktasını (veya /xmlrpc/2 adresindeki eski XML-RPC'yi) kullanıma sunar. Verileri almak için search_read yöntemini çağırabilirsiniz:
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"your_database",
2,
"your_api_key",
"sale.order",
"search_read",
[[["state", "in", ["sale", "done"]]]],
{"fields": ["name", "partner_id", "date_order", "amount_total", "state"],
"limit": 1000, "offset": 0}
]
}
}
Power BI'da bunu, sayfalandırma mantığıyla Web.Contents kullanarak özel bir Power Query işlevi olarak uygularsınız. Buradaki zorluk performanstır: Her API çağrısı en fazla birkaç bin kayıt döndürür ve büyük veri kümeleri için birden fazla gidiş dönüşe ihtiyacınız vardır.
Topluluk OData Modülleri
Çeşitli Odoo topluluk modülleri OData uç noktaları ekler:
- Odoo için BI Konektörü — yapılandırılabilir OData akışlarını kullanıma sunar
- Odoo-Power BI Bağlayıcı — ortak modüller için önceden oluşturulmuş veri modelleri
Bu modüller entegrasyonu basitleştirir ancak Odoo örneğinize bağımlılık ekler. Kolaylığın bir topluluk modülünün bakım yükünden daha ağır basıp basmadığını değerlendirin.
Hibrit Yaklaşım: Planlanmış Veri Dışa Aktarımı
Pragmatik bir orta yol, Odoo'dan bir hazırlama veritabanına veya Azure SQL'e gecelik veri aktarımı planlamaktır. Bir Odoo zamanlanmış eylemi, anahtar tabloları CSV'ye aktaran veya verileri API aracılığıyla bir Azure SQL veritabanına aktaran bir Python betiğini çalıştırır. Power BI daha sonra tam sorgu katlama desteğiyle hazırlama veritabanına bağlanır.
Bu yaklaşım, Odoo'nun üretim veritabanını Power BI sorgularına maruz bırakmadan neredeyse günlük veri tazeliği isteyen kuruluşlar için işe yarar.
Gerçek Dünyadan KPI Örnekleri
ECOSIRE müşterilerinin Odoo'yu Power BI'a bağladıktan sonra sıklıkla oluşturduğu yirmi KPI'yi departmana göre organize ederek burada bulabilirsiniz.
Finans KPI'ları
- Ödenmemiş Satış Günleri (DSO) — Account_move'dan ödemenin tahsil edileceği ortalama gün sayısı (fatura tarihi - ödeme tarihi)
- Brüt Marj % — Satış_sipariş_satırından gelir eksi SMM'nin gelire bölünmesi (price_subtotal vs ürün standard_price)
- Nakit Dönüşüm Döngüsü — DSO + Ödenmemiş Envanter Günleri - Ödenmemiş Ödenmemiş Gün Sayısı
- Bütçe ve Gerçek Fark — Bir bütçe tablosu gerektirir (Odoo'da account_budget veya manuel yükleme)
- Çalışan Başına Gelir — Toplam gelirin aktif personel sayısına bölümü
Satış KPI'ları
- Müşteri Edinme Maliyeti — Pazarlama harcamasının edinilen yeni müşterilere bölünmesi (manuel pazarlama maliyeti girişi gerektirir)
- Müşteri Yaşam Boyu Değeri — Müşteri başına ortalama gelir çarpı ortalama ilişki süresi
- Satış Döngüsü Uzunluğu — Fırsatın yaratılmasından kazanılmasına kadar geçen gün sayısı (crm_lead)
- Tekliften Siparişe Dönüşüm Oranı — Onaylanan siparişlerin toplam tekliflere bölümü
- Ortalama İndirim % — sale_order_line indirim alanından
Operasyon KPI'ları
- Mükemmel Sipariş Oranı — Siparişler zamanında, eksiksiz ve doğru belgelerle teslim edilir
- Envanter Doğruluğu — Gerçek sayı ile sistem sayımı (stock_quant ayarlamalarından)
- Tedarikçi Teslim Süresi Güvenilirliği — Gerçek teslim tarihi ile satın alma siparişlerinden beklenen tarih karşılaştırması
- Depo Alanı Kullanımı — Kullanılan konumların toplam konumlara bölümü
- İade Oranı — Toplam satışların yüzdesi olarak kredi notları / geri ödemeler
Üretim KPI'ları
- İlk Geçiş Verimi — Yeniden işleme gerekmeden kalite kontrolünden geçen birimlerin toplam birimlere bölümü
- Programa Uyum — Planlanan tarihte tamamlanan üretim siparişleri
- Malzeme Atığı % — BOM gerekliliklerinin ötesinde tüketilen ham madde
- İş Merkezi Kullanımı — Gerçek üretken saatler ile mevcut saatlerin karşılaştırması
- Arızalar Arasındaki Ortalama Süre (MTBF) — Ekipman arızaları arasındaki ortalama çalışma süresi
Bu KPI'ların her biri belirli tablo birleştirmelerini ve DAX mantığını gerektirir. ECOSIRE'ın Power BI uygulama hizmeti, yirmisinin tümü için önceden oluşturulmuş ölçümler içeren standart bir KPI kitaplığı içerir.
Performans Optimizasyonu
Sorgu Katlama
Sorgu katlama, Odoo + Power BI entegrasyonları için en önemli performans konseptidir. Power Query bir dönüşümü "katladığında" adımı SQL'e çevirir ve bunu Power BI motoru yerine PostgreSQL sunucusunda yürütür.
Katlanan adımlar:
- Table.SelectRows (WHERE yan tümcesi)
- Table.SelectColumns (belirli sütunları SEÇİN)
- Tablo.Sırala (SİPARİŞ BY)
- Tablo.Grup (GROUP BY)
- Table.Join (KATIL)
- Table.FirstN (LIMIT)
Katlanmayı bozan adımlar:
- Özel M işlevlerine sahip Table.AddColumn
- Tablo.Tampon
- Table.Pivot / Table.Unpivot (çoğu durumda)
- Katlanamayan bir önceki adıma atıfta bulunan herhangi bir adım
En iyi uygulama: Power Query katlamaya güvenmek yerine özel SQL sorguları yazın. Bu size PostgreSQL'e gönderilen SQL üzerinde tam kontrol sağlar ve katlama belirsizliğini ortadan kaldırır.
İçe Aktarma ve DirectQuery
| Faktör | İçe Aktarma Modu | DirectQuery |
|---|---|---|
| Performans | Hızlı (veriler yerel olarak önbelleğe alınır) | Daha yavaş (sorgular Odoo DB'ye canlı olarak ulaştı) |
| Veri güncelliği | Planlanmış yenileme (en az 30 dakika) | Gerçek zamanlı |
| Model boyutu | Bellekle sınırlıdır (1 GB ücretsiz, 10-100 GB Premium) | Boyut sınırı yok |
| DAX desteği | Tam | Sınırlı (bazı işlevler mevcut değil) |
| Odoo'ya Etkisi | Yenilemeden sonra yok | Her rapor etkileşimi DB'yi sorgular |
| Öneri | Çoğu senaryo için kullanın | Yalnızca gerçek zamanlılığın gerekli olduğu durumlarda kullanın |
Çoğu Odoo dağıtımı için, artımlı yenilemeli İçe Aktarma modu, performans ve tazelik arasında en iyi dengeyi sağlar. DirectQuery, 30 dakikalık verilerin kabul edilemez olduğu operasyonel kontrol panelleri için ayrılmalıdır (örneğin, canlı bir üretim alanı ekranı).
Kompozit Modeller
Power BI Premium, İçe Aktarma ve DirectQuery tablolarını birleştiren bileşik modelleri destekler. Bu, aşağıdaki durumlarda Odoo entegrasyonları için idealdir:
- Büyük geçmiş tablolar (satış siparişleri, günlük girişleri) artımlı yenilemeyle İçe Aktarma modunu kullanır
- Küçük, hızlı değişen tablolar (canlı envanter içinstock_quant) DirectQuery'yi kullanır
- Tarih boyutu ve diğer boyutlar Çift depolama modunu kullanır
Yaygın Sorunları Giderme
Bağlantı Hataları
"Sunucuya bağlanılamıyor" — PostgreSQL'in doğru bağlantı noktasını (varsayılan 5432) dinlediğini ve güvenlik duvarı kurallarının Power BI ağ geçidinden veya masaüstü IP'nizden gelen bağlantılara izin verdiğini doğrulayın. listen_addresses için postgresql.conf öğesini ve istemci kimlik doğrulama kuralları için pg_hba.conf öğesini işaretleyin.
"SSL bağlantısı gerekli" — Bağlantıya sslmode=require ekleyin. Kendinden imzalı sertifikalar için CA sertifikasını içe aktarmanız veya sslmode=allow ayarlamanız gerekebilir (üretim için önerilmez).
"Tablo için izin reddedildi" — Power BI veritabanı kullanıcısının SELECT ayrıcalıkları yok. GRANT SELECT ON ALL TABLES IN SCHEMA public TO powerbi_readonly; komutunu çalıştırın ve psql'de \dp table_name ile doğrulayın.
Veri Kalitesi Sorunları
Kritik alanlardaki NULL değerler — Odoo birçok alanın boş olmasına izin verir. Hesaplama hatalarını önlemek için SQL sorgularında COALESCE kullanın veya DAX'ta BLANK() işlevini kullanın.
Yinelenen kayıtlar — Odoo'nun ORM'si bazen düzenleme sırasında kayıtların birden çok sürümünü oluşturur. active = true ölçütüne göre filtreleyin ve taslakları ve iptal edilen kayıtları hariç tutmak için doğru durum alanını kullandığınızdan emin olun.
Saat dilimi uyuşmazlıkları — Odoo, zaman damgalarını UTC'de saklar. Power BI varsayılan olarak yerel saat diliminde görüntülenir. Normalleştirmek için PostgreSQL sorgularında AT TIME ZONE veya Power Query'de DateTimeZone.SwitchZone kullanın.
Performans Sorunları
Yavaş yenileme süreleri — Artımlı yenilemeyi etkinleştirin. Tabloların tamamını içe aktarmak yerine özel SQL sorguları kullanın. Etkin olmayan kayıtları, taslak belgeleri ve analiz pencerenizin ötesindeki geçmiş verileri filtreleyin.
10 saniyenin üzerindeki yükleme sürelerini raporlayın — Büyük tablolar (SUMX, çok satırlı FILTER) üzerinde yinelenen karmaşık DAX ölçümlerini kontrol edin. Tekrarlanan hesaplamalardan kaçınmak için değişkenleri kullanın. Verileri SQL görünümlerinde önceden toplamayı düşünün.
Ağ geçidi zaman aşımları — Ağ geçidi veri kaynağı yapılandırmasındaki komut zaman aşımını artırın. Varsayılan 120 saniyedir; Büyük Odoo veritabanları için 600'e ayarlayın.
Güvenlik Hususları
Veritabanı Güvenliği
Power BI'ı asla Odoo yönetici veritabanı kullanıcısını kullanarak Odoo'ya bağlamayın. Daha önce gösterildiği gibi özel bir salt okunur kullanıcı oluşturun. Şu ek önlemleri göz önünde bulundurun:
- Satır düzeyinde kısıtlamalar: Power BI'ın tüm tablolara erişmesini istemiyorsanız salt okunur kullanıcının erişimini sınırlamak için PostgreSQL
CREATE POLICYkullanın (örneğin, hr_payslip hariç) - Sütun maskeleme: Hassas sütunları (maaş, SSN, banka ayrıntıları) hariç tutan görünümler oluşturun ve temel tablolar yerine görünümlere Power BI erişimi verin
- Bağlantı şifrelemesi: Özellikle Power BI ağ geçidi ve Odoo veritabanı farklı ağlarda olduğunda PostgreSQL bağlantıları için her zaman SSL kullanın
- Denetim günlüğü: Power BI kullanıcısından gelen tüm sorguları izlemek için PostgreSQL
pgaudit'ı etkinleştirin
Power BI Güvenliği
- Power BI'da Odoo'nun çok şirketli erişim kurallarını yansıtan satır düzeyinde güvenlik (RLS) uygulayın
- Finansal veya İK verilerini içeren veri kümeleri için hassasiyet etiketlerini kullanın
- Çalışma alanına erişimi yetkili analistlere ve tüketicilere kısıtlayın
- Veri sızmasını önlemek için hassas raporlarda veri aktarımını devre dışı bırakın
Power BI güvenliğine ilişkin ayrıntılı bilgi için satır düzeyinde güvenlik uygulaması ile ilgili kılavuzumuza bakın.
Hepsini Bir Araya Getirmek: Uygulama Yol Haritası
Aşama 1: Temel (1-2. Hafta)
- Odoo veritabanında salt okunur PostgreSQL kullanıcısını oluşturun
- Şirket içi veri ağ geçidini kurun ve yapılandırın (Power BI Hizmeti kullanılıyorsa)
- Power BI Desktop'ı Odoo veritabanına bağlayın
- Beş temel tablo grubunu (satış, muhasebe, envanter, üretim, İK) içe aktarın
- Tarih boyutunu oluşturun ve ilişkiler kurun
Aşama 2: Temel Kontrol Panelleri (3-4. Hafta)
- Yönetici satış kontrol panelini oluşturun (gelir, büyüme, en iyi ürünler, satış hattı)
- Finans kontrol panelini oluşturun (AR yaşlanması, nakit akışı, bütçe farkı)
- Envanter kontrol panelini oluşturun (stok seviyeleri, ciro, yeniden sipariş uyarıları)
- Tüm olgu tabloları için artımlı yenilemeyi yapılandırın
- Power BI Hizmetinde yayımlayın ve zamanlanmış yenilemeyi ayarlayın
3. Aşama: İleri Analitik (5-6. Hafta)
- Üretim gösterge tabloları oluşturun (OEE, kullanım, üretim planlama)
- İK gösterge tabloları oluşturun (personel sayısı, yıpranma, katılım, devamsızlık)
- Çok şirketli veri izolasyonu için satır düzeyinde güvenlik uygulayın
- Önemli kontrol panelleri için mobil cihazlar için optimize edilmiş bir düzen oluşturun
- Kritik KPI'lar (stoklar, vadesi geçmiş faturalar, üretim gecikmeleri) için veri uyarıları ayarlayın
Aşama 4: Yönetişim ve Ölçek (7-8. Hafta)
- Çalışma alanı adlandırma kurallarını ve içerik sertifikasyonunu oluşturun
- Uzman kullanıcıları self servis rapor oluşturma konusunda eğitin
- Veri modelini ve hesaplama mantığını belgeleyin
- Benimsemeyi izlemek için kullanım izlemeyi ayarlayın
- Ek veri kaynakları planlayın (pazarlama platformları, e-Ticaret, IoT)
ECOSIRE'ın Power BI + Odoo entegrasyon hizmeti bu yol haritasını takip eder ve genellikle ilk yönetici kontrol panelini iki hafta içinde sunar. Ekibimizin Odoo'nun veri modeli ve Power BI'ın analitik motorundaki ikili uzmanlığı, ilk günden itibaren doğru, performanslı ve yönetilen analizler elde etmenizi sağlar.
SSS
Power BI'ı Odoo Online'a veya yalnızca kendi kendine barındırılan Odoo'ya bağlayabilir miyim?
Her ikisine de bağlanabilirsiniz ancak yöntem farklıdır. Kendi kendine barındırılan Odoo size daha hızlı ve daha esnek olan doğrudan PostgreSQL erişimi sağlar. Odoo Online ve Odoo.sh, veritabanını doğrudan kullanıma sunmaz; dolayısıyla Odoo'nun JSON-RPC API'sini, bir topluluk OData bağlayıcı modülünü veya bir hazırlama veritabanına planlanmış veri aktarımını kullanmanız gerekir. Büyük veri kümelerine sahip Odoo Online için, API tabanlı ayıklamanın 50.000'den fazla kayda sahip tablolar için yavaş olması nedeniyle hazırlama veritabanı yaklaşımı önerilir.
Power BI, Odoo'daki verileri ne sıklıkla yenileyebilir?
Power BI Pro ile günde en fazla 8 yenileme (her 3 saatte bir) zamanlayabilirsiniz. Power BI Premium ile günde en fazla 48 yenileme (her 30 dakikada bir) zamanlayabilirsiniz. Gerçek zamanlı veriler için DirectQuery modunu kullanın ancak her rapor etkileşiminin doğrudan Odoo veritabanınızı sorgulayacağını unutmayın. Artımlı yenileme, her yenilemenin aldığı süreyi azaltarak veritabanını aşırı yüklemeden daha sık yenilemeleri pratik hale getirir.
Power BI sorguları Odoo sistemimizi yavaşlatır mı?
İçeri Aktarma modunu kullanırsanız (önerilir), Power BI sorguları yalnızca zamanlanmış yenilemeler sırasında, genellikle yoğun olmayan saatlerde çalıştırılır. Odoo performansı üzerindeki etkisi minimum düzeydedir. DirectQuery kullanıyorsanız her rapor etkileşimi, Odoo veritabanınızda canlı sorgular oluşturur ve bu da iş saatleri sırasında performansı etkileyebilir. Azaltıcı etkenler arasında okuma kopyası kullanılması, sorgu zaman aşımlarının yapılandırılması ve dizin kullanan verimli SQL sorgularının tasarlanması yer alır.
Entegrasyonu ayarlamak için SQL bilmem gerekiyor mu?
Temel SQL bilgisi faydalıdır ancak kesinlikle gerekli değildir. Power BI'ın Power Query arayüzü, tabloları seçmenize ve filtreleri görsel olarak uygulamanıza olanak tanır. Ancak optimum performans ve veri kalitesi için özel SQL sorgularının kullanılması önemle tavsiye edilir. Tabloları önceden birleştirmenize, gereksiz kayıtları filtrelemenize ve verileri veritabanı düzeyinde şekillendirmenize olanak tanır. Ekibinizin SQL uzmanlığı yoksa ilk kurulum için bir uzmanla çalışmayı ve ardından raporları Power BI'ın görsel araçlarıyla sürdürmeyi düşünün.
ECOSIRE'ın Odoo + Power BI hizmetinin genel Power BI danışmanlığından farkı nedir?
Çoğu Power BI danışmanlık firmasının Power BI konusunda uzmanlığı vardır ancak Odoo'nun veri modeliyle ilgili bilgisi sınırlıdır. Tablo ilişkilerine tersine mühendislik yapmak, Odoo'ya özgü kuralları anlamak (ikili ürün_ürün / ürün_şablon yapısı gibi) ve hangi alanların anlamlı olduğunu bulmak için haftalar harcıyorlar. ECOSIRE, 43'ten fazla Odoo modülü oluşturup dağıtmıştır ve her iki platformda da derin uzmanlığa sahiptir. Önceden oluşturulmuş veri modelleri, 50'den fazla ölçüm içeren standart bir KPI kitaplığı ve write_date sütunlarında artımlı yenileme gibi Odoo'ya özgü optimizasyonlar sağlıyoruz. Bu ikili uzmanlık, Odoo'nun veri modelini sıfırdan öğrenen ekiplerle karşılaştırıldığında uygulama süresini yüzde 40-60 oranında azaltır.
Yazan
ECOSIRE Research and Development Team
ECOSIRE'da kurumsal düzeyde dijital ürünler geliştiriyor. Odoo entegrasyonları, e-ticaret otomasyonu ve yapay zeka destekli iş çözümleri hakkında içgörüler paylaşıyor.
İlgili Makaleler
Power BI AI Özellikleri: Copilot, AutoML ve Tahmine Dayalı Analitik
Doğal dil raporları için Copilot, tahminler için AutoML, anormallik tespiti ve akıllı anlatımlar dahil olmak üzere Power BI AI özelliklerinde uzmanlaşın. Lisanslama kılavuzu.
Power BI Kontrol Paneli Geliştirmeye İlişkin Tam Kılavuz
KPI tasarımı, görsel en iyi uygulamalar, detaya geçiş sayfaları, yer işaretleri, mobil düzenler ve RLS güvenliği ile etkili Power BI panolarını nasıl oluşturacağınızı öğrenin.
Power BI Veri Modelleme: İş Zekası için Yıldız Şeması Tasarımı
Yıldız şeması tasarımı, olgu ve boyut tabloları, DAX ölçümleri, hesaplama grupları, zaman zekası ve bileşik modeller ile Power BI veri modellemesinde uzmanlaşın.
Data Analytics & BI serisinden daha fazlası
Power BI Kontrol Paneli Geliştirmeye İlişkin Tam Kılavuz
KPI tasarımı, görsel en iyi uygulamalar, detaya geçiş sayfaları, yer işaretleri, mobil düzenler ve RLS güvenliği ile etkili Power BI panolarını nasıl oluşturacağınızı öğrenin.
Her İşletme Kullanıcısının Bilmesi Gereken DAX Formülleri
Power BI için 20 temel DAX formülünde uzmanlaşın. HESAPLAMA, zaman zekası, RANKX, bağlam geçişi, yineleyiciler ve pratik iş örnekleri.
Power BI Embedded: Uygulamanıza Analitik Ekleme
Power BI analitiğini SaaS uygulamanıza ekleyin. Kimlik doğrulamayı, çok kiracılı RLS'yi, kapasite boyutlandırmayı, JavaScript SDK'sını, özel temaları ve Fabric fiyatlandırmasını kapsar.
Excel'den Power BI'ya Geçiş: Adım Adım Kılavuz
Formül çevirisi, veri modeli oluşturma, Power Query, doğrulama ve hizmetten çıkarma işlemlerini kapsayan Excel'den Power BI'ya geçişe ilişkin eksiksiz kılavuz.
İşletmelerde Yapay Zeka Yatırım Getirisini Ölçmek: Gerçekten İşe Yarayan Bir Çerçeve
Departmanlar arasında doğrudan tasarrufları, üretkenlik kazanımlarını, gelir etkisini ve stratejik değeri kapsayan yapay zeka yatırım getirisini ölçmek için pratik bir çerçeve.
Finansal Raporlama Kontrol Panelleri Oluşturma: KPI'lar, Tasarım ve ERP Entegrasyonu
Kararları yönlendiren finansal raporlama kontrol panelleri tasarlayın. Hangi KPI'lerin izleneceğini, kontrol paneli tasarım ilkelerini ve ERP entegrasyonunun en iyi uygulamalarını öğrenin.