Skip to content
English

معايير من المحلل النصي (دليل معايير النص)

يوفر نظام نما ERP آلية مرنة للتصفية النصية تتيح للمستخدمين تعريف معايير الفلترة باستخدام صيغة بسيطة ومنظمة.

يتكوّن كل شرط فلترة في نظام نما ERP من المكونات التالية:

  • Field ID: الخاصية (الحقل) المراد تطبيق الفلتر عليها.

  • Operator: أحد الخيارات التالية:

    • Equal, NotEqual
    • GreaterThan, GreaterThanOrEqual
    • LessThan, LessThanOrEqual
    • StartsWith, NotStartsWith
    • EndsWith, NotEndWith
    • Contains, NotContain
    • In, NotIn (انظر قيم متعددة مع In/NotIn أدناه)
    • OpenBracket, CloseBracket (تُستخدم لتجميع التعبيرات، ولا تتطلب Field ID أو قيمة)
  • Compared Value: القيمة المراد المقارنة بها.

  • Logical Relationship: الرابط المنطقي للشرط التالي (AND أو OR).

المعاملات الشرطية (لاحقة OrEmpty)

يمكن إضافة اللاحقة OrEmpty لأي معامل لجعل الشرط اختياريًا عندما لا تُوفَّر قيمة. إذا كانت القيمة فارغة، يُتجاهل الشرط بالكامل.

على سبيل المثال:

  • EqualOrEmpty - يطبّق Equal فقط إذا كانت القيمة موجودة
  • ContainsOrEmpty - يطبّق Contains فقط إذا كانت القيمة موجودة
  • GreaterThanOrEqualOrEmpty - يطبّق GreaterThanOrEqual فقط إذا كانت القيمة موجودة

هذا مفيد لبناء فلاتر ديناميكية قد تحتوي بعض المعايير على قيم أو لا:

code,StartsWithOrEmpty,{userInput},AND;

إذا كان {userInput} فارغًا، يُتجاهل هذا الشرط كليًا.

أوامر خاصة

distinct-values: أضف هذا في سطر منفصل للحصول على سجلات فريدة فقط:

distinct-values
code,StartsWith,01,AND;

قيم متعددة مع In/NotIn

تتيح معاملات In وNotIn مطابقة حقل مع قيم متعددة. لتحديد قيم متعددة في صيغة معايير النص، افصل بينها بالمحدد الخاص @A=@X.

الصيغة:

fieldID,In,value1@A=@Xvalue2@A=@Xvalue3,AND;

أمثلة:

تصفية العناصر التي حالتها "Active" أو "Pending" أو "Review":

status,In,Active@A=@XPending@A=@XReview,AND;

تصفية السجلات التي رمز الفئة فيها ليس "CAT01" أو "CAT02":

category.code,NotIn,CAT01@A=@XCAT02,AND;

التصفية بمعرّفات مرجعية متعددة:

warehouse.id,In,id1@A=@Xid2@A=@Xid3,AND;

WARNING

يجب استخدام المحدد @A=@X بالضبط كما هو موضح (حساس لحالة الأحرف). لا تضف مسافات حول المحدد.

الصيغة

يُمثَّل كل شرط فلترة كسطر نصي يتكون من أربعة أجزاء مفصولة بفاصلات:

fieldID,operator,value,logic;

يمكن فصل الشروط المتعددة بفاصلات منقوطة (;) أو أسطر جديدة. كلا الصيغتين صالحتان:

الصيغة في سطر واحد:

code,StartsWith,01,AND;name1,Contains,abc,AND;

الصيغة متعددة الأسطر:

code,StartsWith,01,AND
name1,Contains,abc,AND

القيم الافتراضية

  • إذا حُذف operator، يكون الافتراضي Equal
  • إذا حُذف logical relationship، يكون الافتراضي AND

وهذا يعني أن أبسط صيغة للفلتر هي:

fieldID,,value

وهي مكافئة لـ fieldID,Equal,value,AND

صيَغ حقول خاصة

  • حقول التاريخ: يجب أن تكون الصيغة dd-MM-yyyy

  • حقول التاريخ والوقت: يجب أن تكون الصيغة yyyy-MM-ddTHH:mm:ss.SSS (يمكن أن تكون الميلي ثانية 000)

  • حقول المرجع: يُكتب المرجع كسلسلة مفصولة بنقطتين:

    <id>:<entityType>:<code>
    • جزء code اختياري.
    • يمكن بديلًا الإشارة إلى أجزاء محددة باستخدام .id أو .code للوضوح والبساطة.

مثال

csv
code,StartsWith,01,AND;
name1,Contains,abc,AND;
date1,Equal,06-07-2025,AND;
creationDate,GreaterThanOrEqual,2025-07-06T13:05:00.000,AND;
n1,Equal,10,AND;
section,Equal,ffff0001-79e2-11f2-8800-0000ff79c2dd:ItemSection:00,AND;

يمكن أيضًا التعبير عن السطر الأخير بصيغتين بديلتين:

csv
section.id,Equal,ffff0001-79e2-11f2-8800-0000ff79c2dd,AND;
section.code,Equal,00,AND;

القيم الديناميكية

بالإضافة إلى القيم الثابتة، يدعم نظام نما ERP قيمًا ديناميكية تُحسب في وقت التشغيل. وهي مفيدة بشكل خاص للفلاتر المستندة إلى التاريخ والمعايير الخاصة بالمستخدم.

القيم الديناميكية للتاريخ

يمكن استخدام القيم الديناميكية التالية بدلًا من التواريخ الثابتة:

القيمةالوصف
$today()التاريخ الحالي
$now()التاريخ والوقت الحاليان
$monthStart()أول يوم في الشهر الحالي
$monthEnd()آخر يوم في الشهر الحالي
$previousMonthStart()أول يوم في الشهر الماضي
$previousMonthEnd()آخر يوم في الشهر الماضي
$nextMonthStart()أول يوم في الشهر القادم
$nextMonthEnd()آخر يوم في الشهر القادم
$yearStart()أول يوم في السنة الحالية
$yearEnd()آخر يوم في السنة الحالية
$previousYearStart()أول يوم في السنة الماضية
$previousYearEnd()آخر يوم في السنة الماضية
$nextYearStart()أول يوم في السنة القادمة
$nextYearEnd()آخر يوم في السنة القادمة
$quarterStart()أول يوم في الربع الحالي
$quarterEnd()آخر يوم في الربع الحالي
$halveStart()أول يوم في النصف الحالي من السنة (6 أشهر)
$halveEnd()آخر يوم في النصف الحالي من السنة
$thirdStart()أول يوم في الثلث الحالي (4 أشهر)
$thirdEnd()آخر يوم في الثلث الحالي

القيم النسبية للتاريخ

يمكنك أيضًا حساب تواريخ نسبة إلى اليوم:

القيمةالوصف
$todayPlusDays(N)اليوم زائد N أيام
$todayMinusDays(N)اليوم ناقص N أيام
$todayPlusWeeks(N)اليوم زائد N أسابيع
$todayMinusWeeks(N)اليوم ناقص N أسابيع
$todayPlusMonths(N)اليوم زائد N أشهر
$todayMinusMonths(N)اليوم ناقص N أشهر
$todayPlusYears(N)اليوم زائد N سنوات
$todayMinusYears(N)اليوم ناقص N سنوات

قيم سياق المستخدم

هذه القيم الديناميكية تُشير إلى المستخدم الحالي المسجّل دخوله:

القيمةالوصف
$currentuseridمعرّف المستخدم الحالي المسجّل دخوله
$currentempidمعرّف الموظف المرتبط بالمستخدم الحالي

مثال على القيم الديناميكية

csv
date1,GreaterThanOrEqual,$monthStart(),AND;
date1,LessThanOrEqual,$monthEnd(),AND;
createdBy.id,Equal,$currentuserid,AND;
dueDate,LessThanOrEqual,$todayPlusDays(30),AND;

يُصفّي هذا المثال السجلات حيث:

  • date1 ضمن الشهر الحالي
  • createdBy هو المستخدم الحالي المسجّل دخوله
  • dueDate خلال الـ 30 يومًا القادمة

TIP

يمكنك استخدام شاشة Criteria Definition لبناء شروط الفلترة المطلوبة بصريًا عبر واجهة النظام. بعد تعريف المعايير المطلوبة من خلال واجهة المستخدم، اضغط على زر Convert to Text لتوليد التمثيل النصي المكافئ. يمكن بعد ذلك استخدام هذا النص مباشرةً في APIs أو سكريبتات الأتمتة.