Call script include from a schedule job and then trigger notification
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-26-2023 11:59 PM
Hi All,
I have a requirement, where i have created a script include and i need to call this script include in a schedule job which runs periodically and when script include returns true i need to trigger notification i.e call a event in schedule job.
Below is the Script include
Script include name - CriteriaforUser
Test1 : function(usersysid){
var Date1 ='';
var encqry='some query';
var grUserRec = new GlideRecord('sys_user');
grUserRec.addQuery('sys_id',usersysid);
grUserRec.addEncodedQuery(encqry);
grUserRec.query();
if(grUserRec.next()){
Date1 = grUserRec.date;
var gdt2 = new GlideDateTime();
var gdt = new GlideDateTime(Date1);
var strtdate = gdt.getDate();
var dgt = new GlideDateTime();
var nowdt = dgt.getDate();
var duration = gs.dateDiff(nowdt, strtdate, true);
if(duration>0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
},
I need to call this script in a schedule job and need to trigger the event once the script include returns true.
Can someone help me with the schedule job as i am not understaing the way to call it.
Thanks in advance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-27-2023 12:12 AM
Hi @Nikki18,
Call script include in Scheduled job scripts and based on result fire the events using gs.evenQueue() method.
var result = new CriteriaforUserI().Test1(usersysidParameter);
if(result == true){
gs.eventQueue("event.name", current/grObject, param1, param2);
}
Thanks,
Sagar Pagar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-27-2023 12:57 AM
Hi Sagar
var result = new CriteriaforUserI().Test1(usersysidParameter);----> what needs to be passed here from script include
if(result == true){
gs.eventQueue("event.name", current/grObject, param1, param2);
}
What needs to be passed from the script include?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-28-2023 11:42 PM
Hi @Sagar Pagar ,
Below are the code for script include and schedule job.
Is this correct?
schedule Job
var getUser = new GlideRecord("sys_user");
getUser.addQuery('active', true);
getUser.query();
while(getUser.next()){
if(new CriteriaforUser().Test1(getUser.sys_id) == true){
gs.eventQueue();
}
}
and this is the script include
Script include name - CriteriaforUser
Test1 : function(usersysid){
var Date1 ='';
var encqry='some query';
var grUserRec = new GlideRecord('sys_user');
grUserRec.addQuery('sys_id',usersysid);
grUserRec.addEncodedQuery(encqry);
grUserRec.query();
if(grUserRec.next()){
Date1 = grUserRec.date;
var gdt2 = new GlideDateTime();
var gdt = new GlideDateTime(Date1);
var strtdate = gdt.getDate();
var dgt = new GlideDateTime();
var nowdt = dgt.getDate();
var duration = gs.dateDiff(nowdt, strtdate, true);
if(duration>0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
},
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-27-2023 12:12 AM - edited 03-27-2023 12:13 AM
Hi @Nikki18 ,
You can use below code to call your script include in scheduled job :-
var obj = new CriteriaforUser().Test1();
To triggered event you can use as below :-
gs.eventQueue('EventName');