- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-14-2021 07:19 AM
For a business rule why does current.field = "any string" not actually update the field to that string even if a condition is met.
Here is my script, I have debugged it and it reaches current.u_empty = "false"; but it does not actually set the value to "false" it just leaves it at undefined.
(function executeRule(current, previous /*null when async*/) {
var gr = new GlideRecord("cmdb_ci_business_app");
gr.query();
while(gr.next()) {
var fields = gr.getFields();
for(var i = 0; i < fields.size(); i++) {
var ge = fields.get(i);
if(ge.nil()) {
current.u_empty = "true";
break;
} else {
current.u_empty = "false";
}
}
}
})(current, previous);
Solved! Go to Solution.
- Labels:
-
Personal Developer Instance
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-15-2021 10:14 PM
Hi,
for some field it must be going to if and hence keeping it true
can you try this and check once
(function executeRule(current, previous /*null when async*/) {
var flag = false;
var field;
var gr = new GlideRecord("cmdb_ci_business_app");
//no need for any specific filters here.
gr.query();
while(gr.next()) {
var fields = gr.getFields();
for(var i = 0; i < fields.size() - 1; i++) {
var ge = fields.get(i);
var descriptor = gr.getED();
var fieldName = descriptor.getName();
var fieldValue = gr[fieldName].getDisplayValue();
if(!fieldName.startsWith('sys')){
if(fieldValue.nil()) {
flag = true;
field = fieldName;
break;
} else {
flag = false;
}
}
}
}
if(flag){
gs.info('Field ' + field);
current.setValue('u_new', true);
}
else{
current.setValue('u_new', false);
}
})(current, previous);
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-15-2021 10:14 PM
Hi,
for some field it must be going to if and hence keeping it true
can you try this and check once
(function executeRule(current, previous /*null when async*/) {
var flag = false;
var field;
var gr = new GlideRecord("cmdb_ci_business_app");
//no need for any specific filters here.
gr.query();
while(gr.next()) {
var fields = gr.getFields();
for(var i = 0; i < fields.size() - 1; i++) {
var ge = fields.get(i);
var descriptor = gr.getED();
var fieldName = descriptor.getName();
var fieldValue = gr[fieldName].getDisplayValue();
if(!fieldName.startsWith('sys')){
if(fieldValue.nil()) {
flag = true;
field = fieldName;
break;
} else {
flag = false;
}
}
}
}
if(flag){
gs.info('Field ' + field);
current.setValue('u_new', true);
}
else{
current.setValue('u_new', false);
}
})(current, previous);
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-11-2022 05:06 AM
Can any one help me for finding error in this code?
var recovery_tier=current.getDisplayValue('recovery_tier');
//current.getValue('recovery_tier');
var gdt = new GlideDateTime();
gs.info("recovery tier--"+ recovery_tier);
gs.log("Hello World"+ recovery_tier);
//gs.print(current.recovery_tier + ' exists');
if(recovery_tier=="Criticality 5" || recovery_tier=="Criticality 4"){
gdt.addYearsUTC(1);
}if(recovery_tier=="Criticality 3" || recovery_tier=="Criticality 2" || recovery_tier=="Criticality 1"){
gdt.addYearsUTC(2);
}
current.expires = gdt.getDate();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-11-2022 05:07 AM
Can any one help me for finding error in this code?
var recovery_tier=current.getDisplayValue('recovery_tier');
//current.getValue('recovery_tier');
var gdt = new GlideDateTime();
gs.info("recovery tier--"+ recovery_tier);
gs.log("Hello World"+ recovery_tier);
//gs.print(current.recovery_tier + ' exists');
if(recovery_tier=="Criticality 5" || recovery_tier=="Criticality 4"){
gdt.addYearsUTC(1);
}if(recovery_tier=="Criticality 3" || recovery_tier=="Criticality 2" || recovery_tier=="Criticality 1"){
gdt.addYearsUTC(2);
}
current.expires = gdt.getDate();