Bir yapı malzemeleri toptancısı düşünün. Tedarikçiler her ay yeni fiyat listesini Excel olarak gönderiyor. Satın alma sorumlusu dosyayı açıyor, sütunları sistemin istediği sıraya diziyor, birkaç satırı düzeltiyor ve "Yükle" düğmesine basıyor. Ekranda tek bir mesaj beliriyor: "Dosya işlenemedi." Hangi satırda, hangi hücrede, neden olduğu yazmıyor.
Sorumlu dosyayı ikiye bölüp yeniden deniyor, sonra dörde. Bir saat sonra sorunun bir ürün kodunun başındaki sıfırın Excel tarafından silinmesi olduğunu buluyor. Ertesi ay aynı şey başka bir sütunda oluyor. Bir süre sonra fiyatlar elle girilmeye başlıyor ve "toplu yükleme" özelliği kimsenin açmadığı bir menüye dönüşüyor.
Toplu yükleme, iş yazılımlarında genellikle teslimden önceki son haftalarda eklenen, "bir dosya seç, kaydet" düzeyinde bırakılan bir özelliktir. Oysa bir kez yapılan veri taşımadan farklı olarak her hafta ya da her ay tekrarlanan bir iştir ve onu kullanan kişi çoğu zaman yazılımcı değildir. Aşağıdaki yedi kural, bu ekranı geliştirmeden önce konuşulduğunda birkaç günlük ek iş getirir; konuşulmadığında ise her ay aynı saati yeniden kaybettirir.
1. Şablonu sistemin kendisi versin
Kullanıcıya "şu sütunlar şu sırayla olsun" diyen bir yardım metni yazmak yerine, yükleme ekranına bir "Şablonu indir" bağlantısı koyun. Şablonda sütun başlıkları, zorunlu alanların işareti ve bir örnek satır bulunsun. İkinci bir sekmede her sütunun ne beklediği kısa cümlelerle yazsın: "Birim: ADET, KG, M2 değerlerinden biri" gibi.
Şablon sistemden üretildiği için yeni bir alan eklendiğinde kendiliğinden güncellenir. Kullanıcı bir yıl önce masaüstüne kaydettiği eski dosyayla uğraşmaz.
2. Sütunları sırasına göre değil, adına göre okuyun
Tedarikçiden gelen dosya hiçbir zaman sizin şablonunuzla birebir aynı olmaz. Bir sütun fazladır, ikisinin yeri değişmiştir, birinin adı "Fiyat" yerine "Birim Fiyat"tır. Sistem sütunları soldan sağa sırayla okursa, bir kaydırma bütün fiyatları stok alanına yazabilir ve hata vermeden.
Dosya yüklendiğinde başlık satırını okuyun ve kullanıcıya bir eşleştirme ekranı gösterin: dosyadaki her sütunun sistemdeki hangi alana gideceği, tanınmayanların "kullanılmayacak" olarak işaretlendiği bir liste. Aynı kaynaktan gelen dosyalar için son eşleştirmeyi hatırlayın; ikinci aydan itibaren bu ekran tek bir onay tıklamasına iner.
3. Kaydetmeden önce ne olacağını gösterin
"Yükle" düğmesi doğrudan veritabanına yazmamalıdır. Önce dosyayı okuyup bir özet gösterin: kaç satır yeni kayıt olarak eklenecek, kaç satır mevcut bir kaydı güncelleyecek, kaç satır hatalı olduğu için atlanacak. Güncellenecek kayıtlarda eski ve yeni değerden birkaç örnek de gösterin.
Bu özet, en pahalı hataları yakalar. Yalnızca fiyatları değiştirmesi beklenen bir dosyanın 1.200 ürünün adını da değiştireceğini görmek, kullanıcıya "İptal" demek için bir şans verir.
4. Hatayı satır ve hücreyle birlikte söyleyin
"Dosya işlenemedi" bir hata mesajı değildir. İyi bir mesaj nerede ve neden sorusunu birlikte cevaplar: "Satır 214, Fiyat sütunu: '1.250,00 TL' sayı olarak okunamadı" ya da "Satır 87, Ürün Kodu boş; bu alan zorunlu."
Hatalı satırlar yüzlerce olabilir. Onları ekranda listelemek yerine, yalnızca hatalı satırları ve her satırın yanına hata açıklamasını içeren bir dosya olarak geri verin. Kullanıcı o dosyayı düzeltip yeniden yükler; doğru satırları tekrar yüklemek ya da aramak zorunda kalmaz.
Bir karar daha gerekir: hatalı satır varsa geri kalanlar yüklensin mi, yoksa hiçbiri mi? Fiyat listesi gibi birbirinden bağımsız satırlarda "doğruları yükle, hatalıları geri ver" genellikle doğrudur. Bir siparişin kalemleri gibi birbirine bağlı satırlarda ise ya hepsi ya hiçbiri.
5. Türkçe biçimleri baştan hesaba katın
Türkiye'de kullanılan dosyalarda aynı sorunlar tekrar tekrar çıkar ve hepsi önceden bilinir:
- Ondalık ayırıcı. "1.250,50" ile "1,250.50" aynı sayıdır. Sistem hangisini beklediğini bilmeli, ikisini de tanıyabilmeli ve emin olamadığında sormalıdır.
- Tarihler. "03.04.2026" Türkiye'de 3 Nisan'dır; bazı sistemler bunu 4 Mart diye okur. Excel'in tarih hücrelerini sayı olarak saklaması da ayrı bir dönüşüm ister.
- Baştaki sıfırlar. Ürün kodu, vergi numarası ya da telefon numarası sayı gibi görünür ama metindir. Excel "00123"ü "123" yapar. Şablonda bu sütunları metin olarak biçimlendirin ve sistemde kodları sayı olarak değil, metin olarak karşılaştırın.
- Karakter kodlaması. CSV olarak kaydedilen bir dosyada "ş", "ğ" ve "İ" bozulabilir. Hem UTF-8'i hem de Excel'in Türkçe Windows'ta kullandığı kodlamayı tanıyın ya da yalnızca .xlsx kabul edin.
- Görünmeyen boşluklar. "ADET " ile "ADET" farklı görünmez ama eşleşmez. Hücrelerin başındaki ve sonundaki boşlukları okurken temizleyin.
6. Güncelleme kuralını yazılı hale getirin
Dosyadaki bir satır sistemde zaten varsa ne olacak? Bunu cevaplamak için önce bir kaydı neyin tanımladığına karar verin: ürün için ürün kodu, cari için vergi numarası, personel için sicil numarası. İsim bu iş için uygun değildir; aynı firma iki dosyada iki farklı yazımla gelebilir.
Sonra iki soruyu daha cevaplayın. Var olan kayıt güncellensin mi, atlansın mı, yoksa kullanıcıya mı sorulsun? Ve dosyada boş bırakılan bir hücre "bu değeri sil" mi demek, yoksa "buna dokunma" mı? İkinci sorunun cevabı yazılı değilse, yalnızca fiyat sütunu doldurulmuş bir dosya bütün ürün açıklamalarını boşaltabilir. Çoğu durumda doğru cevap "boş hücre dokunma demektir; silmek için ayrı bir işaret kullanılır" olur.
7. Her yüklemeyi geri alınabilir yapın
Önizleme ne kadar iyi olursa olsun, bir gün yanlış dosya yüklenecektir. Her yüklemeyi bir parti olarak kaydedin: kim, ne zaman, hangi dosyayla, kaç kaydı ekledi ve değiştirdi. Değiştirilen kayıtların önceki değerlerini de bu partiyle birlikte saklayın.
Böylece "dünkü yüklemeyi geri al" tek bir işlem olur. Geri almanın mümkün olduğunu bilen kullanıcı, toplu yükleme özelliğini kullanmaktan çekinmez. Aksi halde her yükleme öncesinde yedek almak için yazılım ekibine haber verilir ve özellik yine kullanılmaz hale gelir.
Bu bölüme bir sınır da koyun: geri alma, partiden sonra aynı kayıtlarda elle yapılan değişiklikleri ezmemelidir. Sistem bu durumu fark edip kullanıcıya hangi kayıtların atlanacağını göstermelidir.
Kısaca
- Şablonu sistemden indirilebilir yapın; sütun açıklamaları ve örnek satır içinde olsun.
- Sütunları adına göre okuyun, eşleştirme ekranı gösterin ve son eşleştirmeyi hatırlayın.
- Yazmadan önce eklenecek, güncellenecek ve atlanacak satırların özetini gösterin.
- Hataları satır ve sütunla bildirin; hatalı satırları dosya olarak geri verin.
- Ondalık virgülü, tarihleri, baştaki sıfırları, kodlamayı ve boşlukları baştan ele alın.
- Kaydı neyin tanımladığını ve boş hücrenin ne anlama geldiğini yazılı hale getirin.
- Her yüklemeyi kim, ne zaman ve hangi dosyayla bilgisiyle saklayın ve geri alınabilir yapın.
Özel yazılım ve ERP projelerinde toplu yükleme ekranını ayrı bir iş kalemi olarak ele alıyor, kullanıcıların her ay gerçekten yüklediği dosyalardan birkaçıyla test ediyoruz.
Bu konuda yaptığımız iş: Özel Yazılım Geliştirme
Böyle bir proje mi planlıyorsun?
10 adımda planla