إرسال البيانات الأساسية والفواتير إلى الوطنية
لا يوجد زر إرسال على شاشة إعدادات ربط الوطنية. البيانات لا تخرج من نما إلا عندما يعمل أحد ثلاثة إجراءات جاهزة:
| الإجراء | ماذا يرسل | أين يعمل |
|---|---|---|
EASendMasterDataToAlwatania | كل سجل جديد أو معدَّل من أنواع البيانات الأساسية التي تطلبها | مهمة مجدولة من نوع إجراء (Action) |
EASendMasterDataRecordToAlwatania | السجل الأساسي الذي حُفظ للتو، إذا لم يكن لدى المنصة بعد | مسار كيان على ذلك الملف، والإجراء تأثيرات الحفظ (PostCommit) |
EASendInvoicesToAlwatania | فواتير ومردودات المبيعات التي يختارها استعلام، إذا لم تُقبل من قبل | مهمة مجدولة من نوع إجراء |
المنشأة المعتادة تستخدم مهمتين مجدولتين — واحدة للبيانات الأساسية وأخرى للفواتير — ومسارات كيان اختيارية حتى يصل العملاء والأصناف الجدد إلى المنصة لحظة حفظهم.
في المهمة المجدولة اجعل نوع المهمة إجراء واكتب الإجراء في إسم العنصر؛ وفي مسار الكيان اكتبه في عمود إسم العنصر في سطر التفاصيل. الحقل يحتاج الاسم الكامل للإجراء — com.namasoft.modules.integrations.utils.actions. يليه الاسم المختصر، مثل com.namasoft.modules.integrations.utils.actions.EASendInvoicesToAlwatania. الاسم المختصر وحده لا يُعثر عليه. وأسهل طريقة أن تكتب الاسم المختصر في الحقل ثم تختار الاسم الكامل من قائمة الاقتراحات. المدخلات تُكتب نصًا عاديًا في المدخل 1، المدخل 2، … — والإعدادات يُشار إليها بكودها مكتوبًا، لا باختيارها من قائمة. عناوين المدخلات والوصف الذي تعرضه الشاشة لكل إجراء بالإنجليزية فقط.
قبل أول تشغيل: جهّز البيانات الأساسية
طريقة انتقال سجلات نما إلى المنصة ثابتة (انظر النظرة العامة)، لذا فنجاح الإرسال يعتمد على طريقة تعبئة سجلات نما:
- أعطِ كل عميل فئة عميل 5 ومجموعة ومندوب مبيعات. تصبح هذه فئة العميل وفرعه ومندوبه على المنصة.
- سجّل مندوب المبيعات على فواتير ومردودات المبيعات أيضًا.
- أعطِ كل مستند مبيعات عميلًا.
- تأكد أن كل وحدة تبيع بها الصنف موجودة في جدول الوحدات على الصنف. فتفاصيل الأصناف التي تطابق المنصة عليها سطور الفواتير تُبنى من هذا الجدول.
إرسال البيانات الأساسية في مهمة مجدولة
EASendMasterDataToAlwatania يمسح ملفات رئيسية كاملة. شغّله مرة للإرسال الكامل الأول، ثم اتركه في مهمة مجدولة لتحمل كل تغيير بعد ذلك.
| المدخل | ماذا تكتب | إلزامي |
|---|---|---|
| 1 | كود الإعدادات (أو المعرّف)، مثل ALW01 | نعم |
| 2 | النوع المطلوب إرساله: All، أو أحد Provinces، Cities، Branches، Regions، ClientClasses، Salesmen، Clients، Items، ItemDetails. الحقل يقترح هذه القيم | نعم |
| 3 | استعلام اختياري يضيّق السجلات المعنية. يعيد عمودين: نوع الكيان والمعرّف | لا |
مع All ترسل مهمة واحدة كل الأنواع بالترتيب الذي تحتاجه المنصة: المحافظات، ثم المدن، ثم الفروع والمناطق، ثم فئات العملاء، ثم المندوبين، ثم العملاء، ثم الأصناف، ثم تفاصيل الأصناف. وبدون استعلام يُنظر في كل سجل من كل نوع — لكن لا يُرسَل فعلًا إلا الجديد، أو ما تغيّر منذ آخر إرسال ناجح، أو ما رُفض في المرة السابقة، فتشغيل المهمة كل بضع دقائق أو كل ليلة قليل الكلفة.
الاستعلام في المدخل 3 يسمح بأن يكون لكل ملف شرطه الخاص. الجدول الذي لا يذكره الاستعلام لا يُرسَل إطلاقًا. ويمكن أن تأتي الصفوف بأي ترتيب؛ فالأنواع تُرسَل دائمًا بترتيب المنصة.
-- الأصناف القابلة للبيع فقط، والعملاء المعدَّلون منذ بداية السنة فقط
select entityType, id from InvItem where sellable = 1
union all
select entityType, id from Customer where lastUpdateDate >= '2026-01-01'-- الفروع: أرسل مجموعات العملاء فقط
select entityType, id from MasterGroup where forType = 'Customer'إذا استخدمت استعلامًا مع جعل المدخل 2 All، فاذكر فيه كل جدول تريد إرساله — الشركات والمجموعات والمجموعات التحليلية وفئات العملاء والموظفين والعملاء والأصناف.
دفعات، وتشغيل واحد في كل مرة
تخرج السجلات في دفعات بحجم عدد سجلات البيانات الأساسية في كل دفعة (1000 افتراضيًا)، وكل دفعة تُحفظ مستقلة: الدفعة التي تفشل لا تلغي الدفعات التي قبلها، ويكمل التشغيل بالدفعة التالية. يظهر التقدم بالنص Sending {type} {from} to {to} of {n} to Alwatania، ويمكن إيقاف التشغيل من مراقب المهام مثل أي مهمة أخرى. ولا يمكن أن يعمل أكثر من تشغيل واحد لهذا الإجراء في الوقت نفسه.
مثال مهمة مجدولة
- نوع المهمة: إجراء
- إسم العنصر:
com.namasoft.modules.integrations.utils.actions.EASendMasterDataToAlwatania - المدخل 1:
ALW01 - المدخل 2:
All - المدخل 3: (فارغ)
- الجدولة: كل ليلة، أو كل ساعة إذا كان على المنصة أن ترى العملاء الجدد بسرعة
استخدم زر تشغيل الان للإرسال الكامل الأول بدلًا من انتظار موعد الجدولة.
إرسال السجل الأساسي لحظة حفظه
EASendMasterDataRecordToAlwatania يرسل السجل الذي يعمل عليه المسار — العميل لحظة حفظه، بدلًا من انتظار المسح التالي. ضعه في مسار كيان على أحد هذه الملفات: الشركة، المجموعة، المجموعة التحليلية، فئة عميل 5، الموظف، العميل، الصنف، واجعل مع الإجراء هو تأثيرات الحفظ (PostCommit).
| المدخل | ماذا تكتب | إلزامي |
|---|---|---|
| 1 | كود الإعدادات (أو المعرّف) | نعم |
| 2 | اتركه فارغًا: النوع يُقرأ من السجل (الشركة تُرسَل محافظةً ومدينةً معًا). املأه فقط لتقصر السجل على أحد الأنواع التي يمكن أن يُرسَل بها؛ الاقتراحات تعرض الأنواع المناسبة لشاشة المسار فقط | لا |
أمران يجب معرفتهما:
- يرسل السجلات الجديدة فقط. السجل الموجود لدى المنصة يُترك كما هو، حتى لو عمل المسار عليه مرة أخرى عند تعديل لاحق. التعديلات تصل إلى المنصة عبر المسح المجدول.
- يرسل السجل وحده، لا السجلات التي يشير إليها. العميل الجديد يصل ومعه إشارة إلى مدينته وفرعه وفئته ومندوبه، فلا بد أن تكون هذه موجودة على المنصة مسبقًا. شغّل المسح الكامل مرة قبل تفعيل المسار، وأبقِ المسح مجدولًا: فهو يلتقط أيضًا أي سجل لم يوصله المسار.
مثال مسار كيان
- نوع الكيان: العميل
- مع الإجراء: تأثيرات الحفظ (PostCommit)
- إسم العنصر:
com.namasoft.modules.integrations.utils.actions.EASendMasterDataRecordToAlwatania - المدخل 1:
ALW01
إرسال الفواتير والمردودات
EASendInvoicesToAlwatania يرسل مستندات المبيعات التي يختارها استعلامه.
| المدخل | ماذا تكتب | إلزامي |
|---|---|---|
| 1 | كود الإعدادات (أو المعرّف) | نعم |
| 2 | استعلام يعيد نوع الكيان أولًا والمعرّف ثانيًا | نعم |
-- فواتير ومردودات الأمس واليوم
select entityType, id from SalesInvoice where valueDate >= dateadd(day, -1, getdate())
union all
select entityType, id from SalesReturn where valueDate >= dateadd(day, -1, getdate())التزم بترتيب الأعمدة كما هو — نوع الكيان ثم المعرّف — واختر من فاتورة مبيعات ومردودات مبيعات فقط. كل مستند يحدد بنفسه هل يُرسَل كفاتورة Sale أم Returned.
ما يحدث في كل تشغيل:
- المستندات المقبولة سابقًا تُتخطّى. يمكن أن يتداخل الاستعلام مع التشغيلات السابقة (كما في نافذة اليومين أعلاه) دون خطر: المستند الذي يظهر في السجل مقبولًا لا يُرسَل مرتين. وهذا يعني أيضًا أن المستند بعد قبوله لا تُرسَل تعديلاته اللاحقة في نما.
- المستندات التي فشلت سابقًا تُرسَل من جديد، ويُحدَّث صفها الموجود في السجل.
- تخرج المستندات في دفعات بحجم عدد الفواتير في كل دفعة (5000 افتراضيًا)، وكل دفعة تُحفظ مستقلة. الطلب الأكبر مما تقبله المنصة يُقسَّم آليًا.
- مستند واحد خاطئ لا يُسقط الدفعة. المنصة تفحص الدفعة كلها قبل أن تخزّن أي شيء منها. وعندما تسمّي المستند الذي ترفضه، يسجّله نما مرفوضًا، ويخرجه من الدفعة، ويرسل الباقي من جديد.
- في نهاية التشغيل يُحاوَل كل مستند لم يُقبل مرة أخرى. وما يبقى مرفوضًا يبقى في صفه الخاص في سجل إرسال الفواتير مع سبب المنصة، وينتهي التشغيل بملخص بعدد المرفوض.
شغّل إجراء الفواتير من مهمة مجدولة فقط
لا يمكن أن يعمل أكثر من تشغيل واحد لهذا الإجراء في الوقت نفسه. شغّله من مهمة مجدولة؛ فلو وُضع أيضًا في مسار كيان على فاتورة المبيعات، لفشل حفظ الفاتورة أثناء عمل التشغيل المجدول.
مثال مهمة مجدولة
- نوع المهمة: إجراء
- إسم العنصر:
com.namasoft.modules.integrations.utils.actions.EASendInvoicesToAlwatania - المدخل 1:
ALW01 - المدخل 2: الاستعلام أعلاه
- الجدولة: كل ساعة، أو كل ليلة
عندما يكون أحد المدخلات خطأ
تفحص الشاشة المدخلات عند حفظ المهمة المجدولة أو المسار:
- النوع غير المعروف في المدخل 2 لإجراء البيانات الأساسية يُرفض برسالة تسرد القيم المقبولة، وكذلك المدخل 3 إذا لم يكن استعلام
select. EASendMasterDataToAlwataniaيرفض أن يوضع في مسار كيان على أحد الملفات التي يمسحها — فهو يتجاهل السجل وسيرسل الجدول كله مع كل حفظ. استخدمEASendMasterDataRecordToAlwataniaهناك.EASendMasterDataRecordToAlwataniaيرفض أي شاشة غير الملفات السبعة المذكورة أعلاه.
الرسائل التي تظهر أثناء الإرسال مسرودة في سجلات الإرسال وإعادة الإرسال.