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