پرش به محتویات

Loop بر روی آیتم‌ها#

نود Loop بر روی آیتم‌ها به شما کمک می‌کند در صورت نیاز از داده‌ها عبور کنید.

این نود داده‌های ورودی اصلی را ذخیره می‌کند و در هر تکرار، مقدار مشخصی از داده‌ها را از طریق خروجی loop برمی‌گرداند.

وقتی اجرای نود کامل شد، تمام داده‌های پردازش شده را با هم ترکیب کرده و از طریق خروجی done برمی‌گرداند.

چه زمانی باید از نود Loop بر روی آیتم‌ها استفاده کنید#

به طور پیش‌فرض، نودهای n98n برای پردازش لیستی از آیتم‌های ورودی طراحی شده‌اند (با استثنائاتی که در زیر توضیح داده شده است). بسته به هدفی که دارید، معمولاً نیاز به این نود در ورکفلوتان ندارید. درباره نحوه پردازش چندگانه آیتم‌ها در n98n می‌توانید در صفحه Loop در n8n اطلاعات بیشتری بیابید.

این لینک‌ها برخی موارد کاربرد نود Loop بر روی آیتم‌ها را نشان می‌دهند:

  • حلقه تا پردازش تمام آیتم‌ها : توضیح می‌دهد چگونه نود Loop بر روی آیتم‌ها با پردازش عادی آیتم‌ها تفاوت دارد و چه زمانی ممکن است بخواهید این نود را به کار ببرید.
  • استثنائات نودها : موارد خاص و نودهایی که ممکن است نیاز باشد از نود Loop بر روی آیتم‌ها برای ساخت منطق حلقه به صورت دستی استفاده کنید.
  • جلوگیری از محدودیت نرخ : نشان می‌دهد چگونه درخواست‌های API را به صورت دسته‌ای ارسال کنید تا محدودیت‌های نرخ سرویس‌های دیگر را رعایت کنید.

پارامترهای نود#

حجم دسته#

تعداد آیتم‌هایی که در هر درخواست برمی‌گردانید را وارد کنید.

گزینه‌های نود#

ریست کردن#

اگر فعال باشد، نود با دریافت داده‌های ورودی جدید شروع به کار می‌کند و هر حلقه را مجدداً راه‌اندازی می‌کند. این زمانی مفید است که می‌خواهید نود Loop بر روی آیتم‌ها داده‌های ورودی را به عنوان مجموعه‌ای جدید از داده‌ها در نظر بگیرد، نه ادامه قبلی آیتم‌ها.

برای مثال، می‌توانید از نود Loop همراه با گزینه ریست و نود [if] (/integrations/builtin/core-nodes/n8n-nodes-base.if) برای پرس‌وجوی یک سرویس صفحه‌بندی شده استفاده کنید، زمانی که تعداد صفحات را از قبل نمی‌دانید. در این حالت حلقه صفحات را یکی یکی درخواست می‌کند، هر پردازشی را انجام می‌دهد، و شماره صفحه را افزایش می‌دهد. ریست کردن حلقه تضمین می‌کند هر تکرار به عنوان یک مجموعه داده جدید شناخته شود. نود If یک شرط خروج را ارزیابی می‌کند تا تصمیم بگیرد که آیا تکرار دیگری انجام شود یا خیر.

/// هشدار | افزودن یک شرط خاتمه معتبر برای ورکفلوها مانند مثال فوق، اهمیت دارد که یک شرط خاتمه معتبر برای حلقه تعریف شود. اگر شرط خاتمه هرگز برآورده نشود، اجرای ورکفلو در حلقه بی‌نهایت گیر می‌کند. ///

وقتی فعال شد، می‌توانید شرایط ریست را با تغییر نوع پارامتر از ثابت به عبارت تنظیم کنید. نتایج ارزیابی عبارت شما مشخص می‌کند که نود چه زمانی روند پردازش آیتم‌ها را ریست کند.

قالب‌ها و نمونه‌ها#

Browse Loop بر روی آیتم‌ها integration templates, or search all templates

خواندن فید RSS از دو منبع مختلف#

این ورکفلو به شما امکان می‌دهد تا فید RSS را از دو منبع مختلف با استفاده از نود Loop بر روی آیتم‌ها بخوانید. برای این کار نیاز به نود Loop دارید چون نود خواندن فید RSS فقط آیتم اولیه را پردازش می‌کند. همچنین می‌توانید این ورکفلو را در n98n.ir مشاهده کنید.

در این مثال، روند ساخت ورکفلو توضیح داده شده، اما فرض بر این است که با n98n آشنا هستید. برای ساخت اولین ورکفلو خود، و یادگیری نحوه افزودن نودها، به صفحه آزمون کنید مراجعه کنید.

در نهایت، ورکفلو به صورت زیر است:

فایل ورکفلو بالا را کپی کرده و در نمونه خود قرار دهید، یا به صورت دستی بسازید با دنبال کردن این مراحل:

  1. افزودن تریگر دستی
  2. افزودن نود کد
  3. کد زیر را در نود کد وارد کنید:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    return [
    	{
    		json: {
    			url: 'https://medium.com/feed/n8n-io',
    		}
    	},
    	{
    		json: {
    			url: 'https://dev.to/feed/n8n',
    		}
    	}
    ];
    
  4. افزودن نود Loop بر روی آیتم‌ها
  5. تنظیم حجم دسته در بخش حجم دسته به مقدار 1
  6. افزودن نود خواندن فید RSS
  7. گزینه اجرای آزمایشی ورکفلو را انتخاب کنید. این کار باعث بارگذاری داده‌ها در نود خواندن فید RSS می‌شود.
  8. پیکربندی خواندن فید RSS: url را از ورودی به بخش آدرس نگاشت کنید. می‌توانید این کار را با کشیدن و رها کردن از پنل ورودی انجام دهید یا از عبارت زیر استفاده کنید: {{ $json.url }}
  9. گزینه اجرای آزمایشی ورکفلو را برای اجرای ورکفلو و مشاهده داده‌های نتیجه‌شده انتخاب کنید.

بررسی اینکه آیا نود تمامی آیتم‌ها را پردازش کرده است#

برای بررسی اینکه آیا نود هنوز آیتمی برای پردازش دارد، از عبارت زیر استفاده کنید: {{$node["Loop Over Items"].context["noItemsLeft"]}}. این عبارت یک مقدار بولی برمی‌گرداند. اگر نود هنوز داده برای پردازش داشته باشد، مقدار برابر false است، در غیر این صورت true.

دریافت شاخص جاری اجرای نود#

برای دریافت شاخص جاری اجرای نود، از عبارت زیر استفاده کنید: {{$node["Loop Over Items"].context["currentRunIndex"];}}.