عقدة switch
توجّه عقدة switch الرسائل بحسب محتواها أو بنيتها أو شروط أخرى، وتُستخدم لبناء منطق شرطي في التدفقات.
إعدادات عقدة switch

1. Name
اسم العقدة.
يظهر الاسم في مساحة العمل ويساعدك على التعرّف على العقدة.
إذا تركت الحقل فارغًا، فسيكون اسم العقدة switch.
مثال:
- اسم العقدة:
check status
2. Property
خاصية كائن الرسالة msg التي تُفحص الشروط عليها. القيمة الافتراضية هي payload.
مثال:
msg.payloadmsg.topicmsg.device.temperature
تُدعم أيضًا خصائص السياق (flow، global).
3. Check
- check all rules (الخيار الافتراضي):
إذا طابقت الرسالة عدة شروط، فقد تُرسل إلى عدة مخرجات. - stop after first match:
تُرسل الرسالة إلى أول مخرج يتحقق شرطه فقط.
4. Rules
تحدد القواعد منطق التوجيه. ترتبط كل قاعدة بأحد مخرجات العقدة، فعدد المخرجات يساوي عدد القواعد. أما عدد المخرجات التي تذهب إليها الرسالة عند تطابق أكثر من قاعدة، فيحدده الحقل Check.
للقاعدة حقلان: Condition لنوع الشرط، وValue للقيمة التي تُجرى المقارنة معها. لا يظهر الحقل Value مع الشروط equals true وequals false وequals null وnot equals null وempty وnot empty.
أنواع الشروط المتاحة:
==: يتحقق مما إذا كانت القيمة مساوية.!=: يتحقق مما إذا كانت القيمة غير مساوية.<: يتحقق مما إذا كانت القيمة أصغر.<=: يتحقق مما إذا كانت القيمة أصغر من أو تساوي.>: يتحقق مما إذا كانت القيمة أكبر.>=: يتحقق مما إذا كانت القيمة أكبر من أو تساوي.has key: يتحقق مما إذا كان الكائن يحتوي على المفتاح المحدد.between: يتحقق مما إذا كانت القيمة تقع ضمن النطاق المحدد (مع الحدّين).contains: يتحقق مما إذا كانت السلسلة النصية أو المصفوفة تحتوي على القيمة المحددة.matches regex: يتحقق مما إذا كانت السلسلة النصية تطابق التعبير النمطي.equals true: يتحقق مما إذا كانت القيمة تساويtrue.equals false: يتحقق مما إ ذا كانت القيمة تساويfalse.equals null: يتحقق مما إذا كانت القيمة تساويnull.not equals null: يتحقق مما إذا كانت القيمة لا تساويnull.is of type: يتحقق مما إذا كانت القيمة من النوع المحدد (مثلstringأوnumberأوboolean).empty: يتحقق مما إذا كانت السلسلة النصية أو المصفوفة أو الكائن فارغًا.not empty: يتحقق مما إذا كانت السلسلة النصية أو المصفوفة أو الكائن غير فارغ.else: يتحقق إذا لم يتحقق أي من الشروط الأخرى.
مثال:
- Condition:
>، Value:50
المدخلات
تستقبل العقدة الكائن msg.
يحدد الحقل Property الخصائص التي تُفحص.
المخرجات
ترسل العقدة الرسالة msg إلى المخرج الذي يطابق شرطه.
إذا لم تطابق الرسالة أي شرط، فلا تُرسل إلى أي مخرج.
أمثلة الاستخدام
المثال 1: تصفية بيانات درجة الحرارة
المهمة:
تقسيم البيانات إلى ثلاث فئات: درجة حرارة منخفضة وعادية ومرتفعة.
التدفق:
[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]
إعدادات عقدة switch:
- Property:
msg.payload - الشروط:
is less than 10← المخرج 1is between 10 and 30← المخرج 2is greater than 30← المخرج 3
النتيجة:
تُوجَّه درجات الحرارة بحسب قيمها.