Bu Modül Ne İşe Yarar
Veri İçe Aktarma, elinizde hazır bulunan bir Excel/JSON/XML/SQL dosyasını doğrudan form-builder'a taşıyan bir admin aracıdır. Formu sıfırdan tasarlamak yerine dosyayı yükler, sistem sütunları ve tiplerini kendisi çıkarır (inference); dosya yeni bir form içinse form-builder tasarımını da otomatik kurar, var olan bir formsa satırları ekler ya da günceller. İki ekranı vardır: Tekli İçe Aktar (tek dosya, tek form) ve Çoklu İçe Aktar (birden çok dosya, aralarındaki FK ilişkisi önerilir ve sırayla kurulur).
Ön Koşullar
- Bu modül ayrı bir paket özelliğidir (
data_import) — paketinizde açık değilse menüde görünmez data_import.viewizni gerekir; Admin rolünde varsayılan olarak açıktır- Bir form kodu daha önce açılmış ama HENÜZ YAYINLANMAMIŞSA sistem onu "form var, tablo boş" sayar — veri yalnız EKLENİR, upsert seçeneği sunulmaz; upsert için formun yayınlanmış VE en az bir kaydı olması gerekir
Günlük Kullanım Akışı — Tekli İçe Aktar
- Dosya Seç ile dosyanızı seçin, Form Kodu'nu girin (yeni bir kod ya da var olan bir formun kodu) ve Format'ı (JSON/XML/SQL/Excel) işaretleyin
- İncele'ye basın — sistem dosyayı ayrıştırıp sütun/tip listesini ve ilk 50 satırı önizleme olarak gösterir, henüz hiçbir şey yazmaz. Bu aşamada dört olası durumdan biri görünür:
- Yeni form — o kodla form yok, Yeni form + veri yarat stratejisiyle devam edersiniz
- Form var, tablo boş — Mevcut forma veri ekle (insert only) tek seçenektir
- Form var, tablo dolu — Akıllı upsert (key column ile) ya da Sadece ekle (mevcut kayıtlara dokunma) arasından seçersiniz
- Şema uyumsuz — dosyadaki sütunlarla formun sütunları eşleşmiyor; devam ETMEZ, önce formu düzenlemeniz ya da farklı bir form kodu seçmeniz gerekir
- Upsert seçtiyseniz hangi sütunun eşleştirme anahtarı (Anahtar Sütun) olacağını belirtin — bu alan zorunludur, dosyadaki bu sütunun değeri mevcut kayıtta varsa UPDATE, yoksa INSERT yapılır
- Yeni bir form yaratıyorsanız isteğe bağlı olarak sidebar'a bir menü öğesi eklenmesini işaretleyip etiket/ikon/üst menü belirleyebilirsiniz — form zaten bir menüye bağlıysa sistem "zaten ekli" der, ikinci bir öğe açmaz
- Uygula'ya basınca işlem TEK bir transaction içinde yürür — bir satır başarısız olursa hata listesi gösterilir, başarılı olanlar için form kaydına geçilebilir
Günlük Kullanım Akışı — Çoklu İçe Aktar
Aynı akışın birden çok dosya için genişletilmiş hâlidir. Her dosya kendi form koduyla ayrı ayrı önizlenir; ayrıca sistem dosya adı/sütun adı kalıplarından (ör. kategoriId ya da kategori_id) dosyalar ARASI yabancı anahtar ilişkisini ÖNERİR. Admin bu önerileri onaylar ya da reddeder; onaylanan ilişkiler hedef formdan ÖNCE değil SONRA (topolojik sırayla) kurulur ve kaynak formdaki ilgili alan otomatik olarak açılır bir lookup alanına (form_lookup) çevrilir.
Sık Yapılan Hatalar
- .xls (eski Excel biçimi) yüklemek — desteklenmiyor, dosyayı Excel'de ".xlsx" olarak yeniden kaydedip tekrar yüklemeniz gerekir
- Excel dosyasında ilk satırda başlık bulunmaması ya da hiç veri satırı olmaması — ikisi de reddedilir, "ilk satırında başlık bulamadım" / "import edilecek satır bulamadım" hatası alırsınız
- Düz dizi (array) içeren bir JSON/XML dosyasında form kodunu boş bırakmak — çoklu içe aktarmada bu durum açık bir hatayla reddedilir, form kodu zorunludur
- Şema uyumsuz bir dosyayı var olan bir forma yüklemeye çalışmak — "Şema uyumsuz" durumunda hiçbir strateji seçilemez; sistem eksik/fazla sütunları ve tip uyuşmazlıklarını listeler ama otomatik şema göçü YAPMAZ, önce formu elle düzenlemeniz gerekir
- Upsert seçip Anahtar Sütun'u boş bırakmak — "Upsert için 'key column' zorunlu" hatasıyla reddedilir
- Önizlemeden 15 dakikadan uzun süre sonra Uygula'ya basmak — önizleme jetonu (token) süresi dolar, "süresi doldu veya geçersiz, lütfen yeniden yükleyin" hatası alırsınız, dosyayı yeniden yüklemeniz gerekir
- SQL script'inde CREATE TABLE bulunmaması ya da kolon tanımı olmaması — ikisi de reddedilir
İlgili Modüller
Form Tasarımcısı, İçe Aktarma'nın ürettiği ya da güncellediği formların asıl sahibidir — yeni form yaratıldığında oradaki canvas'a otomatik basit bir tek/iki sütunlu düzen kurulur, sonradan elden düzenlenebilir. Şema uyumsuzluğu çözmek için de o ekrana gidilir. Çoklu içe aktarmada kurulan FK bağları, Form Tasarımcısı'nda normal bir form_lookup alanı olarak görünür.