PoolByte

CSV içe aktarma: Önizleme, sütun eşleştirme ve hata raporu

· PoolByte Technology

CSV içe aktarma: Önizleme, sütun eşleştirme ve hata raporu

CSV içe aktarma, binlerce ürünü veya müşteri dışındaki operasyon kayıtlarını hızlıca sisteme taşımayı sağlar. Buna karşılık tek bir yanlış sütun eşleşmesi, çok sayıda kaydı aynı anda bozabilir. İyi bir içe aktarma aracı, dosyayı okumadan önce verinin nasıl yorumlanacağını gösterir ve geri izlenebilir bir işlem oluşturur.

Ayırıcı ve karakter kodlamasını görünür yapın

CSV dosyalarının her zaman virgülle ayrıldığını varsaymayın. Bölgesel araçlar farklı ayırıcılar üretebilir. Tırnak içindeki ayırıcılar veya satır sonları da basitçe metni bölerek güvenle işlenemez. RFC 4180, yaygın CSV biçiminin temel kurallarını tanımlar; gerçek dosya çeşitleri için yine önizleme gerekir.

Türkçe karakterlerin bozulup bozulmadığını ilk birkaç kayıtta gösterin. Baştaki sıfırları olan ürün kodları, telefon benzeri değerler ve uzun kimlikler metin olarak korunmalıdır. Kullanıcıya “00124” değerinin “124”e dönüşeceğini sonradan bildirmek yerine içe aktarma öncesinde bu farkı görünür kılın. Tarih ve ondalık sayı biçimini de açıkça seçtirin.

Sütun eşleştirmesi bir onay adımıdır

Dosyadaki “fiyat” sütununun sistemde satış fiyatına mı maliyete mi karşılık geldiği anlaşılmalıdır. Zorunlu sütunlar bulunmadığında işlem başlamamalıdır. Güncelleme yapılacaksa kayıt eşleştirme anahtarını belirleyin: ürün kodu, dış sistem kimliği veya başka bir sabit alan olabilir. Yalnız isim benzerliğine göre güncellemek güvenilir değildir.

Önizleme ekranında eklenecek, değişecek ve reddedilecek kayıt sayılarını ayrı gösterin. Bir deneme çalıştırması gerçek veriye yazmadan bu sonucu üretebilir. Son dosya değişirse önceki önizlemenin onayı geçerli sayılmamalıdır. İçe aktarma kimliği ve dosya özeti, hangi verinin onaylandığını izlemeye yardımcı olur.

Formül benzeri hücreleri değerlendirin

CSV daha sonra elektronik tablo yazılımında açılacaksa bazı hücreler formül olarak yorumlanabilir. Bu risk yalnız içe aktarmada değil dışa aktarmada da ele alınmalıdır. OWASP CSV Injection açıklaması, bu sorunun bağlamını açıklar. Hücreyi tırnaklamak her tüketicide güvenli metin hâline getirme garantisi değildir.

Ürün açıklaması gibi serbest metin ile hesaplamaya girecek sayı alanına farklı kurallar uygulayın. Hatalı veriyi sessizce sıfıra veya bugünün tarihine çevirmeyin. Rapor, satır numarası ve neden bilgisiyle kullanıcının dosyayı düzeltebilmesini sağlamalıdır; bütün dosyanın içeriğini hata günlüğüne dökmek gerekmez.

Yarım kalan işlem nasıl devam eder?

İşlemi küçük gruplar hâlinde çalıştırıyorsanız aynı grubun tekrarının çift ürün oluşturmasını önleyin. Başarılı ve başarısız satırları ayrı takip edin. Her içe aktarmanın tümüyle geri alınabileceğini varsaymayın; hangi alanların önceki değerlerinin saklanacağını önceden belirleyin. Sonradan yapılan gerçek kullanıcı düzenlemelerini geri dönüş sırasında ezmemek gerekir.

Önce küçük, temsili ve bilinçli hatalar içeren bir dosyayla deneyin. Farklı para biçimleri, boş zorunlu alanlar ve yinelenen kimlikler bu dosyada bulunmalıdır. E-ticaret projesi tesliminde CSV aracı, yalnız “dosya kabul ediyor” diye tamamlanmamalı; hangi kayıtların neden değiştiği anlaşılabilir olmalıdır.