Power BI + NetSuite: Building Finance Dashboards

Complete guide to connecting Power BI with NetSuite using SuiteAnalytics Connect, ODBC, and saved searches — with financial KPIs, DAX formulas, and dashboard templates.

E
ECOSIRE Research and Development Team
|19 Mart 20268 dk okuma1.8k Kelime|

Power BI + NetSuite: Finans Panoları Oluşturma

NetSuite'in yerleşik raporlaması işlevseldir ancak sınırlıdır; SuiteAnalytics Çalışma Kitapları ve kayıtlı aramalar operasyonel sorgular için yeterlidir ancak modüller arası analizler, çok dönemli trend oluşturma ve yönetici düzeyinde finansal hikaye anlatımı konusunda zorluk çeker. NetSuite'teki kuruluşlar, ERP verilerinin hak ettiği analitik derinliği ortaya çıkarmak için Power BI'a giderek daha fazla bağlanıyor.

Bu kılavuz, resmi SuiteAnalytics Connect ODBC sürücüsünden kayıtlı arama dışa aktarımlarına kadar Power BI'ı NetSuite'e bağlamaya yönelik her yöntemi kapsar ve NetSuite finansal verilerini kullanarak eksiksiz bir CFO panosuna doğru oluşturulur.

Önemli Çıkarımlar

  • SuiteAnalytics Connect (2.399 ABD doları/kullanıcı/yıl) NetSuite'e resmi ODBC tabanlı bağlantıdır
  • CSV dışa aktarma yoluyla kaydedilen arama entegrasyonu ücretsizdir ancak gerçek zamanlı yenileme özelliği yoktur
  • NetSuite ODBC sürücüsü, 300'den fazla NetSuite kayıt türünü sorgulanabilir tablolar olarak kullanıma sunar
  • RESTlet tabanlı entegrasyon, en esnek özel veri çıkarma yaklaşımını sağlar
  • Mali tablolar (K&Z, Bilanço, Nakit Akışı) Power BI'da birden fazla birleştirilmiş sorgu gerektirir
  • DAX zaman zekası, NetSuite dönem verilerini dinamik YTD, MTD ve YoY karşılaştırmalarına dönüştürür
  • Power BI'daki satır düzeyinde güvenlik, NetSuite'in yan kuruluş tabanlı erişim denetimini yansıtabilir
  • NetSuite'in mali takvimi (özel dönemlerle birlikte), Power BI'da özel bir tarih tablosu gerektirir

NetSuite'ten Power BI Bağlantı Yöntemlerine

Yöntem 1: SuiteAnalytics Connect (ODBC)

SuiteAnalytics Connect, Oracle/NetSuite'in resmi analiz veritabanıdır; NetSuite verilerinize yönelik salt okunur ODBC uyumlu bir arayüzdür. NetSuite kayıtlarını ilişkisel tablolar olarak gösterir ve standart SQL sorgularına izin verir.

Gereksinimler:

  • SuiteAnalytics Connect lisansı (tam erişim için kullanıcı başına 2.399 ABD doları)
  • Power BI Ağ Geçidi sunucusunda yüklü NetSuite ODBC sürücüsü
  • NetSuite'te "SuiteAnalytics Connect" iznine sahip rol

Kurulum adımları:

  1. NetSuite ODBC sürücüsünü NetSuite hesabınızdan indirin (Kurulum → SuiteAnalytics → ODBC → Sürücüyü İndir)
  2. Şirket içi veri ağ geçidi sunucusuna yükleyin
  3. ODBC Sistemi DSN'sini oluşturun:
  • Veri Kaynağı Adı: NetSuite_Prod
  • Ana Bilgisayar: {AccountID}.connect.api.netsuite.com
  • Bağlantı noktası: 1708
  • Veritabanı: NetSuite
  1. Power BI Desktop'ta: Veri Al → ODBC → NetSuite_Prod DSN'yi seçin
  2. Kimlik bilgilerini girin: NetSuite e-postası + şifre (veya role özgü belirteç kimlik doğrulaması)

SuiteAnalytics Tablo Örnekleri:

NetSuite KaydıODBC TablosuAnahtar Alanlar
İşlemlerKOD0KOD1
İşlem HatlarıKOD0KOD1
HesaplarKOD0KOD1
MüşterilerKOD0KOD1
ÖğelerKOD0KOD1
ÇalışanlarKOD0KOD1
Bağlı OrtaklıklarKOD0KOD1
BütçeKOD0KOD1

Yöntem 2: CSV Dışa Aktarma Aracılığıyla NetSuite Kaydedilmiş Aramalar

SuiteAnalytics Connect'e sahip olmayan kuruluşlar için, kayıtlı aramalar CSV dosyalarını paylaşılan bir klasöre veya bulut depolama alanına aktaracak şekilde planlanabilir:

  1. NetSuite'te gerekli alanlarla kayıtlı aramalar oluşturun
  2. NetSuite SuiteScript 2.0 komut dosyasını CSV'yi SharePoint/Azure Blob/SFTP'ye aktaracak şekilde planlayın
  3. Power BI, bağlayıcı aracılığıyla CSV dosyalarını zamanında okur

Sınırlama: Gerçek zamanlı veri yok; yenileme ihracat planına bağlıdır. Büyük veri kümeleri için uygun değildir (NetSuite dışa aktarma sınırları geçerlidir).

Yöntem 3: RESTlet Entegrasyonu

Özel SuiteScript 2.0 RESTlet'ler, NetSuite verilerini REST API aracılığıyla kullanıma sunar. Power BI'ın Web bağlayıcısı JSON yanıtlarını getirir:

  1. RESTlet'i NetSuite'e dağıtın (SuiteScript 2.0):
// RESTlet example — fetch GL transactions
define(['N/search', 'N/format'], (search, format) => {
    const get = (context) => {
        const results = [];
        const s = search.create({
            type: search.Type.TRANSACTION,
            filters: [['type', 'anyof', 'Journal'], 'AND',
                      ['trandate', 'within', context.start, context.end]],
            columns: ['trandate', 'account', 'debit', 'credit', 'memo']
        });
        s.run().each(r => {
            results.push({
                date: r.getValue('trandate'),
                account: r.getText('account'),
                debit: r.getValue('debit'),
                credit: r.getValue('credit')
            });
            return true;
        });
        return results;
    };
    return { get };
});
  1. Power BI'da RESTlet URL + TBA (Belirteç Tabanlı Kimlik Doğrulama) üstbilgileriyle Web bağlayıcıyı kullanın

Yöntem 4: Üçüncü Taraf Bağlayıcılar

Çeşitli üçüncü taraf bağlayıcılar NetSuite → Power BI entegrasyonunu basitleştirir:

BağlayıcıSağlayıcıFiyatlandırmaÖzellikler
CData Power BI BağlayıcısıCVerileri400$/yılODBC'siz, 300'den fazla kayıt türü
BeştranBeştranKullanıma dayalıOtomatik boru hattı, dbt modelleri
DikişDikişAylık 100$'dan başlayan fiyatlarlaBasit işlem hattı, 14+ NS tablosu
Layer2 Bulut BağlayıcıKatman2400$/yılSharePoint entegrasyonu

Büyük hacimli finansal verileri işleyen üretim dağıtımları için, bir veri ambarı aracısına (Snowflake, BigQuery) sahip Fivetran veya Stitch en güvenilir mimariyi sağlar.


NetSuite Analytics için Veri Modeli Tasarımı

Finansal Analitik için Yıldız Şeması

NetSuite'in ilişkisel modeli Power BI'daki bir yıldız şemasıyla eşleşir:

Fact: GL_Transactions
    ├── Dim: Account (account number, name, type, category)
    ├── Dim: Date (year, quarter, month, fiscal period)
    ├── Dim: Customer/Vendor (entity)
    ├── Dim: Subsidiary
    ├── Dim: Department
    ├── Dim: Location
    └── Dim: Class

GL işlem olgu tablosunu oluşturmak için Power Query SQL:

SELECT
    TL.TRANSACTION as transaction_id,
    T.TRANDATE as transaction_date,
    T.TYPE as transaction_type,
    T.MEMO as memo,
    TL.ACCOUNT as account_id,
    A.ACCTNUMBER as account_number,
    A.ACCTNAME as account_name,
    A.ACCTTYPE as account_type,
    TL.DEBIT as debit_amount,
    TL.CREDIT as credit_amount,
    TL.DEBIT - TL.CREDIT as net_amount,
    T.SUBSIDIARY as subsidiary_id,
    T.DEPARTMENT as department_id,
    T.CLASS as class_id,
    T.ENTITY as entity_id
FROM TRANSACTIONLINE TL
JOIN TRANSACTION T ON TL.TRANSACTION = T.ID
JOIN ACCOUNT A ON TL.ACCOUNT = A.ID
WHERE T.VOID = 'F'
    AND T.TRANDATE >= DATEADD('year', -3, CURRENT_DATE)

Power BI'da NetSuite Mali Takvimi

NetSuite, takvim yıllarıyla uyumlu olmayabilecek özel mali yılları destekler. NetSuite'in mali dönemleriyle eşleşen bir Power BI tarih tablosu oluşturun:

// Date table with NetSuite fiscal year (example: April start)
Date =
VAR FiscalYearStartMonth = 4  -- April
RETURN
ADDCOLUMNS(
    CALENDAR(DATE(2020,1,1), DATE(2026,12,31)),
    "Year", YEAR([Date]),
    "Month", MONTH([Date]),
    "Month Name", FORMAT([Date], "MMMM"),
    "Quarter", "Q" & ROUNDUP(MONTH([Date])/3, 0),
    "Fiscal Year",
        IF(MONTH([Date]) >= FiscalYearStartMonth,
           "FY" & YEAR([Date]) + 1,
           "FY" & YEAR([Date])
        ),
    "Fiscal Quarter",
        "FQ" & SWITCH(TRUE(),
            MONTH([Date]) >= FiscalYearStartMonth &&
            MONTH([Date]) < FiscalYearStartMonth + 3, 1,
            MONTH([Date]) >= FiscalYearStartMonth + 3 &&
            MONTH([Date]) < FiscalYearStartMonth + 6, 2,
            MONTH([Date]) >= FiscalYearStartMonth + 6 &&
            MONTH([Date]) < FiscalYearStartMonth + 9, 3,
            4
        )
)

Finansal KPI'lar ve DAX Formülleri

Gelir ve Kâr ve Zarar Önlemleri

// Total Revenue (Income accounts, credit balance)
Total Revenue =
CALCULATE(
    SUMX(GL_Transactions, [credit_amount] - [debit_amount]),
    Account[account_type] = "Income"
)

// Total COGS
Total COGS =
CALCULATE(
    SUMX(GL_Transactions, [debit_amount] - [credit_amount]),
    Account[account_type] = "Cost of Goods Sold"
)

// Gross Profit
Gross Profit = [Total Revenue] - [Total COGS]

// Gross Margin %
Gross Margin % = DIVIDE([Gross Profit], [Total Revenue], 0)

// Operating Expenses
Total OpEx =
CALCULATE(
    SUMX(GL_Transactions, [debit_amount] - [credit_amount]),
    Account[account_type] IN {"Expense", "Other Expense"}
)

// EBITDA
EBITDA =
[Gross Profit] - [Total OpEx] +
CALCULATE(
    SUMX(GL_Transactions, [debit_amount] - [credit_amount]),
    Account[account_name] IN {"Depreciation", "Amortization"}
)

Yıldan yıla ve Dönem Karşılaştırmaları

// Prior Year Revenue
Prior Year Revenue =
CALCULATE([Total Revenue], SAMEPERIODLASTYEAR(Date[Date]))

// YoY Revenue Growth %
Revenue YoY Growth =
DIVIDE([Total Revenue] - [Prior Year Revenue], [Prior Year Revenue], 0)

// Year-to-Date Revenue
YTD Revenue =
CALCULATE([Total Revenue], DATESYTD(Date[Date], "3/31"))  -- Fiscal year end

// Budget vs Actual Variance
Revenue Variance =
[Total Revenue] - CALCULATE(SUM(Budget[amount]), Budget[account_type] = "Income")

// Rolling 12-Month Revenue
Rolling 12M Revenue =
CALCULATE(
    [Total Revenue],
    DATESINPERIOD(Date[Date], LASTDATE(Date[Date]), -12, MONTH)
)

Alacak Hesapları ve Nakit KPI'ları

// Days Sales Outstanding (DSO)
DSO =
DIVIDE(
    CALCULATE(SUM(AR_Aging[balance]), AR_Aging[status] = "Open"),
    DIVIDE([Total Revenue], 365),
    0
)

// Accounts Receivable Balance
AR Balance =
CALCULATE(
    SUM(GL_Transactions[debit_amount]) - SUM(GL_Transactions[credit_amount]),
    Account[account_type] = "Accounts Receivable"
)

// Cash Balance
Cash Balance =
CALCULATE(
    SUM(GL_Transactions[debit_amount]) - SUM(GL_Transactions[credit_amount]),
    Account[account_type] = "Bank"
)

CFO Kontrol Paneli Düzeni

NetSuite'e bağlı bir Power BI CFO panosu genellikle şu sayfaları içerir:

Sayfa 1: Yönetici Özeti

  • Gelir YTD ve Bütçe (gösterge + sapma yüzdesi)
  • Brüt Marj %'si (hedef çizgili gösterge)
  • FAVÖK (cari ay + son 12 aylık mini grafik)
  • Nakit Bakiyesi (banka hesap özeti)
  • AR Yaşlandırma Özeti (çubuk grafik: Mevcut, 30, 60, 90+ gün)
  • Gelire göre ilk 10 müşteri (tablo)

Sayfa 2: Gelir Tablosu (K&Z)

  • Sütunları içeren aylık K&Z tablosu: Gerçek, Bütçe, Fark $, Fark %
  • Gelir şelalesi grafiği (iş birimine/bağlı kuruluşa göre)
  • Gider dökümü (kategoriye göre halka grafiği)
  • Gelir ve gider trendi (12 aylık çizgi grafik)

Sayfa 3: Bilanço

  • Seçilen dönem itibarıyla Varlıklar, Yükümlülükler, Özsermaye
  • İşletme Sermayesi eğilimi (çizgi grafik)
  • Akım Oranı ve Hızlı Oran göstergeleri

Sayfa 4: Nakit Akışı

  • İşletme, Yatırım, Finansman nakit akışı şelalesi
  • Nakit pist projeksiyonu (doğrusal tahmin)
  • Zaman içindeki banka hesap bakiyeleri

Sayfa 5: Yardımcı Ayrıntılı İnceleme

  • Bağlı ortaklık bazında gelir (ayrıntıya dayalı matris)
  • Şirketler arası eleme görünümü
  • Para birimi çeviri etkisi

Sıkça Sorulan Sorular

Power BI'ı NetSuite ile kullanmak için SuiteAnalytics Connect'e ihtiyacım var mı?

Hayır — ancak en sağlam ve desteklenen seçenektir. Alternatifler arasında kayıtlı arama CSV dışa aktarımları, üçüncü taraf bağlayıcılar (CData, Fivetran) veya özel RESTlet'ler yer alır. SuiteAnalytics Connect'in kullanıcı başına yıllık 2.399 ABD doları küçük ekipler için pahalı olması, bütçeye duyarlı kuruluşlar için üçüncü taraf bağlayıcıları (ayda 100 ABD dolarından başlayan fiyatlarla) cazip hale getiriyor.

NetSuite'ten Power BI'a veriler ne sıklıkla yenilenebilir?

Power BI Premium'da ODBC aracılığıyla SuiteAnalytics Connect, günde 48 adede kadar yenilemeyi (her 30 dakikada bir) destekler. Power BI Pro günde 8 yenilemeyi destekler. RESTlet tabanlı entegrasyon, herhangi bir zamanlamaya göre Power Automate aracılığıyla yenilemeleri tetikleyebilir. Neredeyse gerçek zamanlı finansal kontrol panelleri için Premium'da 30 dakikalık bir yenileme yapılandırın veya belirli KPI'lar için akış veri kümelerini kullanın.

Power BI, NetSuite'in çok bağlı kuruluşunun konsolide mali tablolarını gösterebilir mi?

Evet — bu, Power BI'ın NetSuite'in yerleşik raporlamasına göre en önemli avantajlarından biridir. Tüm bağlı kuruluşlar genelinde Bağlı Şirket boyutunu ve mali verilerini sorgulayın, ardından DAX'ta konsolidasyon mantığı oluşturun (tüm bağlı kuruluşları toplayın, eliminasyon hesapları aracılığıyla şirketlerarası işlemleri hariç tutun). Para birimi çevirisi, NetSuite'in döviz kuru tablolarını veya harici döviz kuru feed'lerini kullanabilir.

Power BI'da NetSuite özel alanlarını nasıl yönetirim?

SuiteAnalytics Connect, özel alanları CUSTBODY_FIELD_NAME (gövde düzeyinde özel alanlar) veya CUSTCOL_FIELD_NAME (satır düzeyi) gibi adlara sahip sütunlar olarak sunar. Bunları doğrudan SQL'de sorgulayın. RESTlet entegrasyonu, dahili alan kimliğini kullanarak Arama API'si aracılığıyla özel alanları kullanıma sunar. Power BI sorguları oluşturmadan önce özel alan kimliklerinizi NetSuite'te (Kurulum → Özelleştirme → Listeler, Kayıtlar ve Alanlar) belgeleyin.

Büyük NetSuite dağıtımları için en iyi mimari hangisidir?

Yüksek işlem hacmine (1 milyondan fazla GL hattı) sahip kuruluşlar için önerilen mimari şöyledir: NetSuite → Fivetran/Stitch → Snowflake/BigQuery → Power BI (DirectQuery veya Direct Lake). Bu, verileri NetSuite'ten artımlı olarak çıkarır, analiz için optimize edilmiş bir bulut ambarında saklar ve NetSuite'in ODBC katmanına tekrar tekrar başvurmadan Power BI'a bağlanır. Fivetran'ın NetSuite bağlayıcısı şema değişikliklerini ve silinen kayıtları otomatik olarak yönetir.


Sonraki Adımlar

NetSuite en önemli finansal verilerinizi içerir ve Power BI bu verileri CFO panolarına, farklılık analizine ve liderlik ekibinizin ihtiyaç duyduğu yan kuruluş konsolidasyonlarına dönüştürebilir. ECOSIRE, manuel Excel raporlamasının yerini alan finans panoları oluşturmak için NetSuite uzmanlığını Power BI geliştirmeyle birleştirir.

NetSuite + Power BI uygulamalarına nasıl yaklaştığımızı anlamak için Power BI ERP entegrasyon hizmetlerimizi veya muhasebe ve finans analiz hizmetlerimizi keşfedin. NetSuite ortamınıza ve raporlama hedeflerinize odaklanan bir keşif çağrısı için ekibimizle iletişime geçin.

E

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.

WhatsApp'ta Sohbet Et