Skip to main content

ServiceNow - Permissions on variables: only allow certain individuals to view the variable on the RITM

 go to the variable> permission tab






masked variables:

see https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0681163 

 

other ideas:

 

Push sensitive variables into a single multi-line variable on submit of the cat item

 

Example onsubmit client script:

function onSubmit() {

    //Type appropriate comment here, and begin script below

 

    var sVars = g_form.getValue('test_variable_1') + '\n' + g_form.getValue('test_variable_2');

   

   

    g_form.setValue('sensitive_data', sVars);

 

    g_form.setMandatory('test_variable_1', false);

    g_form.setMandatory('test_variable_2', false);

   

    g_form.setValue('test_variable_1', '');

    g_form.setValue('test_variable_2', '');

 

}


 


Use display business rule with g_scratchpad to determine visibility

 

Business rule

(function executeRule(current, previous /*null when async*/) {

 

    // Add your code here

    var reqFor=current.requested_for;

    var opBy=current.opened_by;

   

    g_scratchpad.reqFor=reqFor.toString();

    g_scratchpad.opBy=opBy.toString();

   

    gs.addInfoMessage('requested for: ' + current.requested_for);

   

    gs.addInfoMessage('opened by: ' + current.opened_by);

 

})(current, previous);

 

Client script (on RITM, task)

function onLoad() {

   //Type appropriate comment here, and begin script below

   alert('scratchpad req for: '+g_scratchpad.reqFor);

    alert('scratchpad op by: '+g_scratchpad.opBy);

}

 

Use a UI policy to hide the blanked variables on RITM and Task

 

Or, set the rules directly on the variable with access granted via a role


 


 

 

Comments

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 ; } } }