Bloga Dön
Kurumsal Çözümler

Doküman Yönetim Sistemi Nedir? DYS Kurulum Rehberi

Doküman yönetim sistemi bir dosya sunucusu değildir; asıl işi depolamak değil, hangi sürümün geçerli olduğunu, kimin neye erişebildiğini ve belgenin ne zaman imha edileceğini tek yerden yönetmektir.

Doküman YönetimiKurumsal ÇözümlerKVKKSüreç Yönetimi

Doküman yönetim sistemi (DYS), belgelerin tek merkezde saklandığı, sürümlendiği, yetkilendirildiği ve erişim geçmişinin kaydedildiği yazılımdır. Ortak klasörden farkı depolama alanı değil, üç sorunun tek cevabının olmasıdır: hangi sürüm geçerli, bu belgeyi kim görebilir, bu belge ne zamana kadar saklanacak. Bu üç soruya cevap veremeyen bir kurulum, adı ne olursa olsun hâlâ bir dosya sunucusudur.

Ortak klasör nerede tıkanır?

Şirketlerin çoğu bir ağ klasörü ya da bulut sürücüsüyle başlar ve bu bir süre yeter. Tıkanma, dosya sayısı arttığında değil, aynı belgeye birden fazla kişi dokunmaya başladığında gelir. Beş noktada kendini gösterir:

  • Aynı belgenin “son”, “son_v3”, “FINAL” diye çoğalması ve hangisinin geçerli olduğunun kimsenin emin olamaması.
  • İki kişinin aynı dosyayı aynı anda açıp birinin değişikliğinin sessizce kaybolması.
  • Bir sözleşmenin yalnızca ayrılan çalışanın kişisel sürücüsünde kalması.
  • Belgeyi kimin açtığının, indirdiğinin ya da dışarı gönderdiğinin bilinmemesi.
  • Sözleşme yenileme, teminat mektubu ve belge geçerlilik tarihlerinin kimsenin takviminde olmaması.

Bu maddelerin hiçbiri depolama sorunu değildir; hepsi süreç sorunudur. DYS de bu yüzden bir “daha büyük disk” değil, bir iş kuralları katmanıdır. Aynı mantığı süreçlerin tamamına yaymak isterseniz şirket içi otomasyon yazılımı yazımıza bakabilirsiniz.

DYS’nin çekirdek modülleri

  • Sürümleme ve check-out: belge düzenlenirken kilitlenir, kaydedilince yeni sürüm açılır, eski sürümler silinmez.
  • Yetkilendirme: klasör bazlı değil, belge tipi ve rol bazlı. “İK klasörü” değil, “özlük dosyası tipini yalnızca İK uzmanı görür”.
  • Metadata ve tam metin arama: belge tipi, taraf, tarih, tutar gibi alanlar zorunlu; taranmış PDF’ler OCR’dan geçmeden aranamaz.
  • Onay akışı: taslak → inceleme → onay → yayın; her adımda kim, ne zaman, hangi yorumla onayladı.
  • İz kaydı (audit log): görüntüleme, indirme, paylaşma ve silme kayıtları değiştirilemez biçimde tutulur.
  • Saklama ve imha planı: her belge tipi için saklama süresi ve süre dolduğunda ne olacağı.
DYS projelerinde en çok atlanan modül imhadır. KVKK açısından belgeyi saklamak kadar, saklama süresi dolduğunda silmek de bir yükümlülüktür; “her şeyi sonsuza kadar tut” politikası uyumsuzluk üretir.

Arama dosya adında değil, içerikte olur

Kullanıcı bir belgeyi ararken adını hatırlamaz; müşterinin adını, sözleşmenin tarihini ya da içindeki bir cümleyi hatırlar. Bu yüzden iki şey birlikte kurulur: yükleme sırasında doldurulması zorunlu metadata alanları ve içeriğin tam metin indekslenmesi. Taranarak arşive giren belgeler için OCR şarttır; aksi halde sistemde duran ama bulunamayan on binlerce sayfa birikir. Metadata alanlarını serbest metin değil, listeden seçilen değerler yapın — “Ahmet Yılmaz”, “A. Yılmaz” ve “ahmet yilmaz” üç farklı taraf demektir.

Sürüm kaydı nasıl çalışmalı?

Aşağıdaki örnek, bir belgenin yeni sürümünü kaydeden akışın çekirdeğini gösteriyor. Üç ayrıntı önemli: kilit kontrolü olmadan eşzamanlı düzenleme sessizce veri kaybettirir, aynı içerik yeniden yüklendiğinde yeni sürüm açmak arşivi gereksiz şişirir, ve saklama süresi belgenin yürürlük tarihinden hesaplanır — yükleme tarihinden değil.

type CheckInResult = { version: number; created: boolean };

async function checkIn(
  docId: string,
  file: { bytes: Buffer; effectiveDate?: Date },
  userId: string,
): Promise<CheckInResult> {
  const doc = await repo.lockForUpdate(docId);

  // 1) Kilit: belgeyi başkası düzenliyorsa yazma reddedilir.
  if (doc.checkedOutBy && doc.checkedOutBy !== userId) {
    throw new ConflictError(`Belge ${doc.checkedOutBy} tarafından düzenleniyor`);
  }

  // 2) İçerik aynıysa yeni sürüm açma; arşiv gereksiz büyümesin.
  const hash = sha256(file.bytes);
  const latest = await repo.latestVersion(docId);
  if (latest && latest.hash === hash) {
    await repo.releaseLock(docId, userId);
    return { version: latest.version, created: false };
  }

  // 3) Saklama süresi yürürlük tarihinden hesaplanır, yükleme tarihinden değil.
  const policy = await repo.retentionPolicy(doc.docType);
  const basis = file.effectiveDate ?? doc.effectiveDate ?? new Date();
  const retentionUntil = addYears(basis, policy.years);

  const version = (latest?.version ?? 0) + 1;
  await repo.insertVersion({ docId, version, hash, retentionUntil, userId });
  await repo.audit({ docId, version, action: 'CHECK_IN', userId });
  await repo.releaseLock(docId, userId);

  return { version, created: true };
}

İz kaydının aynı işlem içinde yazılması tesadüf değil: sonradan toplanan loglar eksik kalır ve denetimde işe yaramaz. Belge akışının diğer sistemlerle konuşması gerekiyorsa (ERP, muhasebe, destek sistemi), aktarımı kuyruk üzerinden ve tekrar çalıştırılabilir biçimde kurun; ayrıntısı API entegrasyonu yazımızda.

Üç satın alma yolu

  • Hazır bulut DYS: en hızlı başlangıç, kullanıcı başına aylık lisans. Standart süreçler için yeterlidir; sektöre özgü onay akışları ve numaralandırma kuralları çoğu zaman esnemez.
  • ERP’nin doküman modülü: veri zaten oradaysa mantıklıdır, çünkü belge cari hesabın ve siparişin yanında durur. Sınırı, ERP dışındaki belgelerdir (İK, hukuk, kalite). Karar için ERP rehberimize bakın.
  • Özel yazılım: onay akışı, belge tipleri ve entegrasyonlar şirkete göre kurulur. Süreç gerçekten farklıysa ya da mevzuat özel bir iz kaydı istiyorsa doğru yoldur; maliyet hesabı için özel yazılım maliyeti yazımız yol gösterir.

Projeyi bozan beş hata

  • Mevcut arşivi olduğu gibi taşımak: klasör dağınıklığı yeni sisteme aynen kopyalanır. Taşımadan önce belge tipleri ve metadata şeması tanımlanır.
  • Yetkiyi klasöre bağlamak: klasör taşındığı anda yetki kayar. Yetki belge tipine ve role bağlanmalıdır.
  • Zorunlu alanları çok tutmak: on alan isteyen bir yükleme ekranı, kullanıcıyı e-posta ekine geri gönderir.
  • Saklama ve imha planını sonraya bırakmak: sonradan eklendiğinde milyonlarca belgenin yürürlük tarihi bilinmez ve süre hesaplanamaz.
  • Eski paylaşımı kapatmamak: ortak klasör açık kaldığı sürece iki arşiv paralel yaşar. Devreye alma planında kapatma tarihi yazılı olmalıdır.

Maliyet nasıl hesaplanır?

Tek bir rakam vermek yanıltıcı olur; teklifi beş kalem hâlinde isteyin: lisans veya geliştirme, mevcut arşivin taşınması ve OCR, entegrasyonlar, eğitim ve devreye alma, yıllık bakım. Bu kalemler içinde en çok küçümsenen ikincisidir — on yıllık bir arşivin sınıflandırılıp taşınması, yazılımın kendisinden uzun sürebilir. KVKK tarafındaki yükümlülükler için KVKK uyumlu web sitesi yazımızdaki ilkeler doküman tarafında da geçerlidir.

Sonuç

Doküman yönetim sistemini “nereye koyacağız” sorusuyla değil, “hangi sürüm geçerli, kim erişebilir, ne zaman imha edilecek” sorularıyla kurun. Belge tiplerini ve metadata şemasını taşımadan önce tanımlayın, yetkiyi role bağlayın, saklama planını ilk sürüme koyun ve eski ortak klasörü kapatacağınız tarihi yazın. Şirketinize uygun kurgu için kurumsal çözümler hizmetimizi inceleyebilir, süreçlerinizi konuşmak için teklif alabilirsiniz.

Projenizi Hayata Geçirelim

Web sitesi, mobil uygulama veya kurumsal yazılım projeniz için ücretsiz danışmanlık alın.

Ücretsiz Teklif AlKurumsal Çözümler hizmetimizi inceleyin