İçeriğe geç

ERP entegrasyonu

VidiStock ürün, satış, stok ve satınalma verisini ERP’nizden otomatik alabilir. Bağlantı yalnızca okur; ERP’nize hiçbir şey yazmaz.

Ağınızdaki bir bilgisayara VidiStock Bağlayıcı adlı küçük bir servis kurulur. Bağlayıcı veriyi okuyup VidiStock’a gönderir. Bağlantıyı her zaman bağlayıcı başlatır; güvenlik duvarınızda içeri doğru port açmanız gerekmez.

Netsis, Logo ve Mikro: bağlayıcı ERP tablolarına girmez. ERP veritabanında vidistock adlı ayrı bir şemaya kurulan okuma nesnelerinden (view ya da procedure) okur. Bağlayıcının SQL kullanıcısının yalnızca bu şemada yetkisi vardır, ERP tablolarına hiçbir yetkisi yoktur.

  • Hangi verinin nasıl okunacağı bu nesnelerde yazılıdır. Fatura mı irsaliye mi okunacağı, hangi şubenin alınacağı ve kampanya satışının nasıl işaretlendiği bunlara örnektir.
  • Nesneleri kurulumda entegrasyoncu kurar. Örnek betiklerden başlar ve firmanın ERP kullanımına göre uyarlar.
  • ERP’de bir değişiklik olursa yalnızca bu nesneler düzenlenir; VidiStock’ta bir şey değişmez.

DİA: bulutta çalıştığı için bağlayıcı DİA’yı web servisinden okur. İnternete çıkabilen herhangi bir bilgisayarda çalışabilir.

Yönetim → Entegrasyonlar sayfası yalnızca yöneticiye açıktır.

  1. ERP seçimi: Kullandığınız ERP’yi seçin.

  2. Bağlayıcı: Anahtar üret deyin ve anahtarı kopyalayın; yalnızca bir kez gösterilir. Bağlayıcıyı kurup ayar dosyasına VidiStock adresini ve anahtarı yazın. Bir dakika içinde “Bağlayıcı çevrimiçi” rozeti görünür.

  3. Okuma nesneleri (Netsis, Logo, Mikro): Sayfadaki Örnek betikleri indir ile betikleri alın ve veritabanı yöneticinizle şu sırayla ERP veritabanında çalıştırın:

    • 00-sema-ve-yetki.sql: vidistock şemasını ve yalnızca bu şemada yetkisi olan SQL kullanıcısını açar.
    • views.sql ya da procedures.sql: okuma nesnelerini kurar. Önce dosyadaki UYARLAYIN işaretli yerleri firmaya göre düzenleyin.
    • Her veri türü için view ya da procedure seçebilirsiniz; ikisi karışık da kullanılabilir.
  4. Bağlantı: ERP veritabanının sunucusunu, adını ve 3. adımdaki SQL kullanıcısını girin. Her veri türü için kurduğunuz nesnenin türünü (view ya da procedure) seçip Kaydet ve bağlantıyı sına deyin. Sınama şunları denetler:

    • her nesnenin varlığı ve türü;
    • nesnelerin döndürdüğü kolonlar;
    • kullanıcının yetkisi.

    DİA’da bunların yerine sunucu kodu, DİA kullanıcısı, API anahtarı ve firma kodu girilir.

  5. Kapsam ve takvim: Hangi verilerin, hangi sıklıkla alınacağını ve depo eşlemesini ayarlayın.

  6. Etkinleştirin ve Şimdi eşitle deyin.

Nesneler vidistock.<Ad> biçimindedir; şema adı Entegrasyonlar sayfasından değiştirilebilir.

Kolon kuralları:

  • Kolonlar adla eşlenir; büyük-küçük harf ve sıra önemli değildir.
  • Fazla kolonlar yok sayılır.
  • Eksik isteğe bağlı kolon boş sayılır.
Nesne Zorunlu kolonlar İsteğe bağlı kolonlar
Warehouses (depolar) Code Name
Products (ürünler) Code, Name Unit, Category, SupplierCode, SupplierName, LeadTimeDays, Cost, Price, CostCurrencyNo, PriceCurrencyNo, ürün özellikleri
Sales (satışlar) ProductCode, Date, SalesQty WarehouseCode, CustomerCode, CustomerName, ReturnQty, CampaignQty
Stock (stok) ProductCode, OnHand WarehouseCode, OnOrder
Suppliers (tedarikçiler) Code Name
Deliveries (satınalma siparişleri) SupplierCode, ProductCode, OrderDate, OrderedQty OrderNo, DueDate, ReceivedDate, ReceivedQty, UnitPrice, CurrencyNo, WarehouseCode, Closed
Transfers (depolar arası transferler) Date, ProductCode, FromWarehouse, ToWarehouse, Qty DocumentNo

Tarih süzgeci ve parametreler:

  • View’da tarih süzgecini bağlayıcı uygular:
    • satış ve transferde Date, okunan aralıkta olmalıdır;
    • satınalmada OrderDate, satınalma geçmişinin başlangıcından sonra olmalıdır.
  • Procedure aynı süzgeci kendi parametreleriyle yapar:
    • satış ve transferde @From date, @To date (iki gün dahil);
    • stok, tedarikçi ve satınalmada @PurchasingFrom date.

Toplama ve dönüşümler:

  • Satış ve transfer satır düzeyinde dönebilir; VidiStock gün, ürün ve depo bazında toplar.
  • Miktarlar ana birimde olmalıdır.
  • CampaignQty: satışın kampanya olarak işaretli kısmıdır. Bu kısım temel talep tahmininden çıkarılır ve kampanyaların etkisi ondan öğrenilir.

Kolonların ayrıntılı anlamı örnek betiklerle birlikte gelen README.md dosyasındadır.

Ayar Açıklama
Şema Okuma nesnelerinin bulunduğu şema (varsayılan vidistock). Değişirse satış geçmişi bir sonraki eşitlemede baştan okunur.
Okuma nesneleri Her veri türü için view ya da procedure. Varsayılan yoktur; açık olan her veri türü için seçilmeden entegrasyon etkinleştirilemez. Transferler için “Okunmaz” seçilebilir. Satışların nesne türü değişirse satış geçmişi baştan okunur.
Geçmiş başlangıcı İlk eşitlemede satışın okunacağı ilk tarih. En az iki yıl önerilir.
Yenileme penceresi Her eşitlemede yeniden okunan son gün sayısı. ERP’de sonradan düzeltilen veya silinen belgeler bu pencere içindeyse VidiStock’a yansır.
Takvim Her gün belirli saatte, belirli aralıkla veya yalnızca elle.
Satış kaynağı (DİA) Satış miktarının fatura mı irsaliye mi hareketlerinden okunacağı. Netsis, Logo ve Mikro’da bu seçim satış nesnesinin içindedir.
Kampanya satışları (DİA) Kampanya satışını satış satırının bir alanında işaretliyorsanız alanın adı ve değeri (varsayılan K). Netsis, Logo ve Mikro’da kampanya satışı satış nesnesinin CampaignQty kolonundan okunur.
Depo eşlemesi ERP’deki her deponun VidiStock’taki karşılığı. Eşlenmeyen deponun verisi alınmaz; hurda ve fire depolarını eşlemeyin.
  • Netsis:
    • Örnek betikler satışı satış faturasından okur; müşteri iade faturalarını (alış türünde giriş, hareket türü L ve M) iade sayar. Şube süzgeci yoktur; gerekiyorsa satış nesnesine eklenir.
    • Netsis veritabanları çoğunlukla Latin1 harmanlamalıdır ama metni Türkçe kod sayfasıyla yazar. Betiklerdeki vidistock.TRK fonksiyonu adlardaki İ, ı, Ş, ş, Ğ, ğ harflerini düzeltir.
    • Netsis kodları harfe duyarsız karşılaştırır (51011P ile 51011p aynıdır); VidiStock da birebir eşleşmeyen kodu, yalnızca tek ürüne uyuyorsa harfe bakmadan eşler.
  • Logo Tiger / Go:
    • Tablolar firma ve dönem numarası taşır. Firma numarası ve satış kaynağı örnek betiklerin başındaki ayar bölümündedir.
    • Hareketler firmanın tüm dönemlerinden, stok ve son fiyatlar en son dönemden okunur.
    • views.sql view’ları kurulduğu andaki dönemlerle oluşturur; yeni dönem açılınca betiği yeniden çalıştırın. procedures.sql dönemleri her okumada kendiliğinden bulur.
  • Mikro: Stok bakiyesi hareketlerin toplamından hesaplanır; çok büyük veritabanlarında stok okuması uzun sürebilir.
  • DİA:
    • Web servisi için ayrı bir DİA kullanıcısı açın; aynı kullanıcıyla DİA’da çalışan kişinin oturumu düşebilir.
    • Her eşitleme DİA kontörünüzden harcar; çoğu firma için günde bir eşitleme yeterlidir.
    • Ürün maliyeti, satış fiyatı ve temin süresi DİA’dan alınmaz.

Satınalma siparişleri, mal kabulleri ve depolar arası transferler ERP’de yapılır. VidiStock bunları yalnızca okur ve önerileriyle karşılaştırır (Öneri uyumu); aynı işlem VidiStock’ta ikinci kez girilmez.

  • Siparişler ve teslimatlar satınalma kapsamı açıksa okunur.
    • Siparişin deposu da alınır ve öneriyle depo bazında eşleştirmede kullanılır.
    • Deposu eşlenmemiş bir ERP deposu olan sipariş yine alınır; deposu boş bırakılır.
    • DİA’da depo okunabildiğinde alınır.
    • Son 400 günün siparişleri ve tarihinden bağımsız olarak hâlâ açık olanlar okunur. Kısmen teslim alınmış kalem açık kalır, kalan miktar beklenir.
    • ERP’de kapatılan sipariş (Closed; Netsis’te KAPATILMIS): kısmen teslim alınmışsa Alış Siparişleri sayfasında Eksik kapatıldı olur ve ERP’de yeniden açılırsa açılır; hiç teslim alınmadan kapatılmışsa VidiStock’a alınmaz.
  • Transferler stok kapsamı açıksa okunur; iki deposu da eşlenmiş olanlar alınır. Yenileme penceresi kadar geriye yeniden okunur; ilk eşitlemede son 400 gün. Örnek betiklerde transferler şöyle bulunur:
    • Mikro: depolar arası sevk hareketleri (çıkış ve giriş deposu aynı satırda).
    • Logo: ambar fişleri; fişin ambar çıkış satırı okunur.
    • Netsis: aynı fiş numarasında bir depodan çıkış ve başka depoya giriş hareketi.
    • DİA: bu sürümde okunmaz; transferleri İçe Aktarma’daki transfer dosyasıyla yükleyin.

Birkaç üründe geçen ayın satışını ve depo bakiyesini ERP raporunuzla karşılaştırın. Fark görürseniz:

  • Netsis, Logo, Mikro: ilgili okuma nesnesini düzeltin; sorgu ERP veritabanında olduğu için SQL Server Management Studio’da doğrudan çalıştırıp sınayabilirsiniz.
  • DİA: entegrasyonu kapatıp destek ekibine bildirin.

ERP’deki döviz tipi numarası, Ayarlar sayfasındaki para birimi sıra numarasıyla eşleştirilir; 0 her zaman Türk lirasıdır. Numaralar farklıysa Ayarlar’da kendi ERP’nizdeki numaraları girin. ERP aynı para birimini başka bir numarayla da kullanıyorsa (Netsis’in döviz tanımında Türk lirasının 6 olması gibi) o numarayı para biriminin Diğer ERP numaraları alanına yazın. Netsis’in döviz tanımları sistem veritabanındaki KUR tablosundadır (SIRA = döviz tipi).

  • Ürünler: Products nesnesindeki CostCurrencyNo ve PriceCurrencyNo doluysa fiyat o para birimiyle, 0 ise Türk lirasıyla alınır. Boşsa ürünün mevcut para birimi korunur.
    • Netsis örnek betiği stok kartındaki döviz tipini ve dövizli fiyatı okur.
    • Logo ve Mikro örnekleri döviz okumaz.
  • Tanımsız numara: ERP’den gelen numara Ayarlar’da tanımlı değilse satır reddedilmez; kayıt Türk lirası sayılır ve eşitleme geçmişinde numara başına bir uyarı (kaç satırda geçtiğiyle) görünür. Numarayı tanımladıktan sonraki eşitlemede düzelir.
  • Satınalma siparişleri: Sipariş ERP’de hangi para birimindeyse VidiStock’ta da o para birimiyle görünür (Deliveries nesnesindeki UnitPrice ve CurrencyNo). Örnek betiklerde döviz şöyle bulunur:
    • Netsis: sipariş satırındaki döviz tipi ve dövizli fiyat.
    • Mikro: siparişin döviz cinsi.
    • Logo: satırın işlem dövizi ve kuru; yerel fiyat kura bölünür. Logo’nun döviz numaraları farklıdır (ör. euro 20); Ayarlar’da sıra numaralarını buna göre girin.
  • DİA: Ürün kartı fiyatları yerel para biriminde okunur. Sipariş para birimi henüz okunmaz; DİA siparişleri TL kabul edilir.

Ayarlar sayfasında bir özelliğin ERP alanı doldurulursa, bağlayıcı o alanı okur ve değeri ürüne yazar.

  • Netsis, Logo, Mikro: ERP alanı, Products nesnesinin ek bir kolonunun adıdır. Örnek betiklerde bunlar vardır: Netsis KOD_1 ve KOD_2, Logo SPECODE, Mikro sto_marka_kodu. Başka bir alan gerekiyorsa nesneye kolon olarak eklenir; ayrı bir tablodaki değer de nesneye katılarak okunabilir.
  • Bulunamayan kolon bağlantı sınamasında “isteğe bağlı kolon bulunamadı” olarak görünür; eşitleme durmaz, o özellik boş kalır. Alan adı yalnızca harf, rakam ve alt çizgiden oluşabilir.
  • Çok değerli özellikte ERP’deki değer virgülle ayrılır.
  • ERP’den beslenen özellik her eşitlemede ERP’deki değerle yeniden yazılır; ürün sayfasında elle yapılan değişiklik kalıcı olmaz.
  • DİA henüz desteklenmez.

Okuma nesnelerinden okuma, bağlayıcının 2.0 sürümüyle gelir. Daha eski bağlayıcı ERP tablolarını doğrudan okurdu. Eski bağlayıcı kuruluysa:

  • Entegrasyonlar sayfası güncelleme uyarısı gösterir;
  • bağlayıcı güncellenene kadar ona ayar ve komut gönderilmez.