Updated work notes from the old value to the new value.

Abbas_Ahamed
Tera Contributor

Hi @Ankur Bawiskar,

 

I saw your earlier response in the community about updating work notes. I tried that method, and it successfully updates a single variable. However, I need to update multiple variables at once. For example, if there are 10 to 15 variables, what should I do? Could you explain how to achieve this?

 

Below is the code I’m using to update a single variable with the OnChange (Catalog Client Script):

 

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
    var str = 'Test value changed to ' + oldValue + ' to ' + newValue;
    g_form.setValue('work_notes', str);
    g_form.update();
}
2 ACCEPTED SOLUTIONS

@Abbas_Ahamed 

so what debugging did you do?

share your BR screenshot and latest script.

also small thing you will have to update is check the previous and current value, if different then only add that in array

I updated the script with gs.info(), use that and share the analysis

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

    // Add your code here
    var arr = [];
    var variableArr = ['variable1', 'variable2', 'variable3'];
    for (var i = 0; i < variableArr.length; i++) {
        if (previous.variables[variableArr[i]] != current.variables[variableArr[i]]) {
            gs.info('value changed for variable' + variableArr[i]);
            arr.push('Variable changed from ' + previous.variables[variableArr[i]] + ' to ' + current.variables[variableArr[i]]);
        }
    }
    current.work_notes = arr.join('\n');

})(current, previous);

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

@Abbas_Ahamed 

Glad to know that my script is working fine.

To get Display value update as this.

-> use getDisplayValue()

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

    // Add your code here
    var arr = [];
    var variableArr = ['test', 'software_title', 'requested_for'];
    for (var i = 0; i < variableArr.length; i++) {
        if (previous.variables[variableArr[i]] != current.variables[variableArr[i]]) {
            arr.push('Variable changed from ' + previous.variables[variableArr[i]].getDisplayValue() + ' to ' + current.variables[variableArr[i]].getDisplayValue());
        }
    }
    current.work_notes = arr.join('\n');

})(current, previous);

I believe I have answered your question and you can enhance it further.

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

12 REPLIES 12

@Abbas_Ahamed 

Glad to know that my script is working fine.

To get Display value update as this.

-> use getDisplayValue()

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

    // Add your code here
    var arr = [];
    var variableArr = ['test', 'software_title', 'requested_for'];
    for (var i = 0; i < variableArr.length; i++) {
        if (previous.variables[variableArr[i]] != current.variables[variableArr[i]]) {
            arr.push('Variable changed from ' + previous.variables[variableArr[i]].getDisplayValue() + ' to ' + current.variables[variableArr[i]].getDisplayValue());
        }
    }
    current.work_notes = arr.join('\n');

})(current, previous);

I believe I have answered your question and you can enhance it further.

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Hi @Ankur Bawiskar ,

Thank you for your responses. The script is working as expected, and I have tested it. I’ve attached a screenshot for your reference. Both scripts are running smoothly as anticipated.

Abbas_Ahamed_0-1757324881185.png

 

 

Thanks,

Abbas

@Abbas_Ahamed 

Glad to know.

Please mark my response as correct and close the thread.

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