خطأ في استخراج الملف

مرحباً بالجميع،

لقد أنشأت سير عمل آخر في n8n. الهدف هو قراءة جميع الفواتير التي تصل إلى صندوق بريدي الإلكتروني تلقائياً وحفظها في قاعدة بيانات.

ومع ذلك، فإن العقدة **„Extract from File

مرحباً @Tanushree1، بينما تنتظر الرد، إليك بعض الأشياء التي قد تساعدك:

[details=“الموارد المقترحة”]

تم مطابقتها تلقائياً مع سؤالك.

المستندات:

المنتدى:

  • [خطأ في عقدة „Extract from File

مرحبًا تانوشري،

شكرًا لمشاركة لقطة الشاشة!

يشير الخطأ إلى أن عقدة Extract From File لا يمكنها العثور على حقل البيانات الثنائية attachment_0 في عنصر الإدخال الخاص بها.

بما أن attachment_0 مرئي في علامة التبويب Binary، أقترح عليك إجراء الفحوصات التالية:

  1. أعد تنفيذ العقدة السابقة Split Out2 وافحص مخرجاتها.

  2. تأكد من أن العنصر الذي تم تمريره إلى Extract From File2 يحتوي على الخاصية الثنائية attachment_0.

  3. تأكد من أن قيمة Input Binary Field تطابق اسم الخاصية الثنائية الفعلي بالضبط.

  4. إذا كانت البيانات الثنائية مفقودة بعد عقدة Split Out، تحقق من إعدادات Split Out للتأكد من الحفاظ على بيانات المرفق.

إذا استمرت المشكلة، هل يمكنك مشاركة مخرجات Split Out2 في عروض JSON و Binary؟ سيساعدني ذلك على تحديد المكان الذي يتم فيه فقدان الحقل الثنائي.

آمل أن يكون هذا مفيدًا!

مرحبا،
شكراً على ردك السريع!
ماذا يمكنني أن أفعل حتى أتمكن من حل المشكلة؟ هل لديك فكرة؟

شكراً مقدماً!

مع أطيب التحيات
Tanushree

إذا نظرتم إلى سير عملي، يمكنكم أن ترون أن العقدة “Extract from File” تتلقى بالفعل ملف PDF كمدخل من العقدة السابقة لها.

لكن ما لا أفهمه تماماً هو لماذا يتعين علي تحديد الحقل “Input Binary Field” إضافياً في العقدة “Extract from File”، على الرغم من أن ملف PDF يتم نقله بالفعل.

هل يمكن لأحد أن يشرح لي لماذا يكون هذا الحقل مطلوباً وما القيمة التي يجب أن أدخلها هناك؟

شكراً لكم على مساعدتكم! :blush:

مرحباً @Tanushree1! يتم تمرير ملف PDF إلى العقدة كبيانات ثنائية. يمكن أن يحتوي العنصر على أكثر من ملف واحد، لذا فإن حقل الإدخال الثنائي يخبر Extract From File بأي ملف يجب قراءته.

في لقطة الشاشة الخاصة بك، يُسمى الحقل الثنائي attachment_0، لذا تلك هي القيمة التي يجب إدخالها. يمكنني أيضاً أن أرى السبب في الارتباك: يظهر الملف في الإدخال، لكن الخطأ يقول أن الحقل مفقود.

هل يمكنك مسح حقل الإدخال الثنائي، وكتابة attachment_0 مرة أخرى بدون مسافات، وتنفيذ العقدة مرة أخرى؟ إذا فشل الأمر، يرجى مشاركة لقطة شاشة جديدة للإدخال والخطأ بعد هذا التشغيل.

مرحبا تانوشري،

سؤال رائع!

في n8n، يتم تمرير ملف PDF كبيانات ثنائية، وحقل الإدخال الثنائي يخبر عقدة Extract From File بأي خاصية ثنائية تحتوي على الملف.

على سبيل المثال، إذا فتحت علامة التبويب Binary للعقدة السابقة ورأيت خاصية باسم attachment_0، فأدخل attachment_0 في حقل الإدخال الثنائي.

يعتمد اسم الحقل على خاصية البيانات الثنائية الفعلية التي توفرها العقدة السابقة، لذا من الأفضل التحقق من علامة تبويب Binary بدلاً من تخمين القيمة.

حتى لو كان ملف PDF مرئياً في الإدخال، تحتاج العقدة إلى معرفة أي خاصية ثنائية تقرأ.

آمل أن يوضح هذا الأمر!

هذا الخطأ يعني ببساطة أن العنصر الذي يصل إلى Extract From File لا يحتوي على أي ملف مرفق باسم attachment_0 — تقرأ العقدة بايتات الملف من البيانات الثنائية وليس من حقول JSON، لذا يخبر Input Binary Field العقدة أي خاصية ثنائية يجب قراءتها.

طريقة سريعة لتحديده: افتح العقدة الموجودة قبل Extract From File مباشرة وتحقق من مخرجاتها — انتقل إلى العرض الثنائي وتحقق مما إذا كان attachment_0 موجوداً بالفعل. إذا كان مفقوداً، فقد تم فقدان الملف خطوة واحدة في وقت سابق (غالباً عند خطوة Split Out)، لذا أعد تشغيل تلك العقدة وتحقق مرة أخرى قبل تشغيل Extract. إذا كانت الخاصية الثنائية موجودة لكن باسم مختلف، انسخ هذا الاسم بالضبط إلى Input Binary Field.

بمجرد أن يحمل العنصر الذي يدخل Extract الملف بالفعل، يجب أن يختفي الخطأ.

مرحبا كريستيان،
نعم، حاولت ذلك لأن الذكاء الاصطناعي قال ذلك أيضاً. لكن الخطأ لا يزال موجوداً.

شكراً جزيلاً!

تحياتي
تانوشري

مرحباً شفيق،
نعم، لقد تحققت من عقدتي السابقة ورأيت ملف ثنائي “attachment_0”. لا أعرف كيف يمكنني المتابعة.

شكراً لك!
تانوشري

شكراً على التحقق من ذلك — هذا يستبعد وجود خطأ إملائي في اسم الحقل، لذا الفحص التالي هو ما يستقبله عقدة Extract from File فعلياً، بدلاً من ما يعرضه Split Out.

افتح عقدة Extract from File وانظر إلى لوحة الإدخال الخاصة بها، على التبويب الثنائي. يعرض هذا العنصر الدقيق الذي يدخل العقدة، والذي قد يختلف عن مخرجات Split Out المعروضة إذا كان هذا الإخراج مثبّتاً أو من تشغيل أقدم.

إذا كان attachment_0 مفقوداً من إدخال Extract، فإن الملف يتم فقده في خطوة Split Out — يقسم Split Out عناصر JSON، والملف الثنائي لا يسافر دائماً مع كل عنصر مقسوم. كاختبار، قم بتوصيل العقدة قبل Split Out مباشرة إلى Extract وقم بتشغيله: إذا نجح ذلك، فإن Split Out هو حيث يتم فقد الملف، وسيل الملف يحتاج إلى الوصول إلى Extract دون تقسيم.

إذا كان attachment_0 موجوداً بالفعل في إدخال Extract واستمر في إعطاء خطأ، فامسح أي بيانات مثبّتة على كلا العقدتين وأعد تنفيذ سير العمل بالكامل من البداية — مخرج مثبّت قديم هو عادة المسبب. إذا استمرت الفشل بعد ذلك، فإن لقطة شاشة من لوحة إدخال Extract الخاصة ستحدده بدقة.