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 )){

Service Catalog: variable advanced reference qualifiers

Call a script include to apply a reference qualifier on a catalog item variable: - variable reference qualifier dependent on another variable selection, in this case a variable referencing sys_user (requested_for) On the catalog item form. variable name to apply ref qual filter : retail_equipment variable reference qualifier (on cmdb table ): javascript : new  refqual_functions (). lostStolen_getAssignedCIs (); client-callable script include ( refqual_functions)  function : lostStolen_getAssignedCIs : function (){         //--called from variable set client script, for lost/stolen request (service catalog)     gs . log ( current . variables . requested_for , 'retail_lostStolen_getAssignedCIs' );         return ( 'install_statusNOT IN8,7^owned_by=' + current . variables . requested_for );             //owned_by=1269b79937f1060041c5616043990e41^install_statusNOT IN8,7            },

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }