Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)
Mantıksal uygulama iş akışındaki eylemleri yinelemek için, senaryonuzun gereksinimlerine bağlı olarak her döngü için veya Until döngüsünü iş akışınıza ekleyebilirsiniz.
Not
Döngüler hakkında Power Automate belgelerini mi arıyorsunuz? Bkz . Döngüleri kullanma.
Kullanım örneğinize bağlı olarak, aşağıdaki döngü eylemi türleri arasından seçim yapabilirsiniz:
Dizi veya koleksiyondaki öğelerde bir veya daha fazla işlemi yinelemek için iş akışınıza Her İşlem için eylemini ekleyin.
Alternatif olarak, dizileri işleyebilen bir tetikleyiciniz varsa ve her dizi öğesi için bir iş akışı örneği çalıştırmak istiyorsanız, dizi elemanlarını ayırmak için
Tetikleyicide böl tetikleyici özelliğini ayarlayabilirsiniz.Bir koşul karşılanana veya belirli bir durum değişene kadar bir veya daha fazla eylemi yinelemek için, İş akışınıza Until eylemini ekleyin.
İş akışınız önce döngünün içindeki tüm eylemleri çalıştırır ve ardından koşulu veya durumu denetler. Koşul karşılanırsa döngü durur. Aksi takdirde döngü yineler. Bir iş akışının sahip olabileceği Until döngülerinin sayısıyla ilgili varsayılan ve en yüksek sınırlar için bkz. Eşzamanlılık, döngü oluşturma ve sınırlamaları kaldırma.
Önkoşullar
Bir Azure hesabı ve aboneliği Aboneliğiniz yoksa, ücretsiz bir Azure hesabı için kaydolun.
İş akışı oluşturabileceğiniz ve düzenleyebileceğiniz mantıksal uygulama kaynağı. Bkz. Azure Logic Apps nedir?
Döngüde bir eylemi ve iş akışını başlatan bir tetikleyiciyi yinelemek istediğiniz mantıksal uygulama kaynağı ve iş akışı.
Döngü eylemi ekleyebilmeniz için önce iş akışınızın ilk adım olarak tetikleyiciyle başlaması gerekir. Daha fazla bilgi için bkz. İş akışı oluşturmak için tetikleyici veya eylem ekleme.
Aşağıdaki adımlarda Azure portalı kullanılır, ancak uygun Azure Logic Apps uzantısıyla mantıksal uygulama iş akışları oluşturmak için aşağıdaki araçları da kullanabilirsiniz:
- Tüketim iş akışları: Visual Studio Code
- Standart iş akışları: Visual Studio Code
Bazı adımlar, Tüketim veya Standart iş akışına bağlı olarak biraz farklılık gösterir.
Her biri için
Her biri için eylemi yalnızca diziler üzerinde çalışır. Bu döngü, bir dizideki her öğede bir veya daha fazla eylemi yineler. Her eylem için aşağıdaki noktaları gözden geçirin:
Her eylem için, sınırlı sayıda dizi öğesini işleyebilir. Bu sınır için bkz . Eşzamanlılık, döngü oluşturma ve sınırlamaları kaldırma.
Varsayılan olarak, her eylem için içindeki döngüler veya yinelemeler paralel olarak aynı anda çalıştırılır.
Bu davranış, yinelemelerin teker teker veya sırayla çalıştırıldığı her döngüye Power Automate'in Uygula seçeneğinden farklıdır. Kullanım senaryonuz sıralı işlem gerektiriyorsa, For each yinelemelerini aynı anda yalnızca bir tane çalışacak şekilde ayarlayabilirsiniz. Örneğin, For each eyleminde Gecikme eylemini kullanarak bir sonraki yinelemeyi duraklatmak istiyorsanız, her yinelemeyi sıralı olarak çalışacak şekilde ayarlamanız gerekir.
Varsayılan davranışın bir istisnası olarak, iç içe geçmiş For each eyleminin yinelemeleri her zaman paralel değil, sıralı olarak çalışır. İç içe geçmiş bir For each eyleminde dizi öğeleri üzerinde eylemleri eşzamanlı olarak çalıştırmak için bir alt iş akışı oluşturun ve çağırın.
Her yineleme sırasında değişkenler üzerindeki işlemlerden tahmin edilebilir sonuçlar almak için yinelemeleri sıralı olarak çalıştırın. Örneğin, eşzamanlı çalışan bir yineleme sona erdiğinde Increment değişkeni, Azaltma değişkeni ve Değişkene ekle işlemleri tahmin edilebilir sonuçlar döndürür. Ancak, eşzamanlı çalışan döngüdeki her yineleme sırasında bu işlemler öngörülemeyen sonuçlar döndürebilir.
For each döngüsündeki eylemler, dizideki her öğeye başvurmak ve onu işlemek için
item()işlevini kullanır. Dizide olmayan verileri belirtirseniz iş akışı başarısız olur.
Aşağıdaki örnek iş akışı, bir web sitesi RSS akışı için günlük özet gönderir. İş akışı, her yeni öğe için bir e-posta gönderen Her biri için eylemini kullanır.
Azure portalında, aşağıdaki adımları belirtilen sırada içeren bir mantıksal uygulama iş akışı oluşturun:
Bir akış öğesi yayımlandığında adlı RSS tetikleyicisi
Tüketim veya Standart mantıksal uygulama iş akışına tetikleyici eklemek için bu genel adımları izleyin.
E-posta gönder adlı Outlook.com veya Office 365 Outlook eylemi
Tüketim veya Standart mantıksal uygulama iş akışına eylem eklemek için bu genel adımları izleyin.
RSS tetikleyicisi ile İş akışınızda E-posta gönder eylemi arasına her eylem için eylemini eklemek için aynı genel adımları izleyin.
Şimdi döngüyü oluşturun:
Her öğe için , Önceki Adımlardan Bir Çıkış Seçin kutusunun içini seçin ve ardından şimşek simgesini seçin.
Açılan dinamik içerik listesinden, Bir akış öğesi yayımlandığında altında, RSS tetikleyicisinden gelen bir dizi çıktısı olan Akış bağlantıları'nı seçin.
Not
Akış bağlantıları çıkışı görünmüyorsa tetikleyici bölümü etiketinin yanındaki Daha fazla göster'i seçin. Dinamik içerik listesinden yalnızca önceki adımlardan çıkışları seçebilirsiniz.
İşiniz bittiğinde, seçili dizi çıkışı aşağıdaki örnekte olduğu gibi görünür:
Dizideki her öğe için mevcut bir eylemi çalıştırmak üzere, E-posta gönder eylemini Her biri için döngüsüne sürükleyin.
Şimdi iş akışınız aşağıdaki örneğe benzer:
Tamamladığınızda, iş akışınızı kaydedin.
İş akışınızı el ile test etmek için tasarımcı araç çubuğunda Çalıştır Çalıştır'ı> seçin.
Her eylem tanımı için (JSON)
Kod görünümünde çalışıyorsanız, eylemi iş akışınızın JSON tanımında tanımlayabilirsiniz For_each , örneğin:
"actions": {
"For_each": {
"actions": {
"Send_an_email_(V2)": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "@{item()}",
"Subject": "New CNN post @{triggerBody()?['publishDate']}",
"To": "me@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/v2/Mail"
},
"runAfter": {}
}
},
"foreach": "@triggerBody()?['links']",
"runAfter": {},
"type": "Foreach"
}
},
Her bir için: Sıralı olarak çalıştır
Varsayılan olarak, her eylem için içindeki yinelemeler paralel olarak aynı anda çalıştırılır. Ancak, iç içe döngüleriniz varsa veya tahmin edilebilir sonuçlar beklediğiniz döngülerin içinde değişkenleriniz varsa, bu döngüleri sırayla tek tek çalıştırmanız gerekir.
Tasarımcıda Her eylem için'i seçerek bilgi bölmesini açın ve ardından Ayarlar'ı seçin.
Eşzamanlılık denetimi altında, ayarı Kapalı yerine Açık olarak değiştirin.
Paralellik derecesi kaydırıcısını 1'e taşıyın.
Her eylem tanımı (JSON) için: Sırayla çalıştır
İş akışınızın JSON tanımındaki eylemle For_each kod görünümünde çalışıyorsanız parametresini operationOptions ekleyin ve parametre değerini olarak Sequentialayarlayın:
"actions": {
"For_each": {
"actions": {
"Send_an_email_(V2)": { }
},
"foreach": "@triggerBody()?['links']",
"runAfter": {},
"type": "Foreach",
"operationOptions": "Sequential"
}
}
Kadar
Until eylemi çalışır ve belirtilen gerekli koşul karşılanana kadar bir veya daha fazla eylemi yineler. Koşul karşılanırsa döngü durur. Aksi takdirde döngü yineler. Until eylemlerinin veya yineleme sayısının varsayılan ve üst sınırları için bkz: Eşzamanlılık, döngü oluşturma ve toplu işlemden çıkarma sınırları.
Aşağıdaki listede, Until eylemini kullanabileceğiniz bazı yaygın senaryolar yer alır:
İstediğiniz yanıtı elde edene kadar bir uç noktayı çağırın.
Veritabanında kayıt oluşturma. Bu kayıttaki belirli bir alan onaylanana kadar bekleyin. İşlemeye devam edin.
Varsayılan olarak, Until eylemi aşağıdaki yollarla başarılı olur veya başarısız olur:
Until döngüsü, döngü içindeki tüm eylemler başarılı olursa ve döngü sınırına ulaşılırsa, çalıştırma sonrasındaki davranışa bağlı olarak başarılı olur.
Until döngüsünün son yinelemesindeki tüm eylemler başarılı olursa, Until döngüsünün tamamı Başarılı olarak işaretlenir.
Until döngüsünün son yinelemesinde herhangi bir eylem başarısız olursa, Until döngüsünün tamamı Başarısız olarak işaretlenir.
Son yineleme dışında bir yinelemede herhangi bir eylem başarısız olursa, sonraki yineleme çalışmaya devam eder ve Until eyleminin tamamı Başarısız olarak işaretlenmez.
Bunun yerine eylemin başarısız olmasını sağlamak için adlı parametresini
operationOptionsekleyerek ve değeriniFailWhenLimitsReachedolarak ayarlayarak döngünün JSON tanımındaki varsayılan davranışı değiştirin, örneğin:"Until": { "actions": { "Execute_stored_procedure": { <...> } }, "expression": "@equals(variables('myUntilStop'), true)", "limit": { "count": 5, "timeout": "PT1H" }, "operationOptions": "FailWhenLimitsReached", "runAfter": { "Initialize_variable_8": [ "Succeeded" ] }, "type": "Until" }
Aşağıdaki örnek iş akışında, her gün 08:00'den başlayarak, Until eylemi değişkenin değeri 10'a eşit olana kadar değişkeni artırır. Ardından iş akışı geçerli değeri onaylayan bir e-posta gönderir. Örnekte Office 365 Outlook kullanılabilecek ancak Azure Logic Apps'in desteklediği herhangi bir e-posta sağlayıcısını kullanabilirsiniz. Başka bir e-posta hesabı kullanıyorsanız genel adımlar aynı kalır ancak biraz farklı görünür.
Azure portalında boş bir iş akışıyla bir mantıksal uygulama kaynağı oluşturun. Önceki prosedüre başvurun.
Tasarımcıda, Zamanlama adlı yerleşik tetikleyici Yinelenme'yi Tüketim veya Standart iş akışınıza eklemek için genel adımları izleyin.
Yinelenme tetikleyicisinde tetikleyicinin tetiklenme aralığını, sıklığını ve zamanını belirtin.
Parametre Değer Aralık 1 Sıklık Gün Şu saatlerde 8 Şu dakikalarda 00 Bu saatlerde ve Bu dakikalarda, Sıklık seçeneğini Gün olarak ayarladığınızda görünür.
İşiniz bittiğinde Yinelenme tetikleyicisi aşağıdaki örneğe benzer:
Tetikleyicinin altında, Değişkenler yerleşik eylemi içindeki Değişkenleri başlat adlı eylemi Tüketim veya Standart mantıksal uygulama iş akışınıza eklemek için şu genel adımları izleyin.
Değişkenleri başlat eyleminde aşağıdaki değerleri sağlayın:
Parametre Değer Açıklama Adı Sınırla Değişkeninizin adı Tür Tamsayı Değişkeninizin veri türü Değer 0 Değişkeninizin başlangıç değeri Değişkenleri başlat eyleminin altında, Tüketim veya Standart mantıksal uygulama iş akışınıza Until adlı Denetim yerleşik eylemini eklemek için bu genel adımları izleyin.
Until eyleminde, döngünün durdurma koşulunu ayarlamak için aşağıdaki değerleri sağlayın.
Loop Until kutusunun içine tıklayın ve dinamik içerik listesini açmak için şimşek simgesini seçin.
Listeden Değişkenler'in altında Sınır adlı değişkeni seçin.
Sayı'nın altında karşılaştırma değeri olarak 10 girin.
Until eylemi içinde +>Eylem ekle seçin.
Tüketim veya Standart mantık uygulaması iş akışınızdaki Kadar eylemine Değişkeni artır adlı Değişkenler yerleşik eylemini eklemek için aşağıdaki genel adımları izleyin.
Değişken artırma eyleminde Limit değişkeninin değerini 1 artırmak için aşağıdaki değerleri sağlayın:
Parametre Değer Sınırla Limit değişkenini seçin. Değer 1 Until eyleminin dışında ve altında, Consumption veya Standard mantık uygulaması iş akışınıza e-posta gönderen bir eylem eklemek için şu genel adımları izleyin.
Bu örnek, E-posta gönder adlı Office 365 Outlook eylemiyle devam eder.
E-posta eyleminde aşağıdaki değerleri sağlayın:
Parametre Değer Açıklama Alıcı < e-posta-adresi@domain> Alıcının e-posta adresi. Test için kendi e-posta adresinizi kullanın. Konu "Sınır" değişkeninin geçerli değeri:Sınır E-posta konusu. Bu örnekte, geçerli değerin belirtilen koşulunuzu karşıladığını onaylamak için Limit değişkenini eklediğinizden emin olun:
1. Konu kutusunun içini seçin ve ardından şimşek simgesini seçin.
2. Açılan dinamik içerik listesinden Değişkenler bölüm üst bilgisinin yanındaki Daha fazla bilgi'yi seçin.
3. Sınır'ı seçin.Gövde < e-posta içeriği> Göndermek istediğiniz e-posta iletisi içeriği. Bu örnekte, istediğiniz metni girin. İşiniz bittiğinde, e-posta eyleminiz aşağıdaki örneğe benzer şekilde görünür:
İş akışınızı kaydedin.
İş akışınızı test etme
Mantıksal uygulama iş akışınızı el ile test etmek için:
- Tasarımcı araç çubuğundaki Çalıştır seçeneğinden Çalıştır'ı seçin.
İş akışınız çalışmaya başladıktan sonra, belirttiğiniz içeriği içeren bir e-posta alırsınız:
Sonsuz döngüleri önleme
Until eylemi, isteğe bağlı Count ve Timeout parametrelerine göre yürütmeyi durdurur. Bu parametre değerlerini uygun şekilde ayarladığınızdan emin olun:
| Parametre | Açıklama |
|---|---|
| Sayı | Döngü sonlanmadan önce gerçekleştirilecek en fazla yineleme sayısı. Bir iş akışının sahip olabileceği Until eylemlerinin sayısına ilişkin varsayılan ve en yüksek sınırlar için bkz. Eşzamanlılık, döngü oluşturma ve toplu işlem çözme sınırları. |
| Zaman aşımı |
Until eyleminin, tüm yinelemeler dahil, döngü sona ermeden önce çalışacağı azami süre. Bu değer ISO 8601 biçiminde belirtilir ve her yineleme için değerlendirilir. Döngüdeki herhangi bir eylem zaman aşımı sınırından uzun sürerse geçerli yineleme durmaz. Ancak, zaman aşımı sınırı koşulu karşılandığından sonraki yineleme başlatılmaz. Timeout değerinin varsayılan ve maksimum limitleri için bkz. Eşzamanlılık, döngü ve toplu işlemden çıkarma limitleri. |
Until döngüsü yinelemelerinin çalıştırma geçmişini gözden geçirin
Until döngüsü içeren bir iş akışının çalıştırma geçmişini görüntülediğinizde, döngü içindeki eylemlerin ayrıntılı durumu ve sonuçları yalnızca döngünün tamamı çalıştırmasını tamamladıktan sonra kullanılabilir. Until döngüsü yine yinelemelerini yürütürken, döngü eylemi Çalışıyor durumunu gösterir, ancak döngü çıkana kadar tek tek yineleme sonuçlarını genişletemez veya çapraz geçiş yapamazsınız.
Döngü, aşağıdaki koşullardan biri sağlandığında sonlanır:
- Belirtilen ifade true olarak değerlendirilir.
- Döngü Count sınırına ulaşır.
- Döngü Zaman Aşımı sınırına ulaşır.
Döngü tamamlandıktan sonra çalıştırma geçmişinde Until eylemini seçerek her yinelemeyi ve bu yineleme içindeki alt eylemlerin durumunu görüntüleyebilirsiniz.
Not
Until döngünüz uzun bir süre çalışıyorsa, tek tek yinelemelerin sonuçlarının çalıştırma geçmişini inceleyebilmek için önce döngünün tamamen tamamlanmasını beklemeniz gerekir. Uzun süre çalışan ve devam eden döngüleri izlemek için, döngünün içine durumu bağımsız olarak yayan günlük veya bildirim eylemleri eklemeyi göz önünde bulundurun; örneğin, kuyruğa ileti göndererek veya paralel dalın okuyabileceği bir değişkeni güncelleştirerek.
"Until" tanımı (JSON)
Kod görünümünde çalışıyorsanız, iş akışınızın JSON tanımında bir Until eylem tanımlayabilirsiniz, örneğin:
"actions": {
"Initialize_variable": {
// Definition for initialize variable action
},
"Send_an_email": {
// Definition for send email action
},
"Until": {
"type": "Until",
"actions": {
"Increment_variable": {
"type": "IncrementVariable",
"inputs": {
"name": "Limit",
"value": 1
},
"runAfter": {}
}
},
"expression": "@equals(variables('Limit'), 10)",
// To prevent endless loops, an "Until" loop
// includes these default limits that stop the loop.
"limit": {
"count": 60,
"timeout": "PT1H"
},
"runAfter": {
"Initialize_variable": [
"Succeeded"
]
}
}
}
Bu örnek Until döngüsü, kaynak oluşturan bir HTTP uç noktasını çağırır. HTTP yanıt gövdesi Completed durumu döndürdüğünde döngü durur. Sonsuz döngüleri önlemek için, aşağıdaki koşullardan herhangi biri gerçekleşirse döngü de durdurulur:
Döngü, özniteliği tarafından
countbelirtilen şekilde 10 kez çalıştı. Varsayılan değer 60 kezdir.Döngü,
timeoutözniteliğinde ISO 8601 biçiminde belirtildiği gibi iki saat boyunca çalıştı. Varsayılan değer bir saattir.
"actions": {
"myUntilLoopName": {
"type": "Until",
"actions": {
"Create_new_resource": {
"type": "Http",
"inputs": {
"body": {
"resourceId": "@triggerBody()"
},
"url": "https://domain.com/provisionResource/create-resource"
},
"runAfter": {},
"type": "ApiConnection"
}
},
"expression": "@equals(body('Create_new_resource'), 'Completed')",
"limit": {
"count": 10,
"timeout": "PT2H"
},
"runAfter": {}
}
}