Mikro v17 Tablo Yapısı: Yeni Sistem Kolonları, Varyant Tabloları ve Temel Tablolar Rehberi
Mikro v17 (Mikro Desktop) veritabanı tablo haritası: STOKLAR, STOK_HAREKETLERI, CARI_HESAP_HAREKETLERI, v17 ile gelen dokuz sistem kolonu, CARI_HESAP_BAKIYELERI, varyant tabloları, fonksiyon imzaları ve gerçek v17 veritabanında çalıştırılmış örnek SQL'ler.
Erp Asistanı
Editör ekibi
11 dk okuma
İçindekiler
Mikro v17 (Mikro Desktop), v16'nın tablo düzenini korur ama üstüne yenilerini ekler: neredeyse her tabloya dokuz yeni sistem kolonu gelir, açık bakiyeler için ayrı bir tablo oluşur, beden ve renk bilgisi varyant tablolarına taşınır, bakiye fonksiyonları bir parametre daha ister. Bu rehber yalnızca Mikro v17 veritabanını anlatır: tablo haritası, v17 ile gelen kolon ve tablolar, kod sözlükleri, fonksiyon imzaları ve örnek sorgular. Yazıdaki kolon adları, fonksiyon imzaları ve sorgular gerçek bir v17 veritabanında çalıştırılarak doğrulanmıştır.
Önce: veritabanınız gerçekten v17 mi?
Sürümü veritabanının kendisinden okuyun:
SELECT CASE WHEN COL_LENGTH('dbo.CARI_HESAPLAR', 'cari_VersionNo') IS NOT NULL THEN 'v17'
WHEN COL_LENGTH('dbo.CARI_HESAPLAR', 'cari_Guid') IS NOT NULL THEN 'v16'
WHEN OBJECT_ID('dbo.CARI_HESAPLAR') IS NOT NULL THEN 'v15'
END AS MikroSurumu;
v17'nin işareti cari_VersionNo kolonudur; v15 ve v16'da bu kolon yoktur. Sonuç v16 çıkarsa Mikro v16 tablo yapısı, v15 çıkarsa Mikro v15 tablo yapısı rehberine bakın.
Sürümü bir tablonun varlığından anlamaya çalışmayın: aşağıda anlatılan CARI_HESAP_BAKIYELERI tablosu v17'ye özgüdür ama eski sürümden yükseltilmiş bazı firma veritabanlarında bulunmayabilir. Kolon kontrolü bu yüzden daha güvenilirdir.
Mikro v17 adlandırma mantığı
Kolonlar tabloya özgü önekle başlar: STOKLAR → sto_, STOK_HAREKETLERI → sth_, CARI_HESAPLAR → cari_, CARI_HESAP_HAREKETLERI → cha_, SIPARISLER → sip_, DEPOLAR → dep_. Satır kimliği v16'daki gibi <önek>_Guid'dir; evrak numarası <önek>_evrakno_seri + <önek>_evrakno_sira, iptal bayrağı <önek>_iptal kolonundadır.
v17 ile gelen dokuz sistem kolonu
v17'nin en görünür farkı, tabloların sonuna eklenen dokuz kolondur. Önek değişir, son ek aynı kalır:
| Son ek | Örnek (STOKLAR) |
|---|---|
_MainProgramNo |
sto_MainProgramNo |
_VersionNo |
sto_VersionNo |
_MenuNo |
sto_MenuNo |
_MikroSpecial1, _MikroSpecial2, _MikroSpecial3 |
sto_MikroSpecial1 … |
_ExternalProgramType, _ExternalProgramId |
sto_ExternalProgramType … |
_Hash |
sto_Hash |
İncelediğimiz v17 veritabanında bu kolonlar 394 tabloda bulunur; v15 ve v16'da hiçbirinde yoktur. Raporlarınız için iki sonucu vardır: bu kolonları seçen bir sorgu eski sürümlerde çalışmaz, SELECT * ile kolon sırasına güvenen eski bir sorgu da v17'de farklı sonuç döndürür. Kolonları adıyla seçmek her sürümde en güvenli yoldur.
En çok kullanılan Mikro v17 tabloları
| Tablo | Ne tutar | Öne çıkan kolonlar | Kolon sayısı |
|---|---|---|---|
STOKLAR |
Stok kartları | sto_kod, sto_isim, sto_kisa_ismi, sto_birim1_ad, sto_anagrup_kod, sto_marka_kodu, sto_resim_url |
236 |
STOK_HAREKETLERI |
Tüm stok giriş/çıkışları (fatura ve irsaliye kalemleri dahil) | sth_tarih, sth_stok_kod, sth_miktar, sth_birimfiyat, sth_tutar, sth_tip, sth_evraktip, sth_fat_uid |
148 |
CARI_HESAPLAR |
Cari kartlar | cari_kod, cari_unvan1, cari_unvan2, cari_vdaire_adi, cari_VergiKimlikNo, cari_EMail, cari_CepTel |
196 |
CARI_HESAP_HAREKETLERI |
Parasal hareketler ve fatura başlıkları | cha_tarihi, cha_kod, cha_meblag, cha_kdv_toplam, cha_tip, cha_cinsi, cha_evrak_tip, cha_vade |
186 |
CARI_HESAP_BAKIYELERI |
Cari bakiye kayıtları (yalnız v17) | chb_cari_kodu, chb_bakiye, chb_vade, chb_evrak_tip |
50 |
SIPARISLER |
Sipariş kalemleri (ayrı başlık tablosu yoktur) | sip_tarih, sip_musteri_kod, sip_stok_kod, sip_miktar, sip_teslim_miktar, sip_tip, sip_kapat_fl |
140 |
DEPOLAR |
Depo tanımları | dep_no, dep_adi, dep_tipi |
81 |
BARKOD_TANIMLARI |
Barkodlar | bar_kodu, bar_stokkodu, bar_birimpntr |
44 |
STOK_SATIS_FIYAT_LISTELERI |
Stok × liste × depo × birim fiyatı | sfiyat_stokkod, sfiyat_listesirano, sfiyat_deposirano, sfiyat_birim_pntr, sfiyat_fiyati |
42 |
KASALAR / BANKALAR |
Kasa ve banka tanımları | kas_kod, kas_isim · ban_kod, ban_ismi, ban_IBANKodu |
34 / 99 |
VARYANTLAR |
Varyant kayıtları (yalnız v17) | beden, renk gibi kırılımların yeni yeri | 28 |
Kolon sayıları gerçek bir v17 veritabanından sayılmıştır. Aynı veritabanında 450 tablo, 935 görünüm (view) ve 1.267 fonksiyon bulunur.
Mikro'da ayrı bir FATURALAR tablosu yoktur: faturanın başlığı CARI_HESAP_HAREKETLERI'nde, kalemleri STOK_HAREKETLERI'ndedir ve ikisi sth_fat_uid = cha_Guid ile bağlanır. Ayrıntı: Mikro'da fatura hangi tabloda?
v17'ye özgü üç yenilik
1. Hazır birim fiyat ve KDV toplamı. v16'da birim fiyat, tutarın miktara bölünmesiyle hesaplanırdı. v17'de STOK_HAREKETLERI tablosuna sth_birimfiyat, CARI_HESAP_HAREKETLERI tablosuna cha_birimfiyat ve cha_kdv_toplam kolonları gelir. Siparişte sip_miktar2 ve sip_avans_tutari de v17 ile eklenmiştir.
2. Bakiye tablosu. CARI_HESAP_BAKIYELERI v15 ve v16'da yoktur. v17'de cari bakiye kayıtlarını (chb_cari_kodu, chb_bakiye, chb_vade) tutar. Eski sürümden yükseltilmiş bir veritabanında bu tablo bulunmayabileceği için, her v17 kurulumunda çalışması gereken bir rapor bakiyeyi hareketlerden hesaplamalıdır (aşağıda örneği var).
3. Beden ve renk yerine varyant. v15 ve v16'da stok kartında duran sto_beden_kodu ve sto_renk_kodu kolonları v17'de yoktur. Yerlerine STOKLAR tablosunda sto_varyant_detayli_fl1 gibi varyant kolonları ve VARYANTLAR, VARYANT_KIRILIM_TANIMLARI, VARYANT_BAGLANTI_TANIMLARI tabloları gelir. Beden/renk kırılımlı eski raporlar v17'de yeniden yazılmalıdır.
Kod sözlükleri
STOK_HAREKETLERI:
| Kolon | Değerler |
|---|---|
sth_tip (yön) |
0: Giriş · 1: Çıkış · 2: Depo transferi |
sth_cins (sınıf) |
0: Toptan · 1: Perakende · 4: Fire · 5: Sarf · 7: Üretim · 10: Sayım · 11: Açılış |
sth_evraktip (evrak) |
1: Çıkış irsaliyesi · 3: Giriş (alış) faturası · 4: Çıkış (satış) faturası · 13: Giriş irsaliyesi · 18: Stoktan demirbaşa virman dekontu (v17 ile geldi) |
sth_normal_iade |
0: Normal · 1: İade |
CARI_HESAP_HAREKETLERI:
| Kolon | Değerler |
|---|---|
cha_tip (yön) |
0: Borç · 1: Alacak |
cha_cinsi (sınıf) |
0: Nakit · 1: Müşteri çeki · 2: Müşteri senedi · 5: Dekont · 6: Toptan fatura · 7: Perakende fatura · 8: Hizmet faturası |
cha_evrak_tip (evrak) |
0: Alış faturası · 63: Satış faturası · 1: Tahsilat makbuzu · 64: Tediye makbuzu · 137: Stoktan demirbaşa virman dekontu (v17 ile geldi) |
cha_cari_cins (hesap türü) |
0: Cari · 2: Banka · 4: Kasa |
SIPARISLER: sip_tip 0 alınan (müşteri) siparişi, 1 verilen (tedarikçi) siparişidir.
Kodları ezberlemek zorunda değilsiniz; veritabanı adlarını kendisi söyler:
-- Evrak tipi numarasının adını veritabanından okuma
SELECT SHEvrNo, SHEvrIsim
FROM vw_Stok_Hareket_Evrak_Isimleri
ORDER BY SHEvrNo;
SELECT dbo.fn_StokHarEvrTip(4) AS [Stok evrak 4],
dbo.fn_CariHarEvrTipUzun(63) AS [Cari evrak 63],
dbo.fn_TalepTemin(0) AS [Sipariş tipi 0];
Satış cirosunun güvenli tanımı: sth_iptal = 0 AND sth_tip = 1 AND sth_evraktip IN (1, 4) AND sth_normal_iade = 0. Yalnız sth_evraktip = 4 yazarsanız irsaliyeyle kesilmiş satışlar dışarıda kalır.
v17 fonksiyonları ve imzaları
| Fonksiyon | v17'de parametre | Diğer sürümler |
|---|---|---|
fn_EldekiMiktar |
1 (stok kodu) | Üç sürümde 1 |
fn_DepodakiMiktar |
3 (stok kodu, depo no, tarih) | Üç sürümde 3 |
fn_StokSatisFiyati |
4 (stok kodu, fiyat listesi, depo, birim) | v15'te 3 |
fn_CariHesapBakiye |
12 | v15'te 7, v16'da 11 |
fn_CariHesapAnaDovizBakiye |
14 | v15'te 9, v16'da 13 |
fn_OpVadeTarih |
2 (vade kodu, referans tarih) | Üç sürümde 2 |
fn_VergiYuzde |
1 (vergi sıra numarası) | Üç sürümde 1 |
v17'de bakiye fonksiyonlarına eklenen son parametre depozito nakit işlemlerinin bakiyeyi etkileyip etkilemeyeceğini belirler. v16'dan taşınan bir bakiye sorgusu "An insufficient number of arguments were supplied" hatası veriyorsa eksik olan bu son parametredir.
İki tuzak daha:
- Ana veritabanı bağımlılığı. v17 fonksiyon ve görünümlerinin bir bölümü ana Mikro veritabanına (
MikroDesktop) adıyla başvurur. Raporu çalıştıran SQL kullanıcısının o veritabanını da okuyabilmesi gerekir; yoksa sorgu "is not able to access the database" hatasıyla durur. Hızlı teşhis:SELECT DB_ID('MikroDesktop'). - KDV kolonları oran değildir.
sto_toptan_vergi,sto_perakende_vergivesth_vergi_pntrbir sıra numarası tutar; oranıdbo.fn_VergiYuzde(sıra)verir ve numara–oran eşleşmesi kuruluma göre değişir.
Gerçek v17 veritabanında çalıştırılmış dört sorgu
-- 1) Eldeki stok
SELECT sto_kod AS [Stok Kodu], sto_isim AS [Stok Adı],
dbo.fn_EldekiMiktar(sto_kod) AS [Eldeki Miktar]
FROM STOKLAR
WHERE sto_iptal = 0 AND sto_hidden = 0
ORDER BY sto_kod;
-- 2) En borçlu 15 müşteri (hareketlerden; her v17 veritabanında çalışır)
WITH bakiye AS (
SELECT c.cha_kod AS kod,
SUM(CASE WHEN c.cha_tip = 0 THEN 1 ELSE -1 END
* c.cha_meblag
* CASE WHEN ISNULL(c.cha_d_kur, 0) BETWEEN 0.01 AND 500 THEN c.cha_d_kur ELSE 1 END) AS tl
FROM CARI_HESAP_HAREKETLERI c
WHERE c.cha_iptal = 0 AND c.cha_cari_cins = 0
GROUP BY c.cha_kod
)
SELECT TOP 15 ISNULL(ch.cari_unvan1, b.kod) AS [Müşteri],
CAST(b.tl AS decimal(18,2)) AS [Bize Borcu (TL)]
FROM bakiye b
LEFT JOIN CARI_HESAPLAR ch ON ch.cari_kod = b.kod
WHERE b.tl > 0
ORDER BY b.tl DESC;
-- 3) Son 30 günün satış faturası kalemleri (v17: hazır birim fiyat kolonu)
SELECT TOP 50 sth_tarih AS [Tarih], sth_evrakno_seri AS [Seri], sth_evrakno_sira AS [Sıra],
sth_cari_kodu AS [Cari Kodu], sth_stok_kod AS [Stok Kodu], sth_miktar AS [Miktar],
sth_birimfiyat AS [Birim Fiyat], sth_tutar AS [Tutar]
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0 AND sth_tip = 1 AND sth_evraktip = 4 AND sth_normal_iade = 0
AND sth_tarih >= DATEADD(DAY, -30, CAST(GETDATE() AS date))
ORDER BY sth_tarih DESC, sth_evrakno_sira DESC, sth_satirno;
-- 4) Güncel kasa ve banka bakiyesi (v17 imzası: 14 parametre)
SELECT dbo.fn_CariHesapAnaDovizBakiye(N'', 4, N'', N'', N'', 0, '19000101', GETDATE(), 0, 0, 0, 0, 0, 0) AS [Kasa Bakiyesi],
dbo.fn_CariHesapAnaDovizBakiye(N'', 2, N'', N'', N'', 0, '19000101', GETDATE(), 0, 0, 0, 0, 0, 0) AS [Banka Bakiyesi];
Dördüncü sorguda ikinci parametre hesap türüdür (4 kasa, 2 banka); üçüncü parametre boş bırakıldığında o türdeki bütün hesaplar toplanır. Aynı çağrı v16'da 13, v15'te 9 parametreyle yapılır.
v16'dan v17'ye geçerken ne değişir?
| Konu | v16 | v17 |
|---|---|---|
Sistem kolonları (_VersionNo, _Hash …) |
Yok | Var (dokuz kolon) |
sth_birimfiyat, cha_birimfiyat, cha_kdv_toplam |
Yok | Var |
sip_miktar2, sip_avans_tutari |
Yok | Var |
CARI_HESAP_BAKIYELERI, VARYANTLAR |
Yok | Var |
sto_beden_kodu, sto_renk_kodu |
Var | Yok |
cha_disyazilimid |
Var | Yok |
fn_CariHesapBakiye |
11 parametre | 12 parametre |
fn_CariHesapAnaDovizBakiye |
13 parametre | 14 parametre |
| Ana veritabanı | MikroDB_V16 |
MikroDesktop |
Özetle v17 çoğunlukla ekler, az şey kaldırır. v16 raporlarının büyük kısmı v17'de aynen çalışır; bozulanlar beden/renk kolonlarını kullananlar, cha_disyazilimid'i seçenler ve bakiye fonksiyonlarını eski parametre sayısıyla çağıranlardır. Geçiş planı için: Mikro v16 ve v17 farkları.
Sık yapılan hatalar
- İptal filtresini unutmak:
sth_iptal = 0,cha_iptal = 0,sip_iptal = 0yazılmazsa iptal edilmiş evraklar rapora karışır. - Cari bakiyeyi süzmeden toplamak:
CARI_HESAP_HAREKETLERIkasa ve banka hareketlerini de taşır; müşteri bakiyesi içincha_cari_cins = 0şartı gerekir. - Dövizli hareketi TL gibi toplamak:
cha_meblaghareketin kendi para birimindedir; TL karşılığı içincha_d_kurile çarpın. cha_vadekolonunu tarih sanmak: Bu kolon tam sayıdır; gerçek vade tarihinidbo.fn_OpVadeTarih(cha_vade, cha_tarihi)verir. Ayrıntı: Mikro cari yaşlandırma raporu.SELECT *kullanmak: v17'nin eklediği kolonlar yüzünden kolon sayısı ve sırası v16'dan farklıdır.
Sık sorulanlar
Mikro v17'de kaç tablo var? Kuruluma göre değişir; incelediğimiz v17 veritabanında 450 tablo ve 935 görünüm bulunuyor. Günlük raporların çoğu bu rehberdeki çekirdek tablolarla çıkar.
v17'de beden ve renk bilgisi nerede? Stok kartındaki beden ve renk kolonları kaldırılmıştır; bilgi varyant yapısına (VARYANTLAR ve ilgili tanım tabloları, STOKLAR tablosundaki varyant kolonları) taşınmıştır.
CARI_HESAP_BAKIYELERI tablosu bende neden yok? Bu tablo v17'ye özgüdür ama eski sürümden yükseltilmiş bazı firma veritabanlarında oluşmayabilir. Bakiyeyi CARI_HESAP_HAREKETLERI'nden hesaplayan sorgu her durumda çalışır.
Tablo ve kod ezberlemeden v17 raporu alabilir miyim? Evet. Erp Asistanı'nda sorunuzu Türkçe yazarsınız; sistem sürümü bağlantınızdan algılar ve sorguyu v17 şemasına göre kurar.
Sürümlerin ortak yapısı için: Mikro tablo yapısı rehberi. Hazır sorgular için: Mikro hazır SQL sorguları.
Bu haritayı ezberlemek yerine kullanmak isterseniz Erp Asistanı'na ücretsiz üye olun, raporunuzu doğal dille isteyin; v17 şemanıza uygun SQL'i saniyeler içinde alı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.