Ana içeriğe atla
Import, bir ImportDefinition’ın bireysel yürütmesini temsil eder. Her Import kaydı, toplu veri içe aktarma işleminin durumunu, ilerlemesini ve meta verilerini takip eder.

Temel Amaç

  • Yürütme Takibi: Her işlemci çalıştırmasını kaydeder
  • Durum Yönetimi: Beklemeden tamamlandı/başarısız durumuna ilerlemeyi takip eder
  • Denetim İzi: İçe aktarmaları kullanıcılara ve kuruluşlara bağlar
  • Hata İşleme: İçe aktarmalar başarısız olduğunda hata mesajlarını saklar

Varlık Yapısı

Import {
  id: "imp-...",
  importDefinitionId: "impdef-...",  // Kullanılan tanım
  userId: "user-...",                 // İçe aktarmayı kim yürüttü
  organizationId: "org-...",          // Kuruluş bağlamı
  rowCount: 150,                      // Kaynak dosyadaki toplam satır
  status: "completed",                // pending, processing, completed, failed
  error: null,                        // Başarısız olduysa hata mesajı
  processedAt: "2024-01-15T10:30:00Z" // İşlemenin tamamlandığı zaman
}

İçe Aktarma Yaşam Döngüsü

1. Oluşturma: Kullanıcı içe aktarmayı başlattığında Import kaydı oluşturulur 2. İşleme: Yürütme sırasında durum “processing” olur 3. Tamamlanma: Durum processedAt zaman damgasıyla “completed” olur 4. Başarısızlık: Durum “failed” olur ve hata mesajı kaydedilir

Durum Değerleri

DurumAçıklama
pendingİçe aktarma oluşturuldu ama henüz başlamadı
processingŞu anda satırlar işleniyor
completedBaşarıyla tamamlandı
failedBir hatayla karşılaşıldı

İlişkiler

ImportDefinition: Her Import, dönüşüm kuralları için bir ImportDefinition kullanır User: Hangi kullanıcının içe aktarmayı başlattığını takip eder Organization: İçe aktarmayı bir kuruluşla sınırlandırır ImportResult: Bir Import’un birçok ImportResult kaydı olabilir (site/dönem başına bir)

Satır Sayısı

rowCount alanı, işlemeden önce kaynak dosyadaki toplam satır sayısını saklar. Bu şunları takip etmeye yardımcı olur:
  • Ne kadar veri sağlandı
  • İşleme sırasında ilerleme
  • Üretilen gerçek sonuçlarla karşılaştırma

Hata İşleme

Bir içe aktarma başarısız olduğunda, error alanı ayrıntıları içerir:
{
  "status": "failed",
  "error": "Geçersiz sütun eşlemesi: 'tuketim' kaynak dosyada bulunamadı"
}
Yaygın hata senaryoları:
  • Eksik gerekli sütunlar
  • Geçersiz veri türleri
  • İşlemci kodu hataları
  • Veritabanı kısıtlama ihlalleri

Erişim Kontrolü

  • İçe aktarmalar RLS politikaları aracılığıyla kuruluşlara sınırlandırılır
  • Kullanıcılar yalnızca mevcut kuruluşlarındaki içe aktarmaları görebilir
  • Yürüten kullanıcı kaydedilir ancak erişimi kısıtlamaz

İçe Aktarmaları Sorgulama

Bir kuruluş için son içe aktarmalar:
SELECT * FROM "Import"
WHERE "organizationId" = 'org-123'
ORDER BY "createdAt" DESC
LIMIT 10;
Başarısız içe aktarmalar:
SELECT * FROM "Import"
WHERE status = 'failed'
  AND "organizationId" = 'org-123';

İlgili Varlıklar