ملف nama.properties
nama.properties هو الملف الذي يخبر التركيبة بما هي: بأي اسم تعرّف نفسها، وأين تضع ملفاتها، وأي العناوين توزّعها، وأي صمامات الأمان فيها مفتوح. ويوضع بجوار التطبيق على الخادم — في مجلد lib الخاص بـ Tomcat عادةً — ويُقرأ مرة واحدة عند الإقلاع، ولذلك لا يسري تعديله إلا بإعادة تشغيل الخادم.
وصيغته سطر مفتاح=قيمة في كل سطر:
customer=Nile Group
serverid=production-1
timezone=Africa/Cairoوهذه الصفحة تغطي الإعدادات التي يضبطها فريق الدعم فعلاً على خادم العميل. والنظام يقرأ أكثر منها بكثير، لكنها مفاتيح داخلية وُضعت لمطوّر يتتبع مشكلة بعينها — فإن لم يكن الإعداد هنا ولم يطلبه منك أحد، فلا محل له في الملف.
الإعداد المكتوب خطأ ليس خطأ
لا شيء في هذا الملف يُتحقق منه. فالمفتاح المكتوب خطأ لا يُقرأ أبداً، والقيمة التي لا يعرفها النظام تؤول إلى الافتراضي — وفي الحالتين يُقلع الخادم كالمعتاد ولا يسجل اعتراضاً. فإذا بدا أن إعداداً بلا أثر، فراجع هجاءه قبل أن تبحث في أي موضع آخر.
بأي اسم تعرّف التركيبة نفسها
| الإعداد | ما يفعله |
|---|---|
customer | اسم العميل كما يظهر في الترخيص وفي الرسائل التي يرسلها الخادم. |
serverid | هوية هذا الخادم. وهو الذي يقرر هل يُسمح لـهذه الآلة بإرسال البريد والرسائل النصية — انظر أدناه — ولذلك يجب ألا تحتفظ نسخة الاختبار أبداً بقيمة الإنتاج. |
timezone | المنطقة الزمنية للخادم. |
defaultlang | اللغة التي يجدها المستخدم قبل أن يختار. |
العناوين التي يوزعها النظام
يكتب نما روابط في البريد والتقارير وردود الجوال، ولا يستطيع أن يحزر العنوان الذي يصل منه المستخدم إليه:
| الإعداد | ما يفعله |
|---|---|
server | عنوان الخادم نفسه، مثل http://192.168.1.5:8080/. ويحتاجه التكرار وكل ما يبني رابطاً. |
guiserver | عنوان واجهة المستخدم، مثل http://192.168.1.5:8080/erp/ — وهو ما يشير إليه رابط في تقرير مطبوع أو بريد. |
approvalsServer | العنوان المستعمل لروابط الموافقات حين يُجاب عنها من خارج الشبكة. |
background-server-url | خادم المعالجة في الخلفية، حين يكون آلة مستقلة. |
والرابط الذي يُنزل المستخدم على localhost سببه في الغالب أحد هذه تُرك بلا قيمة.
البريد والرسائل وواتساب — وبخاصة على نسخة
أغلى حادث في دعم أنظمة ERP نسخةُ اختبار من قاعدة حية تبدأ في مراسلة عملاء العميل. وصمام الأمان الحقيقي هو serverid (انظر التنبيه أدناه)؛ أما هذه الإعدادات فتضيّق ما يرسله خادمٌ مسموحٌ له بالإرسال أصلاً:
| الإعداد | ما يفعله |
|---|---|
sendmailsandsms | لا يخص إلا خادماً يعمل من بيئة تطوير المبرمج: هناك يجب أن يكون true ليُرسل أي شيء. ولا أثر له على الخادم العادي. |
send-emails-only-to | كل بريد ينتجه النظام يذهب إلى هذا العنوان بدلاً من مستقبِليه الحقيقيين. |
send-sms-only-to | مرشِّح لا تحويل: لا تصل الرسالة النصية إلا للمستقبِلين الذين يحتوي رقمهم على هذه القيمة، ويُتخطّى كل من سواهم. |
send-whatsapp-only-to | كل رسالة واتساب تذهب إلى هذا الرقم بدلاً من مستقبِلها الحقيقي. |
log-sms-data | يسجّل متن كل رسالة نصية ورابط المزود، لترى ما أُرسل فعلاً. وهو تشخيصي — فأغلِقه بعدها. |
ورسائل تيليجرام وإشعارات الجوال (Push) ليس لها إعداد كهذا — فعلى النسخة لا يمنعها إلا معرّف الخادم.
استرجاع نسخة الإنتاج على خادم اختبار
صمام الأمان الحقيقي هو serverid. غيّره قبل أول إقلاع، ثم اضبط send-emails-only-to وsend-sms-only-to على عنوانك ورقمك أنت. فقاعدة الإرسال هي مطابقة serverid بقائمة إرسال البريد والرسائل من هذه الخوادم فقط في الإعدادات العامة، وتلك القائمة تسافر داخل قاعدة البيانات التي استرجعتها للتو — فالنسخة التي تحتفظ بمعرّف خادم الإنتاج هي — في نظر البرنامج — الإنتاج.
منع الدخول
| الإعداد | ما يفعله |
|---|---|
prevent-login-of-login-ids | قائمة معرّفات دخول مفصولة بفواصل يُمنع أصحابها من الدخول. |
prevent-login-of-login-ids-msg | الرسالة التي يرونها، ويحل {0} محل معرّف الدخول. |
prevent-login-of-ips | قائمة عناوين ممنوعة مفصولة بفواصل، وتُطابق ببدايتها — فـ192.168 يمنع المدى كله. |
prevent-login-of-ips-msg | الرسالة التي يرونها، وفيها {0} للعنوان. |
use-ldap-for-authentication | يسلّم التحقق من كلمات المرور إلى دليل LDAP عند العميل. |
preventViewingPublicDocuments | إذا كانت true أُخفيت المستندات المحفوظة بقيمة PUBLIC في أحد المحددات عن المستخدمين العاملين داخل قيمة محددة من ذلك المحدد، ما لم يكن عرض المستندات العامة لكل المستخدمين مفعّلاً في الإعدادات العامة. ولا تتأثر الملفات. |
prevent-login-of-login-ids=user1,user2
prevent-login-of-login-ids-msg=المستخدم {0} ممنوع من الدخول بقرار من مدير النظام
prevent-login-of-ips=192.168,214.165.10.13
prevent-login-of-ips-msg=لا يمكنك الدخول من العنوان {0}وهذه أداة فجّة لحالة طارئة — حساب تسرّب، أو مكتب يجب إغلاقه اليوم. أما التحكم المعتاد في الصلاحيات فمحله ملفات التأمين لا هذا الملف.
الملفات والمرفقات
| الإعداد | ما يفعله |
|---|---|
tempFolder | موضع كتابة الملفات المؤقتة. والافتراضي c:/nama/temp على ويندوز و/var/nama/temp على غيره. |
local-external-attachments-folder | يبقي المرفقات على القرص في هذا المجلد بدلاً من داخل قاعدة البيانات — وهو الإعداد الذي يمنع تضخم قاعدة مثقلة بالمرفقات. |
max-single-attachment-size-kb | يرفض المرفق الواحد الأكبر من هذا الحد. |
max-total-attachment-size-gb | يحدّ إجمالي حجم المرفقات. |
العمل في الخلفية
| الإعداد | ما يفعله |
|---|---|
tasks-initial-delay-minutes | يؤخر المهام المجدولة هذا العدد من الدقائق بعد الإقلاع، فلا ينشغل خادم يُعاد تشغيله فوراً. |
processors-initial-delay-minutes | مثله لمعالجات الخلفية. |
no-background-processors | يوقف معالجات الخلفية تماماً. والخادم الذي ضُبط فيه يحفظ المستندات ولا يعالجها أبداً — وهو الصواب في نسخة للتقارير، والكارثة في غيرها. |
disable-critical-errors | يوقف فحوص الأخطاء الحرجة: مستوى العزل، وغياب معرّف الخادم، ومساحة القرص، وطلبات الأعمال الفاشلة. ولا يصلح إلا لخادم عُلم أن هذه الفحوص فيه ضجيج. |
التقارير التي لا تنتهي
| الإعداد | ما يفعله |
|---|---|
kill-reports-running-more-than-seconds | يوقف التقرير الذي تجاوز هذه المدة. وهو الجواب المعتاد على تقرير شارد لمستخدم واحد يجمّد خادماً. |
error-for-running-reports-more-than-seconds | يسجّل خطأً — دون إيقاف شيء — للتقارير التي تتجاوز هذه المدة، فتجدها قبل أن يشتكي المستخدمون. |
القيم الافتراضية في المستندات الجديدة
يضبط valuedate وissuedate التاريخ الذي يفتح به المستند الجديد، ويُكتبان بصيغة dd-mm-yyyy. وهما لتدارك إدخال بيانات متأخرة — دفعة من أوراق الشهر الماضي — وينبغي حذفهما عند انتهاء التدارك، وإلا حمل كل مستند يُنشأ بعدها تاريخاً قديماً.
مستندات نقاط البيع على الخادم
مستندات نقاط البيع يكتبها تطبيق نقاط البيع، ويرفض الخادم أن يعدّلها أحد أو يحذفها يدوياً. وallowposedit=true وallowposdelete=true يرفعان هذا الرفض. وهما أداة تصحيح لا إعداد: تفتحه، وتصلح المستند، ثم تغلقه.
تشخيصات قد يُطلب منك تشغيلها
كل واحد من هذه يرفع صوت السجل في ناحية واحدة. شغّله أثناء إعادة إنتاج المشكلة ثم أغلِقه فوراً — فهي في التركيبة المزدحمة تملأ القرص سريعاً.
| الإعداد | ما يسجّله |
|---|---|
detailederror | تفصيل الخطأ كاملاً بدلاً من الرسالة المختصرة للمستخدم. |
logws | نداءات خدمات الويب الصادرة والواردة. |
log-failed-login-details | سبب فشل كل محاولة دخول. |
logreplication / debugreplication | رسائل التكرار، والنسخة المفصّلة منها. |
debugATTENDANCE | حساب حضور الموارد البشرية خطوة بخطوة. |
log-to-files-in-debug | يكتب السجلات في ملفات حتى حين يعمل الخادم من بيئة التطوير. |
ملف replication.properties
الموقع الذي يشارك في التكرار (Replication) يحمل ملفاً ثانياً بجوار الأول اسمه replication.properties:
| الإعداد | ما يفعله |
|---|---|
enable | هل يعمل التكرار في هذا الموقع أصلاً. |
siteid | كود هذا الموقع. وبدونه يرفض التكرار أن يبدأ. |
sitesequence | رقم تسلسل الموقع، ويُستعمل عند توليد الأكواد فلا يولّد موقعان الكود نفسه. وهو مطلوب. |
headofficeurl | عنوان المركز الرئيسي الذي يخاطبه هذا الموقع. |
headofficeip | عنوان المركز الرئيسي حين يُعطى عنواناً مجرداً لا رابطاً كاملاً. |
enable=true
siteid=001
sitesequence=1
headofficeurl=http://192.168.1.5:8080/