The CreatorCon Call for Content is officially open! Get started here.

Scheduled Script Encoded Query Issue

Purushotham1992
Tera Contributor

 

 

I added the encoded query highlighted in orange below and my scheduled script is not working as expected. It does however run as a background script.

 

 

 

 

 

var gr = new GlideRecord('sys_user');
gr.addEncodedQuery("active=true^u_employee_type!=");
gr.addEncodedQuery('sys_created_on>javascript:gs.beginningOfLast60Days()^last_login_time>javascript:gs.beginningOfLast30Days()^ORlast_login_timeISEMPTY');
gr.query();
while (gr.next()) {
var grM = new GlideRecord('sys_user_grmember');
grM.addQuery('group', '24288fe5db9a2384682b9ee5db9619e7');
grM.addQuery('user', gr.sys_id);
grM.query();
if (!grM.next()) {
var grmb = new GlideRecord("sys_user_grmember");
grmb.initialize();
grmb.group = '24288fe5db9a2384682b9ee5db9619e7';
grmb.user = gr.sys_id;
grmb.insert();


}


}

 

 

Any help would be appreciated , thanks in advance  

6 REPLIES 6

ricker
Tera Guru

Tom Siegel
Kilo Guru

If the record is created using a background script but not the scheduled script execution. Please use logging similar this:

if (!grM.next()) {
          var grmb = new GlideRecord("sys_user_grmember");
          grmb.initialize();
          grmb.group = '24288fe5db9a2384682b9ee5db9619e7';
          gs.log("LOOK IF: " + gr.sys_id);
          grmb.user = gr.sys_id;
          var sysID = grmb.insert();
          gs.log("LOOK SYS ID: " + sysID);
          var errorMessage = grmb.getLastErrorMessage();
          gs.log("LOOK ERROR MSG: " + errorMessage);

      }
This will :
1) insure you have sys_id for your user.
2) Give you the sys_id of the record created on sys_user_grmember or "null" if no record was created
3) Give you any error encountered when inserting your record. My guess is that there is a business rule running over the sys_user_grmember that aborts the transaction. Business Rules would not be executed when running the background script.
 
Thanks,
 
Tom