گردش‌کار مدیریت خطای n8n: دسترسی به داده‌های اجرا

گردش‌کار مدیریت خطای n8n: دسترسی به داده‌های اجرا

6 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 2349 · منبع: کاتالوگ Axeto

دسترسی به داده‌های اجرای گردش‌کارهای ناموفق

این راهنما نحوه ساخت یک گردش‌کار n8n را نشان می‌دهد که رویدادهای خطا را از سایر گردش‌کارها دریافت کرده و داده‌های اجرای خاصی مانند محموله‌های وب‌هوک را از اجرای ناموفق بازیابی می‌کند. این امر برای پیاده‌سازی استراتژی‌های پیچیده مدیریت خطا و اصلاح که به زمینه داده‌های اصلی بستگی دارند، حیاتی است.

شما می‌توانید این گردش‌کار و موارد دیگر را در کاتالوگ Axeto پیدا کنید: گردش‌کارهای n8n Axeto.

نمای کلی گردش‌کار

این گردش‌کار برای موارد زیر طراحی شده است:

1. تشخیص خطاها: گوش دادن به هر اجرای گردش‌کاری که با شکست مواجه می‌شود.

2. بازیابی جزئیات اجرا: دریافت داده‌های جامع در مورد اجرای ناموفق، از جمله وضعیت تمام گره‌ها در زمان شکست.

3. استخراج داده‌های خاص: تجزیه و تحلیل داده‌های بازیابی شده برای شناسایی و استخراج اطلاعات از گره‌های خاص، مانند محموله یک وب‌هوک که گردش‌کار ناموفق را راه‌اندازی کرده است.

گردش‌کار به سه بلوک منطقی اصلی تقسیم شده است:

  • دریافت تریگر خطا: رویداد خطا را از هر اجرای گردش‌کار دریافت می‌کند.
  • بازیابی داده‌های اجرا: از گره API n8n برای دریافت داده‌های دقیق از اجرای ناموفق استفاده می‌کند.
  • استخراج داده‌های وب‌هوک: داده‌های اجرای بازیابی شده را برای استخراج محموله از گره‌های وب‌هوک پردازش می‌کند.

جزئیات گره‌ها

۱. دریافت تریگر خطا

  • هدف: این گره به عنوان نقطه ورود برای مدیریت خطا عمل می‌کند. این گره به طور سراسری به هر اجرای گردش‌کاری که منجر به خطا می‌شود، گوش می‌دهد.
  • نوع گره: Error Trigger (n8n-nodes-base.errorTrigger)
  • پیکربندی: هیچ پارامتر خاصی لازم نیست؛ به طور پیش‌فرض برای دریافت تمام خطاها پیکربندی شده است.
  • خروجی: داده‌هایی حاوی execution.id اجرای ناموفق را منتشر می‌کند.
  • وابستگی‌ها: به نسخه ۰.۱۴۰ یا بالاتر n8n نیاز دارد.

۲. بازیابی داده‌های اجرا

  • هدف: این گره API داخلی n8n را برای بازیابی داده‌های اجرای کامل برای گردش‌کار ناموفق خاص که با execution.id آن شناسایی شده است، پرس‌وجو می‌کند. این امکان بازرسی تمام خروجی‌های گره در نقطه شکست را فراهم می‌کند.
  • نوع گره: n8n (گره API n8n) (n8n-nodes-base.n8n)
  • پیکربندی:

* عملیات: get

* منبع: execution

* شناسه اجرا (Execution ID): با استفاده از عبارتی که به execution.id از گره Error Trigger ارجاع می‌دهد، تنظیم می‌شود: ={{ $json.execution.id }}.

* گزینه‌ها (Options): activeWorkflows را می‌توان روی true تنظیم کرد (اختیاری).

  • اعتبارنامه‌ها (Credentials): به اعتبارنامه n8nApi نیاز دارد که با دسترسی به API داخلی نمونه n8n شما پیکربندی شده باشد.
  • ورودی: داده‌ها را از گره Error Trigger دریافت می‌کند.
  • خروجی: داده‌های اجرای دقیق را به گره بعدی منتقل می‌کند.
  • مشکلات احتمالی: خطاهای احراز هویت در صورت نامعتبر بودن اعتبارنامه‌ها، یا اگر شناسه اجرا یافت نشد یا پاک شده باشد.

۳. استخراج داده‌های وب‌هوک

  • هدف: این گره داده‌های اجرای دقیق به دست آمده از مرحله قبل را پردازش می‌کند. از جاوا اسکریپت سفارشی برای شناسایی گره‌های وب‌هوک در ساختار گردش‌کار ناموفق و استخراج محموله‌های ورودی آن‌ها استفاده می‌کند.
  • نوع گره: Code (JavaScript) (n8n-nodes-base.code)
  • پیکربندی:

* حالت (Mode): Run Once For Each Item

* کد سفارشی (Custom Code):

```javascript

const webhook_node_names = $json.workflowData.nodes.filter(x => x.type === 'n8n-nodes-base.webhook').map(x => x.name);

const webhook_data_array = webhook_node_names.map(n => {

// Safely access runData, checking for existence at each level

const nodeRunData = $json.data.resultData.runData && $json.data.resultData.runData[n];

if (nodeRunData && nodeRunData[0] && nodeRunData[0].data && nodeRunData[0].data.main && nodeRunData[0].data.main[0] && nodeRunData[0].data.main[0][0] && nodeRunData[0].data.main[0][0].json) {

return nodeRunData[0].data.main[0][0].json;

}

return null;

}).filter(x => x !== null);

let webhook_data = null;

if (webhook_data_array.length > 0) {

webhook_data = webhook_data_array[0]; // Take the first webhook payload found

}

return {

'webhook_node_names': webhook_node_names,

'webhook_node_payload': webhook_data

};

```

  • توضیح کد:

* ابتدا تمام گره‌های موجود در متادیتای گردش‌کار را که از نوع n8n-nodes-base.webhook هستند شناسایی کرده و نام آن‌ها را جمع‌آوری می‌کند.

* سپس، از طریق این نام‌های گره وب‌هوک تکرار می‌شود و سعی می‌کند داده‌های محموله مربوطه را از runData در جزئیات اجرا بازیابی کند.

* برای جلوگیری از خطا در صورت عدم وجود داده، به طور ایمن به خصوصیات تودرتو دسترسی پیدا می‌کند.

* در نهایت، یک شیء حاوی لیستی از نام‌های گره وب‌هوک و محموله اولین گره وب‌هوک یافت شده (در صورت وجود) را برمی‌گرداند.

  • ورودی: داده‌های اجرای دقیق را از گره API n8n دریافت می‌کند.
  • خروجی: نام‌های گره وب‌هوک استخراج شده و محموله‌های آن‌ها را برای پردازش بیشتر در منطق مدیریت خطای شما ارائه می‌دهد.
  • مشکلات احتمالی: اگر ساختار داده‌های اجرا در نسخه‌های آینده n8n تغییر کند، کد ممکن است با شکست مواجه شود. اگر هیچ گره وب‌هوک وجود نداشته باشد یا داده‌ای دریافت نکرده باشند، محموله null خواهد بود.

جدول خلاصه

نام گره (Node Name)نوع گره (Node Type)نقش عملکردی (Functional Role)گره(های) ورودی (Input Node(s))گره(های) خروجی (Output Node(s))نکات (Notes)
Error TriggererrorTriggerخطاهای اجرای سراسری گردش‌کار را دریافت می‌کند.NoneGet execution data
Get execution datan8n (API Node)داده‌های دقیق اجرای ناموفق را دریافت می‌کند.Error TriggerExtract webhook dataبه اعتبارنامه n8nApi نیاز دارد.
Extract webhook datacode (JavaScript)داده‌های اجرا را برای استخراج محموله‌های وب‌هوک تجزیه و تحلیل می‌کند.Get execution dataNoneمحموله‌های وب‌هوک را برای استفاده در منطق اصلاح خطا استخراج می‌کند.

بازتولید گردش‌کار

1. افزودن گره Error Trigger:

* گره ای از نوع Error Trigger اضافه کنید. هیچ پیکربندی لازم نیست.

2. افزودن گره API n8n:

* گره ای از نوع n8n اضافه کنید.

* منبع (Resource) را روی execution تنظیم کنید.

* عملیات (Operation) را روی get تنظیم کنید.

* برای پارامتر شناسه اجرا (Execution ID)، عبارت زیر را وارد کنید: ={{ $json.execution.id }}.

* به صورت اختیاری، activeWorkflows را در بخش گزینه‌ها (Options) فعال کنید.

* اعتبارنامه‌های n8nApi خود را پیکربندی کنید.

* خروجی گره Error Trigger را به این گره متصل کنید.

3. افزودن گره Code:

* گره ای از نوع Code اضافه کنید.

* حالت (Mode) را روی Run Once For Each Item تنظیم کنید.

* کد جاوا اسکریپت ارائه شده را در فیلد کد (Code) جای‌گذاری کنید.

* خروجی گره API n8n را به این گره Code متصل کنید.

4. اتصال گره‌ها: اطمینان حاصل کنید که اتصالات به صورت زیر هستند: Error TriggerGet execution dataExtract webhook data.

5. ذخیره و فعال‌سازی: گردش‌کار را ذخیره کرده و آن را فعال کنید.

6. تست: برای تست، عمداً خطایی را در گردش‌کار دیگری که شامل گره وب‌هوک است، ایجاد کنید. گردش‌کار خطا باید فعال شود، داده‌های اجرا را دریافت کند و محموله وب‌هوک را استخراج کند.

منابع

  • مستندات گره Error Trigger: مستندات گره Error Trigger n8n
  • گره API n8n: این گره امکان تعامل با API REST n8n را برای عملیات پیشرفته فراهم می‌کند.
  • سفارشی‌سازی: کد جاوا اسکریپت در گره Code را می‌توان برای استخراج داده‌ها از انواع دیگر گره‌ها یا پیاده‌سازی منطق تجزیه پیچیده‌تر در صورت نیاز برای الزامات خاص مدیریت خطای شما، اصلاح کرد.

Nodeهای استفاده‌شده

سوالات متداول

چگونه می‌توانم خطاهای گردش‌کارهای دیگر در n8n را دریافت کنم؟

شما می‌توانید با استفاده از گره `Error Trigger` یک گردش‌کار n8n بسازید که به طور خودکار هر اجرای گردش‌کاری که با شکست مواجه می‌شود را شناسایی کرده و داده‌های مربوط به آن خطا را دریافت کند.

چگونه می‌توانم داده‌های اجرای خاصی مانند محموله وب‌هوک را از یک اجرای ناموفق بازیابی کنم؟

پس از دریافت شناسه اجرای ناموفق از طریق `Error Trigger`، می‌توانید از گره `n8n` (با عملیات `get` روی منبع `execution`) برای بازیابی تمام داده‌های اجرا استفاده کنید. سپس، با استفاده از گره `Code` (جاوا اسکریپت)، می‌توانید داده‌های مورد نظر مانند محموله وب‌هوک را از ساختار داده‌های بازیابی شده استخراج کنید.

چه نسخه‌ای از n8n برای استفاده از گره `Error Trigger` لازم است؟

برای استفاده از گره `Error Trigger`، به نسخه ۰.۱۴۰ یا بالاتر n8n نیاز دارید.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.