Skip to main content

ServiceNow - Survey Expiry - assessment duration field?

 

There is a misconception that due_date in the survey designer is responsible for the expiration of the survey instance. but the Fact is:
1. The schedule job(sys_trigger) called 'Cancel Expired Assessments' is responsible for the assessments to get canceled.

https://

.service-now.com/nav_to.do?uri=%2Fsys_trigger.do%3Fsys_id%3De8785d109f233100736af84bc42e70ab

 

Surveys with cancelled state will no longer available to be taken. But if we see survey which is having due_date as past, stats of the survey will still be in 'Ready' state and not cancelled which means expired.

So when schedule job run, it cancels the survyes which are are having due_date as past.

Further, when impersonate user adam.xyz, i can not see this survey instance from My Survey related list, but only visible when directly opening provided link:

?id=take_survey&instance_id=ab0b6dc51ba2cdd88c2b35e4464bxxxx


scheduled job frequency:

Changing it to daily would not affect heavily as it only run once a day. So changing when to run would be up-to the requirement.
However, you can also consider changing it to weekly etc, based on your requirement.

 

Comments

  1. This blog is really helpful to deliver updated affairs over internet which is really appraisable. the endocannabinoid system

    ReplyDelete

Post a Comment

Popular posts from this blog

ServiceNow check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play! option 1 use an encoded query embedded in the GlideRecord , e.g.  var grProf = new GlideRecord ( 'x_cls_clear_skye_i_profile' ); grProf . addQuery ( 'status=1^ owner=NULL ' ); grProf . query (); even better use the glideRecord  addNotNullQuery or addNullQuery option 2 JSUtil.nil / notNil (this might be the most powerful. See this link ) example: if ( current . operation () == 'insert' && JSUtil . notNil ( current . parent ) && ! current . work_effort . nil ())  option 3 there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null can use gs.nil : var grAppr = new GlideRecord ( 'sysapproval_approver' ); var grUser = new GlideRecord ( 'sys_user' ); if ( grUser . get ( 'sys_id' , current . approver )){...

Code a pause/wait - gs.sleep or gs.wait alternative, pause script for specified seconds (timer)

Code a pause/wait - gs.sleep / gs.wait alternative, pause script for specified seconds (timer)  e.g. 10 seconds: do_sleep ( 10000 ); function do_sleep ( milliseconds ) { var start = new Date (). getTime (); for ( var i = 0 ; i < 1e7 ; i ++) { if (( new Date (). getTime () - start ) > milliseconds ){ gs . print ( 'waking up!' ); break ; } } }