ما هي طريقة تنفيذ مهمة مجدولة تقوم بتفعيل حقل منع الدخول للمستخدمين الذي مر على انشائهم اكثر من 10 ايام ؟

Viewed 17

ما هي طريقة تنفيذ مهمة مجدولة تقوم بتفعيل حقل منع الدخول للمستخدمين الذي مر على انشائهم اكثر من 10 ايام ؟

2 Answers

شكرا لحضرتك اشتغلت بشكل ممتاز

تتم العملية على خطوتين: أولاً نُنشئ مسار كيان يدوي على المستخدمين يقوم بتفعيل حقل منع الدخول، ثم نُنشئ مهمة مجدولة تشغّل هذا المسار يومياً على المستخدمين الذين مرّ على إنشائهم المدة المطلوبة.

الخطوة الأولى: إنشاء مسار كيان يدوي على المستخدمين

أنشئ مسار كيان (Entity Flow) على كيان المستخدم، واجعله مساراً يدوياً (Manual)، ثم أضف إجراءً من نوع EAFieldValuesCalculator.

ضع في مدخلات (parameters) هذا الإجراء الأوامر التالية بالترتيب:

runCommand="edit"
settings.preventLogin="true"
runCommand="save"

ما يفعله هذا الإجراء: يفتح سجل المستخدم في وضع التعديل، يضع قيمة "نعم" في حقل منع الدخول (preventLogin)، ثم يحفظ السجل.

احفظ المسار ولاحظ كود المسار لأننا سنستخدمه في الخطوة التالية.

الخطوة الثانية: إنشاء المهمة المجدولة

أنشئ مهمة مجدولة (Task Schedule) من النوع إجراء (Action) واختر اسم العنصر:

EARunEntityFlowFromQuery

ثم اضبط مدخلات المهمة:

  • param1: ضع فيه كود مسار الكيان الذي أنشأته في الخطوة الأولى.
  • param2: ضع فيه الاستعلام الذي يحدد المستخدمين المستهدفين:
select entityType, id from NaMaUser u where datediff(day, u.creationDate, getdate()) = 10

هذا الاستعلام يُرجع نوع الكيان والمعرّف لكل مستخدم مرّ على إنشائه عدد الأيام المحدّد، وتقوم المهمة بتشغيل مسار الكيان على كل سجل من نتائج الاستعلام (أي تفعيل منع الدخول لكل مستخدم).

اضبط جدولة المهمة لتعمل يومياً حتى تلتقط المستخدمين الجدد كل يوم.

ملاحظة حول شرط المدة: الاستعلام أعلاه يستخدم = 10، أي يلتقط المستخدم في اليوم العاشر تحديداً بعد إنشائه. ومع تشغيل المهمة يومياً فإن كل مستخدم سيُعالَج مرة واحدة في يومه العاشر، وهو ما يحقّق المطلوب. أمّا إذا أردت أن يشمل الشرط "10 أيام فأكثر" بشكل صريح (مثلاً لمعالجة دفعات سابقة عند أول تشغيل) فاستخدم >= 10 بدلاً من = 10 — وإعادة المعالجة هنا غير ضارة لأن حقل منع الدخول سيكون مفعّلاً بالفعل.