متى تستخدم تعبيرات النموذج
استخدم تعبير النموذج لاشتقاق قيمة افتراضية أو ضبط الرؤية أو قابلية التعديل أو حساب قيمة أو صياغة نص إجراء أو البحث عن بيانات خدمة لتجربة النموذج الحالية. ليس التعبير نظام صلاحيات على الخادم ولا بديلاً عن اعتماد مسار العمل. يوجد الكتالوج الكامل في دوال النماذج ومرشحات البحث. يشرح هذا الدليل الاستخدام الآمن لهذه الدوال.
جذور النموذج
اكتب تعبيرات صغيرة ومحلية. يجب أن يعتمد شرط الحقل غالباً على إخوته أو قيمة نموذج واضحة لا على مسار طويل عبر قوائم متكررة عديدة.
$.status و$.request_amount.value مدعومة، ويقترح محرر التعبيرات بدائلها باستخدام $values.
أنماط القوائم المتكررة
في التكرار الحلقي يكون$item عنصر المصدر و$index موضعه الصفري. وفي التكرار الذي يتحكم فيه المستخدم استخدم قيم المثيل/الإخوة الموجودة في بنية النموذج الحالية.
فحوص الواجهة ليست تفويضاً
تستطيعhasVerb وhasVerbOnRecord وhasScope وhasAnyScope تكييف ما يراه العضو في النموذج، لكنها لا تمنح صلاحية. تعيد دوال الفعل true أثناء تقييم الخادم، لذلك لا يمكن أن تكون تعبيراتك التي تستخدمها وسيلة الإنفاذ الوحيدة.
البحث عن السجلات: اجعله ضيقاً وخاصاً وغير مخوّل
getRecord وgetRecords دالتا بيانات مريحتان للنموذج. قد تعيدان نتيجة فارغة/شبيهة بـ null عندما لا يتوفر سياق النموذج أو تنتهي مهلة البحث. يعمل البحث الخلفي عبر مسار بيانات على مستوى النظام؛ فهو لا يرشح النتيجة وفق صلاحيات السجل أو الحقل العادية للمشارك الحالي أو دوره أو نطاقه. وليس له وسيط يحد عدد نتائج البحث، لذلك قد يحمل المرشح الواسع كل السجلات المطابقة.
وهذا يفرض ثلاثة حدود واضحة:
- يمكن لـ
hasVerb*وhasScope*تغيير العرض فقط؛ ولا يخوّلان إجراءً. - لا يجوز أبداً أن تقرر
getRecordوgetRecordsما إذا كان المشارك مخولاً أو مستحقاً للبيانات. - لا يجوز عرض نتيجة البحث لمشارك عام أو غير مخول. ليس الحقل المخفي آلية تحكم بالوصول.
بناء المرشحات بـ f.
تبني دوال f. كائن مرشح قاعدة بيانات لـgetRecords، ولا ترشح قائمة عشوائية في الذاكرة. النمط الأوضح هو اقتران صغير:
f._in عندما تحتاج دالة انتماء مقروءة لا لبس فيها. اختبر مفاتيح الحقول وقيم الخيارات المخزنة بدقة، ولا تنشئ بحثاً واسعاً ثم تخفي النتائج بتعبير لاحق.
أيام العمل ومناوبات الخدمة
يمكن أن تستخدمisWeekend(date, entityId?) وisWeekday(date, entityId?) أيام العمل المضبوطة للمناوبة عند توافر كيان وبيانات خدمة مناسبين. وعند غياب تلك البيانات تعودان إلى السبت/الأحد. اعتبرهما دالتين للنموذج العادي المتصل واختبر جدول المنظمة المستهدفة.
حدود النموذج غير المتصل
تحظر النماذج غير المتصلةgetRecord وgetRecords وhasVerbOnRecord وhasVerb وhasScope وhasAnyScope، كما تقيد ميزات نموذج مدعومة بالبيانات. اجعل تعبيرات النموذج غير المتصل ذاتية الاكتفاء: قيم الحقول والشروط البسيطة والدوال العامة الحتمية.

