Power Automate'te "Apply to each": donguyu anlamak, kontrol etmek ve onlemek
"Auf alle anwenden" listeleri oge oge isler ve genellikle istenmeden ortaya cikar. Dongu nasil calisir, neden yavaslatir ve ne zaman kaldirilabilir.
Power Automate'te Apply to each sınırları ve sayfalama: 100.000 yineleme sınırı nasıl çalışır ve nasıl aşılır.
Power Automate'te bir akış, bir SharePoint listesi, bir Dataverse tablosu veya bir Excel aralığı belirli bir boyutu aştığında aniden şifreli bir hatayla durursa, bunun arkasında neredeyse her zaman yerleşik döngü ve sayfalama sınırlarından biri vardır. Bunların en bilineni, Apply to each döngüleri ve sayfalanan öğeler için geçerli olan 100.000 sınırıdır. Günlük kullanımda uzun süre görünmez kalır, çünkü çoğu liste bundan çok daha küçüktür, ardından tam olarak en önemli süreçlerde etkisini gösterir: toplu içe aktarmalar, yıl sonu kapanışları veya büyük veri kümelerinin taşınması.
Bu yazı, Power Automate'te döngüler ve sayfalama için somut olarak hangi sınırların geçerli olduğunu, bir eylem için sayfalamayı nasıl etkinleştireceğini ve çok büyük veri miktarlarını 100.000 yineleme sınırına takılmadan güvenilir şekilde işlemek için hangi yöntemleri kullanabileceğini açıklıyor. Tüm bilgiler resmi Microsoft belgelerinden alınmıştır.
Microsoft, ilgili değerleri şu genel bakışta belgeliyor: Otomatik, zamanlanmış ve anlık akışlar için sınırlar. Tek bir akış çalıştırması için en önemli rakamlar:
Akışın için hangi performans profilinin geçerli olduğu, sahibinin lisansına bağlıdır. Düşük, diğerlerinin yanı sıra ücretsiz planları, Microsoft 365 planlarını, Power Apps Plan 1'i ve deneme lisanslarını etkiler; premium, işlem ve akış başına lisanslar ise Orta veya Yüksek profillere girer ve böylece tam 100.000 sınırını kullanabilir.
Bir Apply to each döngüsü maksimum yineleme sayısına ulaştığında, akış WorkflowRunActionRepetitionQuotaExceeded hatasıyla durur. Bulut akışı hata kodu başvurusuna göre en yaygın nedenler şunlardır:
Çözüm olarak Microsoft, verileri döngü içinde filtrelemek yerine daha kaynak eylemde $filter ve $top gibi OData filtreleriyle sınırlamayı, büyük veri kümelerini sayfalama belirteçleri veya tarih aralıkları kullanarak birden çok akış çalıştırmasına dağıtmayı ve yalnızca dönüştürme veya filtreleme için tam bir Apply to each döngüsü yerine Select veya Filter array eylemlerini kullanmayı öneriyor.
Dataverse'teki List rows gibi birçok veri eylemi için sayfalama doğrudan eylem ayarlarında yapılandırılabilir. Akışlarda satır listeleme belgeleri yeni tasarımcıdaki yolu şöyle açıklıyor:
1. İlgili eylem kartını seç, örneğin List rows.
2. Sol bölmede Ayarlar sekmesini, ardından Ağ'ı aç.
3. Sayfalama kaydırıcısını Açık konumuna getir.
4. Eşik değeri altına istenen maksimum satır sayısını gir. Yapılandırılabilecek en yüksek eşik değeri 100.000'dir.
Power Automate bu değeri dahili olarak varsayılan sayfa boyutunun tam katlarına yuvarlar. Örneğin 7.000 girersen ve sayfa boyutu 5.000 ise, aslında 10.000 satır döndürülür. Sayfalama etkinleştirilmemişse otomatik olarak varsayılan 5.000 satır sınırı geçerli olur ve eşik değeri aşıldığında yanıt artık bir @odata.nextLink parametresi içermez.
SharePoint eylemi Get items'te varsayılan sınır yalnızca 100 öğedir, ancak gelişmiş seçenekler ve Top Count parametresi aracılığıyla, liste SharePoint'in kendi görünüm eşiğine çarpmadan önce 5.000'e kadar artırılabilir. Bir filtre sorgusunu 5.000'den fazla girişi olan bir listeyle birleştirirsen, eşleşen kayıtlar var olsa bile hiç sonuç dönmemesi mümkündür. Burada da eylem ayarlarında yeterince yüksek bir eşik değeriyle sayfalamayı etkinleştirmek çözüm sağlar, çünkü Power Automate verileri o zaman yalnızca ilk 5.000 filtrelenmemiş satırı kontrol etmek yerine Top Count'a göre gruplar halinde alır.
Salt yineleme sayısının yanında, genellikle gözden kaçan ikinci bir fren daha vardır: eylem patlaması sınırı. Platform sınırlarını anlama kılavuzuna göre, mevcut üst sınır beş dakikalık kayan bir pencere içinde akış başına 100.000 eylemdir. Bir Apply to each döngüsü içindeki her eylem ayrı ayrı sayılır, bu nedenle geçiş başına birden çok eylem içeren bir döngü, salt yineleme sayısının düşündürdüğünden çok daha hızlı bu sınıra ulaşır. Microsoft, böyle bir durumda yükü örneğin alt akışlar (Child Flows) veya gereksiz çalıştırmaları baştan engelleyen tetikleyici koşulları aracılığıyla birden çok akışa dağıtmayı öneriyor.
100.000 sınırına öngörülebilir şekilde yaklaşan süreçler için pratikte açık bir yaklaşım kendini kanıtlamıştır:
$filter, $top veya bir SharePoint filtre sorgusuyla sınırla.Bu yaklaşımla, zaten en çok dikkati hak eden süreçte tam olarak ani bir kesinti tarafından hazırlıksız yakalanmak yerine, veri akışının kontrolünü elinde tutarsın.
Power Automate'teki tek bir dijital çalışan, genellikle ancak bir şirket gerçekten büyüdüğünde 100.000 sınırına ulaşır; örneğin büyük bir eski veritabanının taşınmasında, tüm müşteri kayıtları üzerinden yıllık raporlamada veya on binlerce kalemi olan bir ERP sistemine bağlanırken. Bu tür durumlar için, filtrelenmiş kaynak sorgularından, mantıklı boyutlandırılmış sayfalamadan ve gerektiğinde birbiri ardına birden çok akış çalıştırmasından oluşan temiz bir mimari, baştan itibaren tek tek hataları sonradan yamamaktan çok daha değerlidir. Power Automate süreçlerini büyük veri miktarları için baştan sağlam kurmak isteyenler, NordFlux'un Power Automate danışmanlığında destek bulur.
Power Automate, tek bir Apply to each döngüsünde veya sayfalanan bir eylemde akış çalıştırması başına en fazla 100.000 öğe işler. Daha büyük veri miktarları için Microsoft, örneğin bir atlama belirteci, bir tarih filtresi veya işlemi birden çok parçaya bölen zamanlanmış bir tetikleyici kullanarak veriler üzerinde birden çok akış çalıştırması tetiklemeyi öneriyor.
Hayır. 100.000 sınırı, diğerlerinin yanı sıra premium ve işlem lisanslarının dahil olduğu Orta ve Yüksek performans profilleri için geçerlidir. Ücretsiz planlar, Microsoft 365 planları ve deneme lisansları için geçerli olan Düşük performans profilinde aynı sınır zaten 5.000 öğedir.
Apply to each sınırı, tek bir akış çalıştırması içinde bir diziyi dolaşan bir döngüyle ilgilidir. Split On sınırı ise bir dizi sağlayan ve bunu bir foreach döngüsü kullanmak yerine bir SplitOn özelliği aracılığıyla doğrudan birden çok ayrı iş akışı örneğine bölen tetikleyicilerle ilgilidir. Böyle bir tetikleyicide ayrıca tetikleyici eşzamanlılığı etkinleştirilmişse, Split On sınırı 100 öğeye düşer.
Bir Apply to each döngüsü maksimum yineleme sayısını aştığında akış WorkflowRunActionRepetitionQuotaExceeded hatasıyla durur. Akışın çalıştırma geçmişinde bu hata doğrudan etkilenen döngü eylemine kadar izlenebilir ve akış ayrıntıları sayfasındaki Analiz üzerinden ayrıca bir çalıştırmanın toplamda kaç eylem tükettiğini görürsün.
Hayır. Microsoft belgelerine göre, ayarlar alanına hangi değeri girersen gir, sayfalama için yapılandırılabilecek maksimum eşik değeri 100.000'dir. Dahili olarak tam sayfa boyutlarına yuvarlandığından, fiilen döndürülen sayı girdiğin değerden biraz daha yüksek olabilir, ancak asla 100.000 üst sınırının üzerine çıkmaz.
Kaynaklar: Microsoft Learn – Otomatik, zamanlanmış ve anlık akışlar için sınırlar, Microsoft Learn – Platform sınırlarını anlama ve kısıtlamayı önleme, Microsoft Learn – Akışlarda satır listelerini kullanma
NordFlux'un kurucusu. Webden ve SEO'dan grup ölçeğindeki otomasyona kadar yedi yıllık deneyim, bugün KOBİ'ler için pragmatik biçimde ve Alman veri egemenliğiyle.
Sertifikalar
"Auf alle anwenden" listeleri oge oge isler ve genellikle istenmeden ortaya cikar. Dongu nasil calisir, neden yavaslatir ve ne zaman kaldirilabilir.
Filter Array ve Select, dizileri filtrelerken ve yeniden şekillendirirken Apply to Each'in yerini alır ve belirgin şekilde daha hızlı çalışır.
Excel tablosu, Her Birine Uygula, Outlook: Power Automate listendeki her satıra nasıl kişisel bir e-posta gönderir.
Eylem patlaması sınırı ve 100.000 yineleme sınırı, büyüyen veri hacimlerine sahip süreçleri özellikle sert ve çoğu zaman beklenmedik şekilde etkiler. NordFlux, toplu süreçlerinizi sayfalama ve düzgün hata yönetimiyle, hacim arttıkça da kararlı kalacak şekilde kurar.