الحل المعتمد هو إنشاء تعريف تنبيه يدوي (Notification Definition بخاصية useManually) للفواتير، وبعدها عمل مهمة مجدولة (Task Schedule) من نوع Action تشغّل التنبيه يومياً على الفواتير المستحقة.
1) تعريف التنبيه (Notification Definition)
- اعمل تعريف تنبيه جديد مرتبط بكيان
SalesInvoice.
- علّم على خيار يدوي (
useManually = true) — كده التنبيه مش هيتبعت لما المستخدم يحفظ أو يعدّل الفاتورة، وبس هيتبعت لما المهمة المجدولة تشغّله على السجلات الراجعة من الاستعلام.
- اضبط القالب (Template) ليحتوي على لينك الفاتورة والملاحظات.
- اضبط المستهدفين (Targets) على
firstAuthor.
2) المهمة المجدولة (Task Schedule)
select entityType, id
from SalesInvoice
where commitedBefore = 1
and remaining > 0
and valueDate <= dateadd(day, -10, cast(getdate() as date))
- في
parameter7 حط كود تعريف التنبيه (invoicecollect-notify).
- اضبط الـ Schedule على الساعة 8:30 صباحاً يومياً (أو أي توقيت يناسبك).
JSON جاهز للاستيراد المباشر
{
"NotificationDefinition": [
{
"code": "invoicecollect-notify",
"notificationEntity": "SalesInvoice",
"priority": 1,
"useManually": true,
"templates": {
"notificationTemplate": "لديك فاتورة مبيعات مستحقة {link($this)}\n{remarks}"
},
"targets": [
{
"field": "firstAuthor"
}
]
}
],
"TaskSchedule": [
{
"code": "invoicecollect-notify-task",
"scheduleType": "Action",
"relatedTo": "SalesInvoice",
"scheduleInfo": {
"timeMinute": "30",
"timeHour": "8"
},
"hourInfo": {
"runOnHour0830": true
},
"sendAsNotification": true,
"className": "com.namasoft.infor.domainbase.util.actions.EARunManualNotificationFromQuery",
"parameter1": "select entityType, id from SalesInvoice where commitedBefore = 1 and remaining > 0 and valueDate <= dateadd(day, -10, cast(getdate() as date))",
"parameter7": "invoicecollect-notify"
}
]
}
ملاحظات
- لو محتاج التنبيه يروح لأكتر من شخص (مثلاً البائع كمان)، ضيف Target تاني في
targets على الحقل المناسب.
- لو الفواتير عندها تاريخ استحقاق مختلف عن
valueDate (زي dueDate)، عدّل الاستعلام يستخدم العمود الصح.
- ممكن تجرّب التنبيه أول مرة يدوياً من شاشة الفاتورة قبل ما تربطه بالمهمة المجدولة، عشان تتأكد إن القالب والمستهدفين شغالين صح.