Veri İçe Aktarma — Dosyadan Forma

Excel/JSON/XML/SQL dosyasından yeni bir form yaratır ya da var olan bir formun tablosuna ekler/günceller; çoklu dosyada aralarındaki yabancı anahtar ilişkisini de önerir.

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.view izni 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

  1. 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
  2. İ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
  3. 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
  4. 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
  5. 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.