var si=new hld_hr_functions();
//setRPVariable: function(table name, ticket sysid, variable label, variable name, new variable value){
si.setRPVariable('hr_change', 'f886c7881bf4b300cee5ed7cee4bcb15','','snc_located_in_ad', 'BLAH');
script include code:
setRPVariable: function(table, ticketSYSID, optVariableName, optVariableName_db, new_value){
//--update a record producer variable value
//--called from a HR workflow (HR Leaver Returning with Old Trent ID)
//--reference:
//--https://docs.servicenow.com/bundle/london-application-development/page/script/server-scripting/concept/c_ScriptableServiceCatalogVariables.html
var gr= new GlideRecord(table);
gr.addQuery('sys_id', ticketSYSID);
gr.query();
var vars=[];
if (gr.next()) {
for (var prop in gr.variables) {
if (gr.variables.hasOwnProperty(prop) ){
var variable = gr.variables[prop].getDisplayValue();
var v = gr.variables[prop];
if(!gs.nil(v.getGlideObject().getQuestion().getLabel()) && !gs.nil(gr.variables[prop].getDisplayValue())) {
var label = v.getGlideObject().getQuestion().getLabel();
var variableName=v.getGlideObject().getQuestion().getName();
if (optVariableName!='' || optVariableName_db!=''){
/*if (optVariableName.toLowerCase()==label.toLowerCase() && !gs.nil(variable) && variable!='undefined'){
vars.push( label.toUpperCase() + ' [' + variableName + '] : ' + variable );
break;
}*/
if (optVariableName_db.toLowerCase()==variableName.toLowerCase() && !gs.nil(variable) && variable!='undefined'){
//vars.push( label.toUpperCase() + ' [' + variableName + '] : ' + variable );
this._setVariable(ticketSYSID,variableName,new_value);
break;
}
}else{
if (!gs.nil(variable) && variable!='undefined'){
//vars.push( label.toUpperCase()+ ' [' + variableName + '] : ' + variable );
}
}
}
}
}
}
},
_setVariable: function(variable_table_sysid, variable_name, variable_newvalue){
var grVar=new GlideRecord('item_option_new');
grVar.addQuery('name', variable_name);
grVar.query();
while (grVar.next()){
var grAns=new GlideRecord('question_answer');
grAns.addQuery('table_sys_id', variable_table_sysid);
grAns.addQuery('question.sys_id='+ grVar.sys_id);
grAns.query();
if (grAns.next()){
//gs.print(grAns.value);
grAns.value=variable_newvalue;
grAns.update();
gs.addInfoMessage('VARIABLE UPDATED');
break;
}
}
},
//--------------------------------------------
//------------ADDITIONAL OPTIONS
LONG WAY
getVariableValues('hr_case', 'HRC0011250','' ,'chkCMSReq');
function getVariableValues(table, ticketNumber, optVariableName, optVariableName_db){
var gr= new GlideRecord(table);
gr.addQuery('number', ticketNumber);
gr.query();
var vars=[];
if (gr.next()) {
for (var prop in gr.variables) {
if (gr.variables.hasOwnProperty(prop) ){
var variable = gr.variables[prop].getDisplayValue();
var v = gr.variables[prop];
if(!gs.nil(v.getGlideObject().getQuestion().getLabel()) && !gs.nil(gr.variables[prop].getDisplayValue())) {
var label = v.getGlideObject().getQuestion().getLabel();
var variableName=v.getGlideObject().getQuestion().getName();
if (!gs.nil(variable) && variable!='undefined'){
if (variableName==optVariableName_db){
gs.print( label.toUpperCase()+ ' [' + variableName + '] : ' + variable );
var grVar=new GlideRecord('item_option_new');
grVar.addQuery('name', variableName);
grVar.query();
while (grVar.next()){
gs.print(grVar.sys_id);
var grAns=new GlideRecord('question_answer');
grAns.addQuery('table_sys_id', gr.sys_id);
grAns.addQuery('question', grVar.sys_id);
grAns.query();
if (grAns.next()){
gs.print(grAns.value);
grAns.value='false';
grAns.update();
}
}
}
}
}
}
}
}
}
Short way
setVariableValue('hr_case', 'HRC0011250','chkCMSReq', 'true');
function setVariableValue(table, ticketNumber, optVariableName_db, newVal){
var gr= new GlideRecord(table);
gr.addQuery('number', ticketNumber);
gr.query();
if (gr.next()) {
var grVar=new GlideRecord('item_option_new');
grVar.addQuery('name', optVariableName_db);
grVar.query();
while (grVar.next()){ //--use while loop in case variables named the same
gs.print(grVar.sys_id);
var grAns=new GlideRecord('question_answer');
grAns.addQuery('table_sys_id', gr.sys_id);
grAns.addQuery('question', grVar.sys_id);
grAns.query();
if (grAns.next()){
gs.print('OLDVAL: ' + grAns.value);
grAns.value=newVal;
grAns.update();
gs.print('NEWVAL: ' + grAns.value);
break;
}
}
}
}
//setRPVariable: function(table name, ticket sysid, variable label, variable name, new variable value){
si.setRPVariable('hr_change', 'f886c7881bf4b300cee5ed7cee4bcb15','','snc_located_in_ad', 'BLAH');
script include code:
setRPVariable: function(table, ticketSYSID, optVariableName, optVariableName_db, new_value){
//--update a record producer variable value
//--called from a HR workflow (HR Leaver Returning with Old Trent ID)
//--reference:
//--https://docs.servicenow.com/bundle/london-application-development/page/script/server-scripting/concept/c_ScriptableServiceCatalogVariables.html
var gr= new GlideRecord(table);
gr.addQuery('sys_id', ticketSYSID);
gr.query();
var vars=[];
if (gr.next()) {
for (var prop in gr.variables) {
if (gr.variables.hasOwnProperty(prop) ){
var variable = gr.variables[prop].getDisplayValue();
var v = gr.variables[prop];
if(!gs.nil(v.getGlideObject().getQuestion().getLabel()) && !gs.nil(gr.variables[prop].getDisplayValue())) {
var label = v.getGlideObject().getQuestion().getLabel();
var variableName=v.getGlideObject().getQuestion().getName();
if (optVariableName!='' || optVariableName_db!=''){
/*if (optVariableName.toLowerCase()==label.toLowerCase() && !gs.nil(variable) && variable!='undefined'){
vars.push( label.toUpperCase() + ' [' + variableName + '] : ' + variable );
break;
}*/
if (optVariableName_db.toLowerCase()==variableName.toLowerCase() && !gs.nil(variable) && variable!='undefined'){
//vars.push( label.toUpperCase() + ' [' + variableName + '] : ' + variable );
this._setVariable(ticketSYSID,variableName,new_value);
break;
}
}else{
if (!gs.nil(variable) && variable!='undefined'){
//vars.push( label.toUpperCase()+ ' [' + variableName + '] : ' + variable );
}
}
}
}
}
}
},
_setVariable: function(variable_table_sysid, variable_name, variable_newvalue){
var grVar=new GlideRecord('item_option_new');
grVar.addQuery('name', variable_name);
grVar.query();
while (grVar.next()){
var grAns=new GlideRecord('question_answer');
grAns.addQuery('table_sys_id', variable_table_sysid);
grAns.addQuery('question.sys_id='+ grVar.sys_id);
grAns.query();
if (grAns.next()){
//gs.print(grAns.value);
grAns.value=variable_newvalue;
grAns.update();
gs.addInfoMessage('VARIABLE UPDATED');
break;
}
}
},
//--------------------------------------------
//------------ADDITIONAL OPTIONS
LONG WAY
getVariableValues('hr_case', 'HRC0011250','' ,'chkCMSReq');
function getVariableValues(table, ticketNumber, optVariableName, optVariableName_db){
var gr= new GlideRecord(table);
gr.addQuery('number', ticketNumber);
gr.query();
var vars=[];
if (gr.next()) {
for (var prop in gr.variables) {
if (gr.variables.hasOwnProperty(prop) ){
var variable = gr.variables[prop].getDisplayValue();
var v = gr.variables[prop];
if(!gs.nil(v.getGlideObject().getQuestion().getLabel()) && !gs.nil(gr.variables[prop].getDisplayValue())) {
var label = v.getGlideObject().getQuestion().getLabel();
var variableName=v.getGlideObject().getQuestion().getName();
if (!gs.nil(variable) && variable!='undefined'){
if (variableName==optVariableName_db){
gs.print( label.toUpperCase()+ ' [' + variableName + '] : ' + variable );
var grVar=new GlideRecord('item_option_new');
grVar.addQuery('name', variableName);
grVar.query();
while (grVar.next()){
gs.print(grVar.sys_id);
var grAns=new GlideRecord('question_answer');
grAns.addQuery('table_sys_id', gr.sys_id);
grAns.addQuery('question', grVar.sys_id);
grAns.query();
if (grAns.next()){
gs.print(grAns.value);
grAns.value='false';
grAns.update();
}
}
}
}
}
}
}
}
}
Short way
setVariableValue('hr_case', 'HRC0011250','chkCMSReq', 'true');
function setVariableValue(table, ticketNumber, optVariableName_db, newVal){
var gr= new GlideRecord(table);
gr.addQuery('number', ticketNumber);
gr.query();
if (gr.next()) {
var grVar=new GlideRecord('item_option_new');
grVar.addQuery('name', optVariableName_db);
grVar.query();
while (grVar.next()){ //--use while loop in case variables named the same
gs.print(grVar.sys_id);
var grAns=new GlideRecord('question_answer');
grAns.addQuery('table_sys_id', gr.sys_id);
grAns.addQuery('question', grVar.sys_id);
grAns.query();
if (grAns.next()){
gs.print('OLDVAL: ' + grAns.value);
grAns.value=newVal;
grAns.update();
gs.print('NEWVAL: ' + grAns.value);
break;
}
}
}
}
Comments
Post a Comment