حين لا يتوفر موصل لنظام ما، يستطيع نارفن قراءة دفاتره من قاعدة البيانات مباشرة: PostgreSQL أو MySQL أو MariaDB أو Microsoft SQL Server، عبر اتصال مشفّر وبمستخدم لا يستطيع إلا القراءة. وتكتب استعلام SELECT واحدًا لكل جدول من مجموعة البيانات القياسية في نارفن، فيُربط أي هيكل دون برمجة، ولا يكتب نارفن في قاعدة البيانات أبدًا.
كيف يعمل اتصال SQL؟
تعطي نارفن استعلامات لا صلاحية على الجداول. يعيد كل استعلام أسطرًا بأعمدة قوالب استيراد Excel وCSV نفسها، بأسماء الأعمدة العربية أو الإنجليزية أو بمفاتيحها مثل account_code. ويشغّلها نارفن حسب الجدول الذي تحدده، ويحمّل الأسطر تمامًا كما يحمّل الاستيراد.
| الاستعلام | مطلوب | ما يأتي به |
|---|---|---|
| الحسابات | نعم | دليل الحسابات |
| أسطر القيود | نعم | كل سطر مرحّل، بالتاريخ والحساب والمدين والدائن |
| فواتير العملاء وفواتير الموردين | لا | البنود المفتوحة، مع الإشعارات الدائنة |
| بنود الفواتير | لا | مبالغ البنود مع فئة ضريبة القيمة المضافة ونسبتها ومبلغها، لإقرار الضريبة وفحوص الفوترة الإلكترونية |
| مقبوضات العملاء ومدفوعات الموردين | لا | ما بقي غير مخصص، والفاتورة التي تسددها كل دفعة |
| العملاء والموردون | لا | الأسماء والأرقام الضريبية وبيانات التواصل والدولة والشروط |
| أسعار الصرف | لا | أسعار مؤرخة |
| الشركات | لا | الرمز والاسم والعملة والدولة، حين تضم قاعدة البيانات عدة شركات |
كيف تبقى قاعدة البيانات آمنة؟
- الاتصال مشفّر بـ TLS، ويُتحقق من الشهادة مقابل اسم الخادم.
- تنشئ مستخدمًا لقاعدة البيانات لا يستطيع إلا تنفيذ SELECT على الجداول التي تستخدمها استعلاماتك.
- يعمل كل استعلام داخل معاملة للقراءة فقط حيث تدعم قاعدة البيانات ذلك.
- ويرفض نارفن أيضًا أي استعلام ليس عبارة SELECT أو WITH واحدة، أو يحوي كلمات تغيّر البيانات أو تشغّل إجراءات أو تصل إلى خارج قاعدة البيانات.
- تُشفَّر كلمة المرور عند حفظها ولا تُعرض مرة أخرى، ولا يراها الذكاء الاصطناعي.
- يجب أن يكون للخادم عنوان عام، فنارفن يرفض العناوين الخاصة والمحلية، لذا اسمح بعنوانه في جدار الحماية.
هل تقرأ كل مزامنة كل شيء؟
فقط إذا أردت ذلك. ضع :since في استعلام القيود أو الفواتير، مثل WHERE modified >= :since، فتقرأ المزامنات التالية ما تغيّر منذ آخر مزامنة فقط. ومن دونه تقرأ كل مزامنة كل شيء، وتُعلَّم القيود التي لم يعد الاستعلام يعيدها بأنها حُذفت. وإذا كانت المزامنة ستحذف أكثر من نصف ما هو محمّل، فلا تحذف شيئًا وتنبّهك بدلًا من ذلك. والأسطر التي لا تجتاز فحوص الاستيراد تُستبعد وتُذكر في تنبيهات المزامنة.
وتعمل الجداول كل 15 أو 30 دقيقة، أو كل 1 إلى 12 ساعة، أو يوميًا أو أسبوعيًا بتوقيتك، أو يدويًا فقط.
هل يمكن أن تضم قاعدة بيانات واحدة عدة شركات؟
نعم. أضف استعلام الشركات وعمود رمز الشركة إلى الاستعلامات الأخرى، فترتبط كل شركة بشركتها في نارفن بالعملة نفسها. وقاعدة البيانات ذات الشركة الواحدة تستطيع حذف العمود وذكر رمز الشركة وعملتها ودولتها في الاتصال. والأسطر بعملة أخرى تحمل سعر صرفها، كما في قوالب الاستيراد.
كيف تربط قاعدة بيانات؟
- أنشئ مستخدمًا للقراءة فقطامنحه SELECT على الجداول التي تستخدمها استعلاماتك، ولا شيء غير ذلك.
- اكتب الاستعلاماتابدأ بالحسابات وأسطر القيود، وسمِّ أعمدتك بمفاتيح القوالب، مثل SELECT code AS account_code.
- أضف الاتصالاختر نوع قاعدة البيانات وأدخل الخادم والمنفذ واسم قاعدة البيانات والاستعلامات والمستخدم. ويختبر نارفن الاتصال ويعرض الشركات التي يجدها.
- شغّل المزامنة الأولى وراجعهاقارن ميزان المراجعة في نارفن بميزان نظامك، واقرأ التنبيهات، ثم أضف الاستعلامات الاختيارية.
أسئلة شائعة
هل يستطيع نارفن تغيير شيء في قاعدة بياناتنا؟
لا. يجب ألا يستطيع المستخدم إلا القراءة، ويعمل كل استعلام للقراءة فقط حيث تدعم قاعدة البيانات ذلك، ويرفض نارفن أي استعلام ليس عبارة SELECT واحدة.
هل علينا إعادة هيكلة جداولنا؟
لا. تعيد استعلاماتك تسمية الأعمدة وتشكيلها بأعمدة قوالب نارفن، وتبقى الجداول كما هي.
ما قواعد البيانات المدعومة؟
PostgreSQL وMySQL وMariaDB وMicrosoft SQL Server.