الصلاحيات على مستوى السجلات (المحددات والفلاتر)
منح المستخدم مطالعة القوائم على فواتير المبيعات يجيب عن سؤال "هل يتصفح الفواتير؟". هذه الصفحة تجيب عن السؤال التالي: أي الفواتير تحديداً؟ يضيّق نظام نما رؤية السجلات عبر أربع آليات مستقلة تعمل فوق فحوصات الصلاحيات:
- المحددات (Dimensions) — نظام النطاقات التنظيمية
- قيود سجلات المنشئ — "ما أنشأته أنا فقط"
- الفلاتر الإضافية (Extra Filters) — فلاتر صفوف معرّفة لكل نوع
- صلاحيات السجلات — وسم سجلات بعينها بصلاحية مطلوبة
المحددات (Dimensions)
كل سجل في نما تقريباً يحمل خمسة محددات تنظيمية — وأما الملفات الرئيسية نفسها والمحدد المركب الذي ينوب عن عدة محددات فتجدها في المحددات والمحددات المركبة:
| المحدد | English |
|---|---|
| الشركة | Legal Entity |
| الفرع | Branch |
| الإدارة | Department |
| القطاع | Sector |
| المجموعة التحليلية | Analysis Set |
كل محدد على السجل إما أن يحمل قيمة محددة أو يُترك عام (PUBLIC). والمحدد العام معناه "لا تقييد على هذا المحور".
المستخدمون يحملون المحددات الخمسة نفسها مرتين، ولكل نسخة وظيفة مختلفة:
- محددات سجل المستخدم نفسه (في رأس الشاشة، كأي ملف رئيسي) تعرّف الحد الأقصى لما يمكن أن يُحصر فيه المستخدم يوماً.
- محددات الدخول (Login Context) في إعدادات المستخدم تعرّف ما يعمل المستخدم بصفته الآن: لأي شركة وفرع... تنتمي جلسته الحالية.
عندما ينشئ المستخدم مستنداً، يختمه النظام تلقائياً بمحددات دخول الجلسة. وعندما يتصفح أو يبحث، تُفلتر السجلات: السجل يظهر عندما يكون كل محدد من محدداته عاماً أو متوافقاً مع محددات جلسة المستخدم. والملفات الرئيسية التي يعتبرها النظام "عامة للجميع" معفاة من فلترة المحددات.
تخفيف قواعد المحددات
هناك مفتاحان متصلان بهذا الأمر لكنهما خارج الصلاحيات، في أعدادات الحقول و الشاشات: يمكنك إعلان نوع سجل إضافي عاماً على مستوى المحددات فيتصرف كالملفات الرئيسية العامة المذكورة أعلاه، كما يمكنك إيقاف فحص توافق المحددات على حقل مرجع بعينه حين يحتاج المستند فعلاً إلى الإشارة إلى سجل من فرع أو إدارة أخرى.
هذا الفحص يجري عند حفظ المستند. أما إن كانت المشكلة قبل ذلك — حقل المرجع لا يعرض سجل الفرع الآخر أصلًا فلا يستطيع المستخدم اختياره — فالإعداد في شاشة أخرى: فلترة الحقول ترخي التضييق بالمحددات لحقل مرجع واحد في شاشة واحدة. والمستند الذي يحتاج إلى الوصول عبر الفروع يحتاج غالبًا إلى الاثنين.
محددات الدخول وجدول محددات الدخول البديلة
في شاشة المستخدم ستجد:
- محددات الدخول — مجموعة المحددات الخمسة الافتراضية التي تبدأ بها الجلسة.
- جدول محددات الدخول — مجموعات كاملة بديلة يستطيع المستخدم التبديل بينها عند الدخول (مثلاً محاسب يخدم فرعين).
- منع تعديل محددات الدخول (Prevent Modify Context) — عند تفعيلها لا يستطيع المستخدم الاختيار بحرية عند الدخول؛ بل يُحصر كل محدد في القيم المذكورة في الرأس وسطور الجدول. ولا يُحفظ سجل المستخدم حينها حتى تكون مجموعة واحدة على الأقل (الرأس أو أحد السطور) مكتملة المحددات الخمسة، ويجب أن تقع كل قيمة داخل محددات سجل المستخدم نفسه.
- عند عدم تفعيلها تعمل محددات الدخول كافتراضي فحسب، ويستطيع المستخدم تعديل محددات جلسته بعد الدخول (ضمن محددات سجله) من مبدّل المحددات في الشريط العلوي — راجع الشريط العلوي وقائمة المستخدم.
مع تفعيل منع تعديل محددات الدخول يكون الرأس وسطور الجدول معاً مجرد قائمة بالقيم المسموح بها، ويُفحص كل محدد وحده: القيمة مسموح بها إن ظهرت في أي سطر، أياً كانت المحددات الأخرى في ذلك السطر. لنفترض أن سجل محاسب فيه سطران:
| السطر | الشركة | الفرع |
|---|---|---|
| 1 | النيل للتجارة | القاهرة |
| 2 | النيل للأغذية | الإسكندرية |
يستطيع المحاسب الدخول بالنيل للتجارة مع القاهرة، وبالنيل للأغذية مع الإسكندرية، وكذلك بالنيل للتجارة مع الإسكندرية: فالشركة في السطر 1 والفرع في السطر 2، وهذا الخلط بين السطور مقصود. فلا حاجة إلى سطر لكل تركيبة؛ تكفي قائمة قصيرة بالقيم المسموح بها. أما القيمة التي لا تظهر في أي سطر، كفرع الجيزة هنا، فتُرفض بالرسالة:
«معلومات الدخول غير صحيحة. فضلاً حاول الدخول مرة أخرى»
ابدأ التقييد من سجل المستخدم
ضبط محددات سجل المستخدم (مثلاً الفرع = جدة) هو السياج الأقوى: كل محددات دخول — وبالتالي كل ما ينشئه ويراه — يجب أن يقع داخلها. أما ترك محددات المستخدم عامة والاعتماد على محددات الدخول وحدها فيمنح مرونة، مقابل قدرة المستخدم على تبديل سياقه.
قيود "السجلات التي أنشأها فقط"
ثلاث علامات على سطر الصلاحيات الأساسية (على مستوى الملف أو المستخدم — راجع ملف الصلاحيات) تربط الصلاحية بمنشئ السجل:
- مطالعة السجلات التي أنشأها فقط (View Only Created Records) — قوائم المستخدم وبحثه وشاشاته لا تعرض إلا السجلات التي أنشأها هو.
- تعديل السجلات التي أنشأها فقط (Edit Only Created Records) — سجلات الآخرين تفتح للقراءة فقط.
- حذف السجلات التي أنشأها فقط (Delete Only Created Records) — وعلامة مماثلة للمسودات وحدها.
وإعدادان على مستوى المستخدم يعيدان تعريف مفهوم "المنشئ" نفسه:
- اعتبار مستخدمين كمنشئ (Treat-as users in first author): جدول في صفحة صلاحيات المستخدم يسرد مستخدمين آخرين تُعامل سجلاتهم كأن هذا المستخدم أنشأها — مثالي لمشرف يجب أن يرى مستندات فريقه كله تحت سياسة مطالعة السجلات التي أنشأها فقط.
- عدم الاستخدام كمنشئ (Do not use as first author): هذا المستخدم لا يُسجل أبداً كمنشئ أول للمستندات (مفيد لحسابات الخدمة المشتركة).
ومخرج طوارئ واحد: السماح بمطالعة سجلات الآخرين عند البحث يجعل سجلات الآخرين تظهر في نتائج البحث المرجعي حتى عندما لا يستطيع المستخدم تصفحها — فموظف التحصيل الذي لا يرى إلا مقبوضاته يستطيع مع ذلك اختيار أي عميل يشير إليه السند.
الفلاتر الإضافية (Extra Filters)
الفلاتر الإضافية فلاتر صفوف لكل نوع، تُعرّف في صفحة Extra Filters على ملف الصلاحيات أو المستخدم (سطور المستخدم تتقدم على سطور الملف لنفس النوع).

كل سطر يستهدف نوعاً أو قائمة أنواع، ثم يعرّف الفلتر بإحدى طريقتين:
1. الحقل الذي يجب أن يطابق الذمة المتعلقة
الصيغة الأبسط والأكثر استخداماً. سجل المستخدم يحمل مرجع الذمة المتعلقة (Related Entity) — عادة الموظف، لكنها قد تكون عميلاً أو مورداً أو مندوب بيع وغير ذلك. أدخل معرف حقل هنا، فلا تظهر إلا السجلات التي يساوي هذا الحقل فيها الذمة المتعلقة بالمستخدم.
مثال: على سطر فاتورة المبيعات ضع الحقل salesMan. المستخدم الذي ذمته المتعلقة هي مندوب البيع أحمد لن يرى الآن إلا الفواتير التي حقل المندوب فيها أحمد.
2. Dynamic Tempo Criteria
عندما لا تكفي مطابقة حقل واحد، اكتب تعبير معايير في عمود Dynamic Tempo Criteria. يدعم التعبير صيغة قوالب Tempo، فيستطيع الإشارة إلى بيانات المستخدم الحالي وتركيب عدة شروط معاً. استخدمه لقواعد مثل "فواتير العملاء الذين محصّلهم هو موظف المستخدم الحالي فقط" أو رؤية مقيدة بفترات زمنية.
أين تُطبق الفلاتر الإضافية
تُضاف الفلاتر الإضافية إلى القوائم والبحث والتقارير المبنية على النوع — ويُعاد فحصها عند فتح سجل مباشرة (عبر رابط مثلاً)، فلا يستطيع المستخدم الالتفاف عليها بتخمين كود السجل أو عنوانه. والاستثناء الوحيد هو البحث داخل حقل مرجع يغطيه سطر في جدول مرشحات إضافية عند البحث: هناك يُستعمل فلتر السطر نفسه بدلاً منها، كما يلي.
مرشحات إضافية عند البحث (Search Extra Filters)
أحياناً يكون الفلتر المناسب للقائمة خاطئاً داخل حقل بعينه. فالمحصّل الذي لا يُظهر له الفلتر الإضافي إلا العملاء الذين يحصّل منهم، يظل محتاجاً إلى اختيار أي عميل في فرعه في حقل العميل بفاتورة المبيعات. وهذا ما يعالجه الجدول الثاني في صفحة الفلاتر الإضافية: مرشحات إضافية عند البحث (تلغي المرشحات الإضافية العادية عند الانطباق). وهو موجود في ملف الصلاحيات وفي سجل المستخدم.
| العمود | المعنى |
|---|---|
| تعمل فقط عند البحث داخل الحقول (Works Only When Searching Inside Fields) | حقول المرجع التي ينطبق عليها السطر، بمعرّف الحقل — customer مثلاً. افصل بين عدة حقول بفواصل. واتركه فارغاً ليغطي كل الحقول في الشاشات المذكورة بعده. |
| تعمل فقط عند البحث داخل النوع (Works Only When Searching Inside Type) | الشاشة التي يُفتح منها البحث — فاتورة المبيعات في المثال. |
| تعمل فقط عند البحث داخل قائمة الأنواع (Works Only When Searching Inside Types List) | الشيء نفسه، لكل الأنواع في سجل قائمة أنواع. |
| المعايير (Criteria) | تعريف معايير يجب أن تستوفيه السجلات المعروضة. |
| Dynamic Tempo Criteria | تعبير معايير بصيغة Tempo، كما في جدول الفلاتر الإضافية. |
كيف يُستعمل السطر:
لا ينطبق إلا أثناء بحث المستخدم داخل حقل مرجع. أما القوائم والتقارير والشاشات الأخرى فتبقى عليها الفلاتر الإضافية العادية.
إذا طابق سطرٌ الحقلَ والشاشة، فمعاييره هي التي تحدد ما يعرضه البحث، ويُتجاوز الفلتر الإضافي العادي لذلك النوع في هذا البحث. أما بقية صلاحيات السجلات، مثل صلاحية المطالعة ومطالعة السجلات التي أنشأها فقط، فتظل مطبقة.
تُفحص سطور المستخدم نفسه قبل سطور ملف الصلاحيات، وأول سطر مطابق هو الفائز.
املأ تعمل فقط عند البحث داخل النوع أو تعمل فقط عند البحث داخل قائمة الأنواع: فالبحث في شاشة سجل لا يطابق سطراً إلا عبر نوع الشاشة.
كتابة الكود يدوياً لا تلتف عليه. فالسجل الذي يستبعده السطر يُرفض بالرسالة:
«السجل {0} غير مسموح به في هذا الحقل طبقاً للمرشحات الإضافية عند البحث»
ولا تُطبق هذه الفلاتر على المستخدمين الذين يحمل ملف صلاحياتهم الصلاحيات الكاملة.
صلاحيات السجلات (تغيير الصلاحية على مستوى السجل)
أحياناً تكون الحساسية في سجل بعينه لا في النوع كله: عقد واحد محدد، أو حفنة قيود يومية سرية. لهذا يمكن وسم سجلات بعينها بسجل نوع صلاحيات (Capability Type) للمطالعة/التعديل:
- عرّف سجل نوع صلاحيات — راجع ملف الصلاحيات.
- امنح صلاحية تغيير الصلاحية (Can Change Capability) على سطر الصلاحيات الأساسية لمن يحق لهم وسم السجلات.
- يستخدم هؤلاء إجراء تغيير الصلاحية على السجل لربطه بالصلاحية.
- من تلك اللحظة لا يرى السجلَ الموسوم أو يعدّله إلا من يحمل تلك الصلاحية (عبر سطور صلاحياته المخصصة)؛ أما السجلات غير الموسومة فتبقى ظاهرة لكل من يملك الصلاحيات العادية.
وتوفر الإعدادات العامة مفاتيح لتجاهل صلاحيات السجلات في القوائم حيث تكون الكلفة غير مرغوبة.
السجلات الممنوعة من الاستعمال
يمكن وسم الملف الرئيسي بعلامة منع الاستعمال — صنف موقوف، أو عميل لا يُباع له بعد اليوم — وملف الصلاحيات هو الذي يقرر من يظل يراه. والعمود اسمه عرض السجلات الممنوعة من الاستعمال في جدول الصلاحيات الأساسية، بقيمة واحدة لكل نوع كيان: Display أو Hide أو Same As Config. وبهذا يظل مدير المشتريات يفتح تاريخ مورد ممنوع بينما لا يستطيع مدخل البيانات وضع المورد نفسه على أمر شراء جديد.
وصفحة منع الاستعمال هي التي تغطي العلامة نفسها، وكل ما تمنعه، وكل موضع يُقرأ فيه الإعداد.