Erp Asistanı Erp Asistanı
ERP

Mikro ve Netsis Tablo Karşılaştırması: Aynı İş, Farklı Şema

Mikro ve Netsis veritabanı şemalarını stok, cari ve fatura tabloları üzerinden karşılaştırın. Yön, iade ve iptal mantığı farklarını SQL ile öğrenin.

Erp Asistanı Erp Asistanı Editör ekibi 7 dk okuma
Mikro ve Netsis Tablo Karşılaştırması: Aynı İş, Farklı Şema

Türkiye'de en yaygın kullanılan iki kurumsal kaynak planlama yazılımı olan Mikro ve Netsis, temel muhasebe ve envanter süreçlerinde temelde aynı işi yapar: fatura keser, stok hareketlerini kaydeder, cari bakiyeleri takip eder. Ancak iş SQL düzeyinde rapor yazmaya veya iki sistem arasında geçiş yapmaya geldiğinde, veritabanı mimarilerinin tamamen farklı felsefelere dayandığı görülür. Birinde tek bir kolondaki enum değeri tüm evrak yapısını belirlerken, diğerinde harf kodları ve belge tipi bayrakları öne çıkar.

Bu rehberde; stok kartları, cari hareketler, fatura kayıtları ve yön mantıklarını iki ERP şeması üzerinden karşılaştırıyoruz. Detaylı şema yapıları için Mikro tablo yapısı rehberi ve Netsis tablo yapısı rehberi yazılarımızı da inceleyebilirsiniz.

İki ERP, İki Farklı Şema Felsefesi

Mikro v16/v17 mimarisi, her kayıt için benzersiz GUID (uniqueidentifier) anahtarlar kullanan ve sayısal kodlamalara (tinyint enum değerleri) dayanan bir yapıya sahiptir. Örneğin, bir hareketin fatura mı irsaliye mi olduğu sth_evraktip kolonundaki sayıyla (3: Alış Faturası, 4: Satış Faturası) belirlenir.

Netsis ise geleneksel ERP mimarisini sürdürerek modüler tablolarda belge karakterlerini (G/C, A/B) ve FTIRSIP gibi alfa-numerik işlem kodlarını kullanır. İlişkiler çoğu zaman evrak numarası ve şube kodu üzerinden kurulur. Dolayısıyla bir ERP'den diğerine geçerken ilk öğrenilmesi gereken nokta, bu mantık ve yön farklarıdır.

Kavram ve Tablo Eşleme Tablosu

Aşağıdaki tabloda en kritik işlevlerin iki ERP sistemindeki tablo ve yön karşılıkları listelenmiştir:

Fonksiyonel Alan Mikro ERP Tablo / Kolon Netsis ERP Tablo / Mantık
Stok Kartları Tanımı STOKLAR TBLSTSABIT
Stok Hareketleri STOK_HAREKETLERI TBLSTHAR
Cari Kart Tanımları CARI_HESAPLAR TBLCASABIT
Cari Hareketleri CARI_HESAP_HAREKETLERI TBLCAHAR
Fatura Kalemleri STOK_HAREKETLERI (sth_evraktip IN (3,4)) TBLSTHAR (STHAR_FTIRSIP = '1')
Fatura Başlığı / Parasal Ayak CARI_HESAP_HAREKETLERI TBLFATUIRS / TBLCAHAR
Hareket Yönü (Stok) sth_tip (0: Giriş, 1: Çıkış, 2: Depo Transfer) STHAR_GCKOD ('G': Giriş, 'C': Çıkış)
Hareket Yönü (Cari) cha_tip (0: Borç, 1: Alacak) BORC / ALACAK veya HAREKET_TURU ('B' / 'A')
İade Ayrımı sth_normal_iade / cha_normal_Iade (0: Normal, 1: İade) STHAR_GCKOD ters çevrimi veya STHAR_IADE bayrağı
İptal Filtresi sth_iptal = 0 / cha_iptal = 0 (Zorunlu) Belge silme veya iptal kayıt kontrolü
Fatura - Kalem İlişkisi STOK_HAREKETLERI.sth_fat_uid = CARI_HESAP_HAREKETLERI.cha_Guid FATIRS_NO + CARI_KODU eşleşmesi

Hareket ve Yön Mantığı: sth_tip vs GCKOD

Stok hareketlerinde bakiye hesaplarken Mikro tek bir sth_miktar kolonu tutar ve hareketin yönünü sth_tip (0=Giriş, 1=Çıkış) ile belirler. Netsis tarafında ise giriş veya çıkış işlemi STHAR_GCKOD ('G' veya 'C') kolonu ile ayrılır; detaylı örnekler için Netsis stok hareketleri SQL rehberi yazısına göz atabilirsiniz.

Mikro veritabanında net stok miktarını hesaplamak için aşağıdaki gibi bir koşul yazılır:

-- Veritabanı: MIKRO
-- Stok bazında net hareket miktarı toplamı
SELECT 
    sth_stok_kod,
    SUM(CASE WHEN sth_tip = 0 THEN sth_miktar 
             WHEN sth_tip = 1 THEN -sth_miktar 
             ELSE 0 END) AS NetMiktar
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0
GROUP BY sth_stok_kod;

Cari tarafta da aynı yön mantığı geçerlidir. Mikro'da borç ve alacak ayrımı için ayrı kolonlar yoktur; tek bir meblağ alanı (cha_meblag) ve yön gösteren cha_tip (0: Borç, 1: Alacak) alanı bulunur. Netsis şemasında ise çoğu zaman borç ve alacak tutarları ayrı kolonlarda ya da hareket kodlarıyla izlenir (Netsis cari ekstre ve bakiye rehberi).

Mikro üzerinde cari bakiye sorgularken borç pozitif, alacak negatif alınır:

-- Veritabanı: MIKRO
-- Cari bakiye hesaplama (Borç - Alacak)
SELECT 
    cha_kod,
    SUM(CASE WHEN cha_tip = 0 THEN cha_meblag ELSE -cha_meblag END) AS Bakiye
FROM CARI_HESAP_HAREKETLERI
WHERE cha_iptal = 0
GROUP BY cha_kod;

Fatura Mimarisi: Ayrı Tablo mu, Entegre Hareket mi?

Mikro'da müstakil bir faturalar tablosu yer almaz. Fatura satırları STOK_HAREKETLERI tablosunda sth_evraktip = 4 (Çıkış Faturası) olarak kaydedilirken, faturanın parasal karşılığı CARI_HESAP_HAREKETLERI tablosunda cha_evrak_tip = 63 olarak açılır. İki tablo arasındaki bağ sth_fat_uid = cha_Guid ilişkisiyle kurulur. Ayrıntılı bilgi için Mikro'da fatura hangi tabloda başlıklı rehbere bakabilirsiniz.

Netsis'te ise fatura başlıkları TBLFATUIRS tablosunda toplanırken satır detayları TBLSTHAR tablosuna aktarılır.

Mikro'da fatura başlığı ile satırlarını birleştiren sorgu şu şekildedir:

-- Veritabanı: MIKRO
-- Satış faturası başlığı ve satır detaylarını birleştirme
SELECT 
    cha.cha_evrakno_seri,
    cha.cha_evrakno_sira,
    cha.cha_kod,
    cha.cha_meblag,
    sth.sth_stok_kod,
    sth.sth_miktar,
    sth.sth_tutar
FROM CARI_HESAP_HAREKETLERI cha
JOIN STOK_HAREKETLERI sth ON sth.sth_fat_uid = cha.cha_Guid
WHERE cha.cha_iptal = 0 
  AND sth.sth_iptal = 0
  AND cha.cha_evrak_tip = 63;

Satış Cirosu ve İade Hesaplama Farkı

Ciro raporu alırken iki sistemde de iadelerin doğru düşülmesi gerekir. Mikro'da sth_normal_iade kolonu 0 ise normal satış, 1 ise iade anlamına gelir. Net ciroyu hesaplarken iade satırları eksi olarak toplanmalıdır:

-- Veritabanı: MIKRO
-- Ürün bazlı net satış cirosu (İadeler düşülmüş)
SELECT 
    sth_stok_kod,
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_tutar ELSE -sth_tutar END) AS NetCiro
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0 
  AND sth_evraktip = 4
GROUP BY sth_stok_kod
ORDER BY NetCiro DESC;

Sık yapılan hatalar

  • Mikro'da *_iptal = 0 filtresini unutmak: Mikro'da silinen veya iptal edilen evraklar fiziksel olarak veritabanında kalabilir (sth_iptal = 1 veya cha_iptal = 1). Bu filtre konulmazsa raporlar şişer.
  • İade satırlarını hesaba katmamak: Her iki ERP'de de iade yönü terstir. Mikro'da sth_normal_iade = 1 olan satırları pozitif toplamak ciroyu ve miktarı hatalı gösterir.
  • Faturayı iki taraftan birden toplayarak çift saymak: Fatura cirosunu alırken hem STOK_HAREKETLERI hem de CARI_HESAP_HAREKETLERI tablolarındaki tutarları aynı toplama dahil etmek ciroyu iki katı çıkartır.
  • Vade alanlarını yanlış dönüştürmek: Mikro'da cha_vade alanı bazen gün sayısı bazen de YYYYMMDD formatında tamsayı olabilir. Doğrudan DATEADD çalıştırmak veri taşma hatasına (Msg 517 / Msg 8115) yol açabilir.
  • Depo transferlerini tek bacaklı toplamak: Mikro'da depo transferi sth_tip = 2 olduğunda hem giriş (sth_giris_depo_no) hem çıkış (sth_cikis_depo_no) deposu dikkate alınmalıdır.

Sık sorulanlar

Mikro'dan Netsis'e veya Netsis'ten Mikro'ya rapor taşırken nelere dikkat edilmeli? En temel konu yön mantığıdır. Mikro'da sth_tip (0/1/2) ve cha_tip (0/1) enum yapısı kullanılırken, Netsis tarafında 'G'/'C' karakterleri ve BORC/ALACAK ayrımı vardır. Sorgu mantığını taşırken filtreleri ve CASE WHEN koşullarını bu şema farklarına göre yeniden kurmalısınız.

Mikro'da tek bir fatura tablosu var mı? Hayır. Mikro'da fatura kalemleri STOK_HAREKETLERI, cari ve parasal toplamları ise CARI_HESAP_HAREKETLERI tablosunda tutulur. İki kayıt sth_fat_uid = cha_Guid üzerinden bağlanır.

Cari bakiyeyi SQL ile hesaplamak yerine hazır fonksiyon var mı? Mikro tarafında fn_CariHesapAnaDovizBakiye ve fn_CariFoy fonksiyonları kur ve KDV kurallarını dikkate alarak bakiye üretir. Netsis tarafında ise hazır bakiye görünümleri (View) veya prosedürler kullanılabilir.


İster Mikro ister Netsis kullanın, farklı ERP tabloları arasında SQL sorguları yazmak ve rapor üretmek uzmanlık gerektirir. Erp Asistanı ile veritabanı şemalarınızı saniyeler içinde bağlayabilir, doğal dille çalışan hatasız SQL sorgularına ve anlık analiz panellerine kolayca ulaşabilirsiniz.

Ücretsiz üye olun, ERP verilerinizi anında analiz edin →

Bu yazıyı paylaş
Konuşarak raporlayın

Mikro'da SQL ve raporu konuşarak alın

Türkçe sorunuzu yazın, şemanıza uygun çalışan SQL'i ya da hazır uygulamanızı saniyeler içinde alın. Kredi kartı gerekmez.