Make’te bir dizi içindeki her öğe için ayrı işlem yapmak istediğinizde Iterator kullanabilirsiniz. Iterator diziyi ayrı bundle’lara böler; sonraki modül her bundle için çalışır. Kaynak modül zaten her kayıt için ayrı bundle üretiyorsa ikinci kez Iterator eklemek gereksiz veya yanlış bir veri yolu oluşturabilir.
İşlem sonunda tekrar tek liste gerekiyorsa ayrı bir toplama adımı gerekir; Iterator bunun tersini yapar. Her öğeye ayrı çağrı gönderileceği için hedef işlem sayısını ve hizmet sınırlarını da hesaba katın. Diziyi bölmek, aynı öğenin ikinci kez işlenmesini kendi başına engellemez.
Dizi mi, ayrı kayıt mı?
Varsayımsal bir JSON yanıtında products alanı üç ürün nesnesi içeriyor olsun. Bu tek bundle içinde bir dizidir. Her ürünü ayrı tablo satırına yazmak için products dizisini Iterator’a vermek uygundur. Buna karşılık kaynak zaten üç bundle dönüyorsa her bundle doğrudan hedefe eşlenebilir.Iterator’ı doğru yere ekleyin
- Kaynak çıktısını bir örnekle çalıştırın. İşlem dış etki üretmesin; gerekirse sonraki modülleri geçici olarak ayırın. Gerçek veri yapısını görmeden alan adı tahmin etmeyin.
- Diziyi belirleyin. Ürünlerin tamamını taşıyan products[] benzeri alanı bulun. İlk ürünün name alanını dizinin kendisi yerine seçmeyin.
- Iterator ekleyip Array alanını eşleyin. Kaynaktaki gerçek diziyi seçin. Testte üç öğenin üç ayrı bundle olarak çıktığını kontrol edin.
- Sonraki modülü Iterator çıktısına bağlayın. Ürün adı ve kimliği gibi alanları Iterator’dan eşleyin. Eski kaynağın ilk öğesini seçerseniz her satır aynı veriyle oluşabilir.
- Hedef sonucunu kontrol edin. Üç ayrı örnek kimliğin kendi satırına yazıldığını doğrulayın. Boş dizi geldiğinde gereksiz boş kayıt oluşturulmadığını da sınayın.
Alanlar eşleme panelinde görünmüyorsa
JSON yapısı henüz öğrenilmemişse panel yalnız bundle sayısı gibi genel alanlar gösterebilir. Kaynak veya Parse JSON modülünü temsilî bir örnekle çalıştırıp yapının tanınmasını sağlayın. Örneğin alan bulunmamasıyla bütün dizinin boş gelmesini birbirinden ayırın.İşlem sonunda tekrar tek liste gerekiyorsa ayrı bir toplama adımı gerekir; Iterator bunun tersini yapar. Her öğeye ayrı çağrı gönderileceği için hedef işlem sayısını ve hizmet sınırlarını da hesaba katın. Diziyi bölmek, aynı öğenin ikinci kez işlenmesini kendi başına engellemez.