Power Automate'te Apply to each sınırları ve sayfalama: 100.000 eşiği

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.

Döngüler ve sayfalama için hangi sınırlar geçerlidir?

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:

  • Apply to each: Düşük performans profilinde 5.000 öğe, diğer tüm profillerde 100.000 öğe. Bu, bir Apply to each döngüsünün işleyebileceği maksimum dizi öğesi sayısıdır.
  • Sayfalanan öğeler: Düşük için de 5.000, diğer tüm profiller için 100.000. Daha fazla öğe işlemek için verilerin üzerinde birden çok akış çalıştırması tetiklemen gerekir.
  • Split On: Tetikleyici eşzamanlılığı olmadan Düşük için 5.000, diğer tümü için tetikleyici eşzamanlılığı olmadan 100.000, ancak tetikleyici eşzamanlılığı etkinleştirildiğinde sadece 100.
  • Until yinelemeleri: Varsayılan olarak 60, en fazla 5.000.
  • Apply to each (eşzamanlılık): Aynı anda çalışan yinelemeler için varsayılan değer 1'dir, ancak 1 ile 50 arasında bir değere yükseltilebilir.

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.

WorkflowRunActionRepetitionQuotaExceeded hatası

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:

  • önceden filtrelenmek yerine tüm kayıtları döndüren bir Get items veya List rows eylemi
  • yineleme sayıları birbiriyle çarpılan iç içe geçmiş Apply to each döngüleri, örneğin 100 çarpı 100 eşittir 10.000 geçiş
  • filtre olmadan tamamen bir döngüye yüklenen çok büyük bir SharePoint listesi veya Dataverse tablosu

Çö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.

Bir eylem için sayfalamayı etkinleştirme

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ç.

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.

Özel durum SharePoint: Get items ve 5.000 eşiği

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.

5 dakikada 100.000 eylem patlaması sını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.

Büyük veri miktarlarını düzgün işleme: pratik öneriler

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:

  • Geç değil erken filtrele: Kayıtları, tüm listeyi döngüye yükleyip yalnızca orada kontrol etmek yerine, daha kaynak eylemde `$filter`, `$top` veya bir SharePoint filtre sorgusuyla sınırla.
  • İç içe geçmeyi önle: Birbirinin içine yerleştirilmiş birden çok Apply to each döngün varsa, dış ve iç yineleme sayılarının çarpılıp çarpılmadığını kontrol et ve mümkün olan yerlerde önceden Select veya Filter array ile ilerle.
  • Birden çok çalıştırmaya dağıt: Çok büyük bir veri miktarını tek bir çalıştırmada işlemek yerine, atlama belirteçleri, tarih aralıkları veya zamanlanmış bir tetikleyici kullanarak planlı bir şekilde birden çok akış çalıştırmasına dağıt.
  • Eşzamanlılığı bilinçli kullan: Bir Apply to each döngüsünün eşzamanlılığını 1'in üzerinde bir değere yükseltirsen, birden çok yineleme aynı anda çalışır; bu çalışma süresinden tasarruf sağlar ancak bağlı sistemlerin yükünü artırır ve bu nedenle her konektör için mantıklı değildir.
  • Sınırları göz önünde tut: Bir hataya yalnızca tepki vermek yerine, akış ayrıntıları sayfasındaki Analiz üzerinden gerçek eylem sayısını düzenli olarak kontrol et.

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.

Bu tür toplu süreçleri optimize etmek kimin için değerlidir?

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.

Sık sorulan sorular

Bir akışın 100.000'den fazla öğe işlemesi gerekirse ne olur?

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.

100.000 sınırı her lisans için aynı şekilde mi geçerlidir?

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ı Split On sınırından nasıl farklıdır?

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 akışın 100.000 sınırına ulaştığını nasıl anlarım?

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.

Sayfalama eşiğini 100.000'in üzerine ayarlayabilir miyim?

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