Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

How to send notification with Old value , new value of variable when we change variable value in RITM

Sironi
Kilo Sage

Hi,

some one suggest me about this use case how to solve

I created a notification, just update it a bit as below

 

but that notification has to carry only modified variables details only with Old value , new value of variable when we change variable value in RITM

 

 

1 ACCEPTED SOLUTION

@Sironi 

please update as below and try once

(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
    /* Optional EmailOutbound */
    email, /* Optional GlideRecord */ email_action,
    /* Optional GlideRecord */
    event) {

    template.print("<b>Summary of  items:\n</b>");

    var notiBodyString = event.parm2;
    var parsedData = JSON.parse(notiBodyString);

    template.print('<br>');

    gs.info("parsedData" + parsedData);
    template.print('parsedData----------' + parsedData + '\n' + '\n');

    var notiLength = parsedData.length;
    template.print('<br>');
    gs.info('notiLength' + notiLength);
    template.print('notiLength----------' + notiLength);

    for(var i=0;i<parsedData.length;i++){
    template.print('Variable ' + parsedData[i].variableName + ' old value ' + parsedData[i].oldValue + ' new value ' + parsedData[i].currentValue);    
    }

})(current, template, email, email_action, event);

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

41 REPLIES 41

@Sironi 

can you make these 2 changes and try one

1) make this change

var notiBodyString = event.parm2.toString();

2) Also remove event parameter 2 contains recipient checkbox for your notification

find_real_file.png

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Sironi 

Let me know if I have answered your question.

If so, please mark appropriate response as correct & helpful so that this thread can be closed and others can be benefited by this.

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi Ankur,

apologizes for delay reply.

it is still not getting value,can you chek it in my PDI.

this functionality running in my PDI only.

Business Rule :

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

    var question, i, prv1, cur1;

    var arr = [];
    if (current.variables.changes()) {
        var cur = current.variables.getElements();
        var pvr = previous.variables.getElements();
        gs.info('Current Value-' + current.variables.getElements());
        gs.info('Previous Value-' + previous.variables.getElements());
        for (i = 0; i < cur.length; i++) {
            if (cur[i] != pvr[i]) {
                var obj = {};
                question = cur[i].getQuestion().getLabel();
                gs.info('question' + question);

                cur1 = cur[i];
                gs.info('current value' + cur1);

                prv1 = pvr[i];
                gs.info('prvious value' + prv1);
                obj["variableName"] = cur[i].getQuestion().getLabel();
                obj["currentValue"] = cur[i].getQuestion().getDisplayValue();
                obj["oldValue"] = pvr[i].getQuestion().getDisplayValue();

                arr.push(obj);

            }

        }
        gs.info('Entered');
        gs.info("JSON:" + JSON.stringify(obj));
        gs.info("Array:" + JSON.stringify(arr));
		
        gs.eventQueue("updateventemail", current, gs.getUserID(),JSON.stringify(arr));
    }


})(current, previous);

 

Email Script:

template.print("<b>Summary of  items:\n</b>");

var notiBodyString = event.parm2.toString();
gs.info('notiBodyString :'+notiBodyString);
var parsedData = JSON.parse(notiBodyString);

template.print('<br>');

gs.info("parsedData" + parsedData);
template.print('parsedData----------' + parsedData + '\n' + '\n');

var notiLength = parsedData.length;
template.print('<br>');
gs.info('notiLength' + notiLength);
template.print('notiLength----------' + notiLength);

for (var i = 0; i < parsedData.length; i++) {
    template.print('Variable ' + parsedData[i].variableName + ' old value ' + parsedData[i].oldValue + ' new value ' + parsedData[i].currentValue);
}

 

find_real_file.png

@Sironi 

Please share your pdi url and some admin credentials here ankurb.snow@gmail.com

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi,

please remove event parameter 2 contains recipient checkbox for your notification

Regards
Ankur

 

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader