الفرز في عقدة „تحرير الحقول

وصف المشكلة/الخطأ/السؤال

فرز المصفوفات في عقدة “Edit Fields” يعيد “null” بعد الترقية إلى إصدار n8n 2.36.7، يجب أن يعيد المصفوفة المرتبة

  • عقدة Edit Fields (Set) الإصدار 3.4 (أحدث إصدار: 3.5)
  • يعمل في الإصدار 2.27.4

ما هي رسالة الخطأ (إن وجدت)؟

يرجى مشاركة سير العمل الخاص بك

شارك الناتج الذي يعيده آخر عقدة

[
{
“sorted”: null
}
]

معلومات عن إعداد n8n الخاص بك

  • إصدار n8n: 2.36.7
  • قاعدة البيانات (الافتراضي: SQLite): postgress
  • إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):
  • تشغيل n8n عبر (Docker, npm, n8n cloud, desktop app): docker
  • نظام التشغيل: ubuntu

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

الموارد المقترحة

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

المستندات:

المنتدى:

@hubschrauber، @nguyenthieutoan، @achamm - لقد ساعدتم في مشاكل مشابهة من قبل، هل يمكنكم إلقاء نظرة؟

تم الاقتراح تلقائياً بواسطة روبوت مجتمع n8n. إنها تجربة استكشافية - يرجى مشاركة ملاحظاتك هنا.

مرحبا @jxyz

جرب هذا، هذا يعمل

مرحباً @jxyz
sort() هي الشيء الوحيد في هذا التعبير الذي يغير المستقبِل بدلاً من إرجاع مصفوفة جديدة، وتغيير $json في المكان من تعبير هو السبب الأكثر احتمالاً للقيمة الفارغة. قم بفرز نسخة:
{{ [...$json.arr].sort((a, b) => b - a) }}
إذا أرجعت النسخة [3, 2, 1] بينما الأصل لا يزال يرجع قيمة فارغة، فإن الكسر يكون في تغيير بيانات العنصر بدلاً من sort() نفسها، وهذا يستحق تقرير خلل لأن المستندات لا تزال تُظهر دالة المقارنة الدقيقة تلك.

قبل أن تنزل في حفرة طفرة sort() - تحقق أولاً من قائمة النوع (Type dropdown) في حقل “sorted” هذا. يحتوي Edit Fields v3 على محدد نوع لكل حقل (String/Number/Array/Object) لم يكن لدى عقدة Set القديمة. إذا تم ضبطه على أي شيء بخلاف Array، فإن n8n يحاول فرض النتيجة في هذا النوع ويصبح null فقط بدلاً من رفع خطأ. لا يزال المعاينة تبدو بخير لأنها تتخطى خطوة الإجبار هذه.

مرحباً @jxyz، كلاهما يستحق استبعاده، لكنني لا أعتقد أن أياً منهما هو السبب. أعدت بناء إعدادك على 3.4 و 3.5: الفرز في المكان يُرجع المصفوفة المرتبة بشكل صحيح في كليهما، والنوع غير المتطابق يعطيك سلسلة نصية مجبرة بدلاً من null. الشيء الوحيد الذي ينتج بالضبط {“sorted”: null} هو أن التعبير يحل إلى undefined بينما نوع الحقل هو Array.

إذاً sort() ليست ما أفسدت الأمور، المرجع هو المشكلة. احذف .sort() وأخرج المسار الخام بمفرده، محفوظ من نوع Array. إذا عاد هذا أيضاً null، فإن مصفوفتك ليست في نفس مكانها في 2.27.4 والتغيير الحقيقي يقع في اتجاه المنبع من هذه العقدة وليس في الفرز.

@Anshul_Namdev شكراً، هذا الحل البديل يعمل، كما وجدت أيضاً تقرير خلل متعلقاً بهذا:

@jxyz يسعدني أنه ساعدك، هل يمكنك التفكير في وضع علامة عليه كحل :smiley:

يعمل مرة أخرى في 2.38.0