Power Automate'te Apply to Each Yerine Filter Array ve Select

Filter Array ve Select, dizileri filtrelerken ve yeniden şekillendirirken Apply to Each'in yerini alır ve belirgin şekilde daha hızlı çalışır.

Bir bulut akışının bir diziyi baştan sona dolaşması gerektiğinde birçok kişi otomatik olarak Apply to Each eylemine yönelir. Basit durumlar için bu tamamen uygundur, ancak yalnızca bir diziyi filtrelemek veya nesnelerinin şeklini değiştirmek söz konusu olduğunda, Veri İşlemleri kategorisindeki iki alternatife bakmakta fayda vardır: Filter Array ve Select. İkisi de akışın her öğeyi tek tek dolaşmasına gerek kalmadan tam olarak bu görevi tek bir adımda gerçekleştirir.

Bu yazıda, bu iki eylemin nasıl çalıştığı, Apply to Each'in yerini ne zaman anlamlı şekilde aldıkları ve bir döngünün yine de doğru seçim olarak kaldığı durumlar gösteriliyor. Apply to Each'in kendi sınırları hakkında, örneğin çok büyük diziler ve Power Automate'in eylem sınırları konusunda daha fazlasını Power Automate eylem sınırları yazısında bulabilirsin.

Apply to Each Neden Filtreleme ve Yeniden Şekillendirmede Genellikle Gereksiz Bir Yoldur

Apply to Each, içerdiği eylemleri bir dizinin her bir öğesi için ayrı ayrı çalıştırır. 200 sipariş ve döngü gövdesinde iki eylem olduğunda, bu 400 ayrı yürütme anlamına gelir; bunların tümü akışının eylem sınırına dahil edilir ve akış geçmişinde tek tek kaydedilir. Amaç yalnızca belirli öğeleri filtrelemek veya alanları yeniden adlandırmaksa, bu yük gerçek bir nedeni olmadan ortaya çıkar, çünkü Veri İşlemleri tam olarak bunun için vardır. Microsoft bunu kendi kılavuzunda şöyle açıklıyor: belirli kriterlere uyan öğeleri bir tabloda bulmak için bir döngü içindeki koşul yerine bir filtreleme veya seçme işlemi kullanmayı düşün; bu yaklaşım bulut akışını basitleştirebilir ve performansı artırabilir, tıpkı Power Automate'te Veri İşlemleri başlıklı resmi genel bakışta belirtildiği gibi. Filter Array ve Select, dizide beş ya da beş bin kayıt olması fark etmeksizin her biri tek bir eylem olarak çalışır.

Filter Array Eylemi: Döngüye Gerek Kalmadan Bir Alt Küme Oluşturmak

Filter Array eylemi, Veri İşlemleri hakkındaki resmi belgelere göre bir diziyi kriterlerine uyan nesnelerle sınırlar. Filtre Sorgusu bölümünde hangi alanın hangi değerle karşılaştırılacağını belirtirsin, örneğin Durum eşittir Açık, ve sonuç olarak tam olarak eşleşen kayıtları içeren yeni bir dizi elde edersin. Bu konuda bilmen gereken iki şey var:

  • Eylem nesne sayısını azaltabilir, ancak tek tek nesnelerin şeklini değiştiremez. Yeniden şekillendirme için ayrıca Select'e ihtiyacın vardır.
  • Karşılaştırma metni büyük/küçük harfe duyarlıdır, bu nedenle açık üzerine yapılan bir filtre, değeri Açık olan bir nesneyi bulamaz.

Basit karşılaştırmalar için temel görünüm yeterlidir; Ve/Veya mantığına sahip birleşik koşullar için gelişmiş moda geçip ifadeyi doğrudan yazarsın.

Select Eylemi: Döngü Olmadan Veri Yapısını Yeniden Kurmak

Filter Array nesne sayısını değiştirirken, Select bunların şeklini değiştirir. Bu eylemle, dizideki nesne sayısı değişmeden alanları yeniden adlandırabilir, mevcut alanlardan yeni alanlar oluşturabilir veya ihtiyaç duyulmayan alanları çıkarabilirsin. Microsoft belgelerinden bir örnek: first ve last alanlarına sahip nesnelerden, Select ile FirstName, FamilyName ve her iki değeri birleştiren ek bir FullName alanı içeren bir dizi oluşturulur. Sonuç yine, doğrudan sonraki eylemlere aktarabileceğin bir dizidir, örneğin bir Create CSV table eylemine veya bir SharePoint eylemine. Microsoft'a göre bu, yalnızca akışının karmaşıklığını değil, veriler daha sonra başka bir sisteme aktarıldığında yük boyutunu da azaltır.

Uygulamalı Örnek: Filter Array ve Select'i Birleştirmek

Uygulamada bu iki eylem neredeyse her zaman art arda gelir. Tek bir Apply to Each eylemi kullanmadan uygulayabileceğin tipik bir akış:

1. Get Items gibi bir eylem veya bir HTTP çağrısı, tüm siparişleri içeren bir dizi döndürür.

2. Filter Array, diziyi durumu Açık olan siparişlerle sınırlar.

3. Select, kalan nesneleri yeniden şekillendirir: yalnızca sipariş numarası, müşteri adı ve tutar korunur, hedef sistem için anlamlı alan adlarıyla.

4. Sonuç doğrudan, aynı anda birden fazla kaydı işleyen bir eyleme, örneğin Create CSV table'a veya hedef bağlayıcının bir toplu işlem eylemine gider.

Potansiyel olarak yüzlerce çalıştırma içeren bir döngü yerine dört eylem, buna ek olarak tek bakışta anlaşılır kalan bir akış. Her eylem yalnızca net şekilde tanımlanmış bir görevi üstlendiği için her işleme adımı üzerinde kontrolü elinde tutarsın.

Apply to Each'in Yine de Doğru Seçim Olarak Kaldığı Durumlar

Her öğe için ayrı bir yan etki gerekiyorsa, örneğin her sipariş için ayrı ayrı bir e-posta gönderilmesi, toplu uç noktası olmayan bir sistemde bir kayıt oluşturulması ya da bir alt akışın çağrılması gerekiyorsa, Filter Array ve Select bir döngünün yerini almaz. Bir öğenin işlenmesi bir öncekinin sonucuna bağlı olduğunda da bir döngü genellikle daha basit çözüm olarak kalır. Doğrudan Dataverse ile çalışıyorsan, üçüncü bir seçenek daha vardır: Microsoft'a göre, Filter Array ve Select'i akışta kullanmak yerine, verileri ilgili eylemin Sütunları Seç ve Satırları Filtrele seçenekleriyle doğrudan kaynakta filtrelemek ve seçmek daha iyidir; bu, aktarılan veri miktarını baştan azaltır. Kurulumun için sınırın tam olarak nerede olduğu en iyi şekilde somut akışa bakılarak değerlendirilir, örneğin bir Power Automate danışmanlığı kapsamında.

Sık Sorulan Sorular

Filter Array ve Select'i istediğim sırayla kullanabilir miyim?

Genellikle önce Filter Array ile filtreleme yapılır, ardından sonuç Select ile yeniden şekillendirilir, çünkü bu durumda Select'in işlemesi gereken nesne sayısı daha azdır. Teknik olarak sıra ters de çevrilebilir, ancak önce filtrelenmiş sürüm genellikle daha anlaşılır ve biraz daha tutumludur.

Filter Array ve Select de Power Automate'in eylem sınırına dahil mi?

Evet, bu iki eylemden her biri, diğer her eylem gibi akışının sınırına bir kez dahil edilir. Apply to Each'ten farkı, dizi boyutundan bağımsız olarak her zaman tek bir eylem olarak çalışmalarıdır; oysa bir döngü her öğe için kendi eylem yürütmelerini oluşturur.

Filter Array bir dizideki nesnelerin şeklini de değiştirebilir mi?

Hayır. Filter Array yalnızca sonuç dizisinde kaç nesne bulunduğunu değiştirir, yapılarını değil. Alanların yeniden adlandırılması, eklenmesi veya kaldırılması gerekiyorsa, bundan Select eylemi sorumludur.

Filter Array eşleşen bir öğe bulamazsa ne olur?

Bu durumda eylem boş bir dizi döndürür ve akış hatasız devam eder. Herhangi bir sonuç olup olmadığını kontrol etmek istersen, sonucu sonraki bir koşulda length() işleviyle birleştirirsin.

Küçük diziler için de Apply to Each'ten Filter Array ve Select'e geçmek değer mi?

Çok küçük, kararlı ve az sayıda kayıt içeren diziler için performans kazancı düşüktür. Bu durumda avantaj, çalışma süresinden çok akışın anlaşılırlığında ve bakım kolaylığındadır; ancak dizi üretimde başlangıçta planlanandan daha büyük hale geldiğinde bu avantaj kendini gösterir.

NordFlux hakkında

NordFlux UG (haftungsbeschränkt)

NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.

Hakkımızda daha fazlası
Ücretsiz ön analiz

Otomasyon veya KI hakkında somut sorularınız mı var?

Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.

Apply to Each Yerine Filter Array ve Select