- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2023 09:43 PM
Hello All,
I need to trigger a notification based on below conditions,
the notification has to be sent to the assigned person of HR task under HR LCE Case.
When to send conditions:
HR Service ->Onboarding
HR Profile ->After 2 days of 'employee start date' (It is a field under HR Profile table)
User country -> India
So I need to send out a reminder to the user with Subject Line: 'Your tasks are in due, please complete'.
I have tried below schedule job, but not working as expected.
var par = new GlideRecord('sn_hr_le_case');
par.addEncodedQuery('hr_service=0f022b791bee9410cc129759bc4bcbff');
par.query();
while (par.next()) {
var user = par.getValue('subject_person');
var caseID = par.sys_id;
var gr = new GlideRecord('sn_hr_core_profile');
gr.addQuery('user', 'e686369f1b0265d0c2904227cc4bcb5b');
gr.addEncodedQuery('user.location.country=in');
gr.query();
//my script working till here
while (gr.next()) {
var empSD = new GlideDateTime(gr.getValue('employment_start_date'));
empSD.addDays(2);
var empSD2 = empSD.getDate();
var case_number = par.getValue('number');
var task = new GlideRecord('sn_hr_core_task');
task.addQuery('parent',case_number);
task.addEncodedQuery('hr_service=0f022b791bee9410cc129759bc4bcbff^active=true^stateIN10,18^ORstate=20');
task.query();
if (task.next()) {
var date = new GlideDateTime();
var dt = date.getDate();
var dur = GlideDateTime.subtract(empSD2, dt);
var days = dur.getRoundedDayPart();
if (days == '0') {
gs.eventQueue("sn_hr_le.lifecycle_event_duedates", par, par.subject_person);
}
}
}
}
Please help me with solution/suggestions.
I will be more thankful to you.
Kind Regards,
Bhuvana
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2023 05:35 AM
Hi @bhuvana7 Can you please check with the below code:
var par = new GlideRecord('sn_hr_le_case');
par.addEncodedQuery('hr_service=0f022b791bee9410cc129759bc4bcbff');
par.query();
while (par.next()) {
var user = par.subject_person;
var caseID = par.sys_id;
var gr = new GlideRecord('sn_hr_core_profile');
gr.addQuery('user', 'e686369f1b0265d0c2904227cc4bcb5b');
gr.addEncodedQuery('user.location.country=in');
gr.query();
while (gr.next()) {
var empSD = new GlideDateTime(gr.employment_start_date);
empSD.addDays(2);
var empSD2 = empSD.getDate();
var task = new GlideRecord('sn_hr_core_task');
task.addQuery('parent',caseID);
task.addEncodedQuery('hr_service=0f022b791bee9410cc129759bc4bcbff^active=true^stateIN10,18^ORstate=20');
task.query();
if (task.next()) {
var date = new GlideDateTime();
var dt = date.getDate();
var dur = GlideDateTime.subtract(empSD2, dt);
var days = dur.getRoundedDayPart();
if (days == '0') {
gs.eventQueue("sn_hr_le.lifecycle_event_duedates", par, par.subject_person);
}
}
}
Thanks & Regards,
Eswar Chappa
Mark my answer correct and Helpful if this helps you 😀
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2023 05:35 AM
Hi @bhuvana7 Can you please check with the below code:
var par = new GlideRecord('sn_hr_le_case');
par.addEncodedQuery('hr_service=0f022b791bee9410cc129759bc4bcbff');
par.query();
while (par.next()) {
var user = par.subject_person;
var caseID = par.sys_id;
var gr = new GlideRecord('sn_hr_core_profile');
gr.addQuery('user', 'e686369f1b0265d0c2904227cc4bcb5b');
gr.addEncodedQuery('user.location.country=in');
gr.query();
while (gr.next()) {
var empSD = new GlideDateTime(gr.employment_start_date);
empSD.addDays(2);
var empSD2 = empSD.getDate();
var task = new GlideRecord('sn_hr_core_task');
task.addQuery('parent',caseID);
task.addEncodedQuery('hr_service=0f022b791bee9410cc129759bc4bcbff^active=true^stateIN10,18^ORstate=20');
task.query();
if (task.next()) {
var date = new GlideDateTime();
var dt = date.getDate();
var dur = GlideDateTime.subtract(empSD2, dt);
var days = dur.getRoundedDayPart();
if (days == '0') {
gs.eventQueue("sn_hr_le.lifecycle_event_duedates", par, par.subject_person);
}
}
}
Thanks & Regards,
Eswar Chappa
Mark my answer correct and Helpful if this helps you 😀
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-04-2023 01:07 AM
Hi Eswar,
Thank you so much for your kindness and support. Your suggestions helped a lot to me!
Kind Regards
Bhuvana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2023 04:36 AM
Hi Eswar,
As per your suggestions below Scheduled job script is triggered, But one condition is missing. depending on employment_start_date the job should trigger.
For Ex:
- In script we have added 2 days to the 'employment_start_date' and the value stored in 'test' variable.
- And I am storing today date in the variable 'today'.
- So, my scheduled job needs to trigger if test and today variables matches.
- For this I tried below script but it is not filtering the records by 'employment_start_date'
- Please correct me with this this script or suggest any other ways.
var par = new GlideRecord('sn_hr_le_case');
gs.info("testing SJ");
par.addEncodedQuery('active=true^hr_service.fulfillment_type=lifecycle_event^subject_person.location.country=in^hr_service=0f022b791bee9410cc129759bc4bcbff');
par.query();
while (par.next()) {
var test = new GlideDateTime(par.subject_person_hr_profile.employment_start_date);
test.addDays(2);
var today = new GlideDateTime();
var gr = new GlideRecord('sn_hr_core_task');
var arr = [];
gr.addQuery('parent', par.sys_id);
gr.addQuery('u_due_date', today);
gr.query();
while (gr.next()) {
arr.push(gr.sys_id + "");
}
if (test.getGlideObject().getDisplayValue() === today.getGlideObject().getDisplayValue()) {
gs.eventQueue("sn_hr_le.lifecycle_event_duedates", par, par.subject_person, arr.toString());
gs.info('dd3 successful' + arr.toString());
}
}