Membuat perulangan untuk mengulangi tindakan dalam alur kerja dengan Azure Logic Apps
Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)
Azure Logic Apps menyertakan tindakan perulangan berikut yang dapat Anda gunakan dalam alur kerja Anda:
Untuk mengulangi satu atau beberapa tindakan pada item dalam array, tambahkan tindakan Untuk setiap ke alur kerja Anda.
Atau, jika Anda memiliki pemicu yang menerima array dan ingin menjalankan iterasi untuk setiap item array, Anda dapat memperdebatkan array tersebut dengan properti pemicu SplitOn.
Untuk mengulangi satu atau beberapa tindakan hingga kondisi terpenuhi atau perubahan status, tambahkan tindakan Sampai ke alur kerja Anda.
Alur kerja Anda pertama kali menjalankan semua tindakan di dalam perulangan, lalu memeriksa kondisi atau status. Jika kondisinya terpenuhi, perulangan akan berhenti. Jika tidak, perulangan terus mengulangi. Untuk batas default dan maksimum jumlah perulangan Until yang dapat dimiliki alur kerja, lihat Batas konkurensi, perulangan, dan debatching.
Prasyarat
Akun dan langganan Azure. Jika Anda tidak memiliki langganan, daftar untuk mendapatkan akun Azure secara gratis.
Pengetahuan dasar tentang alur kerja aplikasi logika
Untuk masing-masing
Untuk setiap tindakan hanya berfungsi pada array dan mengulangi satu atau beberapa tindakan pada setiap item dalam array. Daftar berikut berisi beberapa pertimbangan saat Anda ingin menggunakan untuk setiap tindakan:
Untuk setiap tindakan dapat memproses sejumlah item array yang terbatas. Untuk batas ini, lihat Batas konkurensi, perulangan, dan pembagian.
Secara default, siklus atau iterasi dalam untuk setiap tindakan berjalan pada saat yang sama secara paralel.
Perilaku ini berbeda dari Power Automate yang Diterapkan ke setiap loop ketika iterasi berjalan satu per satu, atau secara berurutan. Namun, Anda dapat menyiapkan berurutan Untuk setiap perulangan. Misalnya, jika Anda ingin menjeda iterasi berikutnya di untuk setiap tindakan dengan menggunakan tindakan Tunda, Anda perlu menyiapkan setiap perulangan untuk berjalan secara berurutan.
Sebagai pengecualian untuk perilaku default, perulangan berlapis Untuk setiap tindakan selalu berjalan secara berurutan, bukan secara paralel. Untuk menjalankan operasi secara paralel untuk item dalam perulangan berlapis, buat dan panggil alur kerja aplikasi logika turunan.
Untuk mendapatkan hasil yang dapat diprediksi dari operasi pada variabel selama setiap iterasi, jalankan iterasi secara berurutan. Misalnya, ketika iterasi yang berjalan bersamaan berakhir, variabel Kenaikan, variabel Penurunan, dan Tambahkan ke operasi variabel mengembalikan hasil yang dapat diprediksi. Namun, selama iterasi dalam perulangan yang berjalan bersamaan, operasi ini mungkin mengembalikan hasil yang tidak dapat diprediksi.
Tindakan dalam perulangan Untuk setiap menggunakan fungsi untuk mereferensikan
item()
dan memproses setiap item dalam array. Jika Anda menentukan data yang tidak ada dalam array, alur kerja gagal.
Contoh alur kerja berikut mengirimkan ringkasan harian untuk umpan RSS situs web. Alur kerja menggunakan untuk setiap tindakan yang mengirim email untuk setiap item baru.
Berdasarkan apakah Anda memiliki alur kerja Konsumsi atau Standar, ikuti langkah-langkah yang sesuai:
Di portal Azure, buat contoh alur kerja aplikasi logika Konsumsi dengan langkah-langkah berikut dalam urutan yang ditentukan:
Pemicu RSS bernama Saat item umpan diterbitkan
Untuk informasi selengkapnya, ikuti langkah-langkah umum ini untuk menambahkan pemicu.
Tindakan Outlook.com atau Office 365 Outlook bernama Kirim email
Untuk informasi selengkapnya, ikuti langkah-langkah umum ini untuk menambahkan tindakan.
Ikuti langkah-langkah umum yang sama untuk menambahkan tindakan Untuk setiap antara pemicu RSS dan Mengirim tindakan email di alur kerja Anda.
Sekarang buat perulangan:
Pilih di dalam kotak Pilih output dari langkah sebelumnya sehingga daftar konten dinamis terbuka.
Di daftar Tambahkan konten dinamis, dari bagian Saat item umpan diterbitkan, pilih Tautan umpan, yang merupakan output array dari pemicu RSS.
Catatan
Jika output tautan Umpan tidak muncul, di samping label bagian pemicu, pilih Lihat selengkapnya. Dari daftar konten dinamis, Anda hanya dapat memilih output dari langkah-langkah sebelumnya.
Setelah selesai, output array yang dipilih muncul seperti dalam contoh berikut:
Untuk menjalankan tindakan yang sudah ada pada setiap item array, seret tindakan Kirim email ke dalam untuk setiap perulangan.
Sekarang, alur kerja Anda terlihat seperti contoh berikut:
Setelah selesai, simpan alur kerja.
Untuk menguji alur kerja Anda secara manual, pada toolbar perancang, pilih Jalankan Eksekusi Pemicu>.
Untuk setiap definisi tindakan (JSON)
Jika Anda bekerja dalam tampilan kode, Anda dapat menentukan For_each
tindakan dalam definisi JSON alur kerja Anda, misalnya:
"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"
}
},
Untuk setiap: Jalankan secara berurutan
Secara default, iterasi dalam untuk setiap perulangan berjalan pada saat yang sama secara paralel. Namun, ketika Anda memiliki perulangan atau variabel berlapis di dalam perulangan di mana Anda mengharapkan hasil yang dapat diprediksi, Anda harus menjalankan perulangan tersebut satu per satu atau secara berurutan.
Di sudut kanan atas untuk setiap tindakan, pilih elipsis (...) >Pengaturan.
Di bawah Kontrol Konkurensi, ubah pengaturan dari Nonaktif ke Aktif.
Pindahkan penggeser Tingkat Paralelisme ke 1, dan pilih Selesai.
Untuk setiap definisi tindakan (JSON): Jalankan secara berurutan
Jika Anda bekerja dalam tampilan kode dengan For_each
tindakan dalam definisi JSON alur kerja, Anda dapat menggunakan Sequential
opsi dengan menambahkan operationOptions
parameter, misalnya:
"actions": {
"For_each": {
"actions": {
"Send_an_email_(V2)": { }
},
"foreach": "@triggerBody()?['links']",
"runAfter": {},
"type": "Foreach",
"operationOptions": "Sequential"
}
}
Hingga
Tindakan Sampai berjalan dan mengulangi satu atau beberapa tindakan hingga kondisi yang ditentukan yang diperlukan terpenuhi. Jika kondisinya terpenuhi, perulangan akan berhenti. Jika tidak, perulangan terus mengulangi. Untuk batas default dan maksimum pada jumlah tindakan Until atau iterasi yang dapat dimiliki alur kerja, lihat Batas konkurensi, perulangan, dan debatching.
Daftar berikut ini berisi beberapa skenario umum di mana Anda bisa menggunakan tindakan Until :
Panggil titik akhir hingga Anda mendapatkan respons yang diinginkan.
Membuat rekaman dalam database. Tunggu hingga bidang tertentu dalam rekaman tersebut disetujui. Lanjutkan pemrosesan.
Dalam contoh alur kerja berikut, mulai pukul 08.00 setiap hari, tindakan Until menaikkan variabel hingga nilai variabel sama dengan 10. Alur kerja kemudian mengirim email yang mengonfirmasi nilai saat ini.
Catatan
Contoh ini menggunakan Office 365 Outlook, tetapi Anda bisa menggunakan penyedia email apa pun yang didukung Azure Logic Apps. Jika Anda menggunakan akun email lain, langkah-langkah umumnya tetap sama, tapi antarmuka pengguna Anda mungkin sedikit berbeda.
Di portal Azure, buat sumber daya aplikasi logika Konsumsi dengan alur kerja kosong.
Di perancang, ikuti langkah-langkah umum ini untuk menambahkan pemicu bawaan Pengulangan bernama Jadwalkan ke alur kerja Anda.
Di pemicu Pengulangan , tentukan interval, frekuensi, dan jam dalam sehari agar pemicu diaktifkan.
Properti Nilai Interval 1 Frekuensi Hari Pada jam-jam ini 8 Untuk menambahkan parameter Pada jam ini, buka daftar Tambahkan parameter baru, dan pilih Pada jam-jam ini, yang muncul hanya setelah Anda mengatur Frekuensi ke Hari.
Setelah selesai, pemicu Pengulangan terlihat seperti contoh berikut:
Di bawah pemicu, ikuti langkah-langkah umum ini untuk menambahkan tindakan bawaan Variabel bernama Inisialisasi variabel ke alur kerja Anda.
Dalam tindakan Inisialisasi variabel, berikan nilai berikut:
Properti Nilai Deskripsi Nama Batas Nama variabel Anda Jenis Bilangan bulat Jenis data variabel Anda Nilai 0 Nilai awal variabel Anda Di bawah tindakan Inisialisasi variabel, ikuti langkah-langkah umum ini untuk menambahkan tindakan Kontrol bawaan bernama Until ke alur kerja Anda.
Dalam tindakan Hingga, berikan nilai berikut untuk menyiapkan kondisi berhenti untuk perulangan.
Pilih di dalam kotak paling kiri bernama Pilih nilai, yang secara otomatis membuka daftar konten dinamis.
Dari daftar, di bawah Variabel, pilih variabel bernama Batas.
Dari daftar operator tengah, pilih sama dengan operator.
Dalam kotak paling kanan bernama Pilih nilai, masukkan 10 sebagai nilai perbandingan.
Di dalam tindakan Hingga, pilih Tambahkan tindakan.
Dalam kotak pencarian Pilih operasi, ikuti langkah-langkah umum ini untuk menambahkan tindakan bawaan Variabel bernama Variabel Kenaikan ke tindakan Sampai.
Dalam tindakan Variabel kenaikan, berikan nilai berikut untuk menaikkan nilai variabel Batas sebesar 1:
Properti Nilai Nama Pilih variabel Batasi. Nilai 1 Di luar dan di bawah Tindakan hingga , ikuti langkah-langkah umum ini untuk menambahkan tindakan yang mengirim email.
Contoh ini berlanjut dengan tindakan Office 365 Outlook bernama Kirim email.
Dalam tindakan email, berikan nilai berikut:
Properti Nilai Deskripsi Untuk <email-address@domain> Alamat email penerima. Untuk pengujian, gunakan alamat email Anda sendiri. Subjek Nilai saat ini untuk variabel "Batas" adalah: Batas Subjek email. Untuk contoh ini, pastikan Anda menyertakan variabel Batas untuk mengonfirmasi bahwa nilai saat ini memenuhi kondisi yang Anda tentukan:
1. Pilih di dalam kotak Subjek sehingga daftar konten dinamis muncul.
2. Dalam daftar konten dinamis, di samping header bagian Variabel , pilih Lihat selengkapnya.
3. Pilih Batas.Isi <konten-email> Konten pesan email yang ingin Anda kirim. Untuk contoh ini, masukkan teks apa pun yang Anda inginkan. Setelah selesai, tindakan email Anda terlihat mirip dengan contoh berikut:
Simpan alur kerja Anda.
Menguji alur kerja
Untuk menguji alur kerja aplikasi logika Anda secara manual, ikuti langkah-langkah berdasarkan apakah Anda memiliki aplikasi logika Konsumsi atau Standar.
Pada toolbar perancang, pilih Jalankan Eksekusi Pemicu>.
Setelah alur kerja mulai berjalan, Anda mendapatkan email dengan konten yang Anda tentukan:
Mencegah perulangan tanpa akhir
Tindakan Sampai menghentikan eksekusi berdasarkan properti berikut, yang bisa Anda lihat dengan memilih Ubah batas dalam tindakan. Pastikan Anda mengatur nilai properti ini dengan sesuai:
Properti | Deskripsi |
---|---|
Hitung | Jumlah maksimum iterasi yang berjalan sebelum perulangan keluar. Untuk batas default dan maksimum jumlah tindakan Until yang dapat dimiliki alur kerja, lihat Batas konkurensi, perulangan, dan debatching. |
Timeout | Jumlah waktu maksimum tindakan Until , termasuk semua iterasi, berjalan sebelum perulangan keluar. Nilai ini ditentukan dalam format ISO 8601 dan dievaluasi untuk setiap perulangan. Jika ada tindakan dalam perulangan yang memakan waktu lebih lama dari batas waktu habis, iterasi saat ini tidak berhenti. Namun, perulangan berikutnya tidak dimulai karena kondisi batas waktu habis terpenuhi. Untuk batas default dan maksimum pada nilai Timeout, lihat Batas konkurensi, perulangan, dan pembagian. |
Definisi "Until" (JSON)
Jika Anda bekerja dalam tampilan kode, Anda dapat menentukan Until
tindakan dalam definisi JSON alur kerja Anda, misalnya:
"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"
]
}
}
}
Contoh perulangan Until ini memanggil titik akhir HTTP, yang membuat sumber daya. Perulangan berhenti ketika isi respons HTTP kembali dengan status Completed
. Untuk mencegah perulangan tanpa akhir, perulangan juga berhenti jika salah satu kondisi berikut terjadi:
Perulangan berjalan 10 kali seperti yang ditentukan oleh atribut
count
. Defaultnya adalah 60 kali.Loop berjalan selama dua jam seperti yang ditentukan oleh atribut
timeout
dalam format ISO 8601. Defaultnya adalah satu jam.
"actions": {
"myUntilLoopName": {
"type": "Until",
"actions": {
"Create_new_resource": {
"type": "Http",
"inputs": {
"body": {
"resourceId": "@triggerBody()"
},
"url": "https://domain.com/provisionResource/create-resource",
"body": {
"resourceId": "@triggerBody()"
}
},
"runAfter": {},
"type": "ApiConnection"
}
},
"expression": "@equals(triggerBody(), 'Completed')",
"limit": {
"count": 10,
"timeout": "PT2H"
},
"runAfter": {}
}
}