Update multi-row variable set in business rule

nathanclw
Giga Contributor

Hi,

I'm trying to update a MRVS in a Business Rule.  This code below reads content from one MRVS and adds it to another.  It seems to work; the final log statements show that my "objResources.interMRVS" value is exactly as expected, but the MRVS in the RITM doesn't get updated.

Is there something I'm missing?

(function executeRule(current, previous) {

    var objResources = {};                                              // JSON array of source/target language pairs
    var requestMRVS, internalMRVS;

    var gr = new GlideRecord('sc_req_item');
    gr.addQuery('sys_id', current.parent.sys_id);
    gr.query();

    if (gr.next()) {
        requestMRVS = gr.variables.source_and_target_language;          // this is the requestor's form data
        internalMRVS = gr.variables.source_target_language_internal;    // this is the more detailed, internal data
    } else {
       return;
    }
    gs.log('requestMRVS.getRowCount() = ' + requestMRVS.getRowCount(), 'nc5');

    objResources.requestMRVS = requestMRVS;
    objResources.internalMRVS = internalMRVS;
    objResources.gr = gr;
    gs.log('objResources.requestMRVS = ' + objResources.requestMRVS, 'nc5');

    try {
        var requestMRVSRowCount = objResources.requestMRVS.getRowCount();
        gs.log('requestMRVSRowCount = ' + requestMRVSRowCount, 'nc5');

        for (var i = 0; i < requestMRVSRowCount; i++) {
            var requestRow = objResources.requestMRVS.getRow(i);
            var newInternalRow = objResources.internalMRVS.addRow();
            newInternalRow.setCellValue('source_language_internal', requestRow.source_language_new);
            newInternalRow.setCellValue('target_language_internal', requestRow.target_language_new);
        }
        objResources.gr.variables.source_target_language_internal = JSON.stringify(objResources.internalMRVS);
    } catch (e) {
        gs.log('setInternalRequestLanguageItems failed because: ' + e.message, 'nc5');
    }

    gs.log('final objResources.requestMRVS = ' + objResources.requestMRVS, 'nc5');
    gs.log('final objResources.internalMRVS = ' + objResources.internalMRVS, 'nc5');
})(current, previous);

 

Thanks,

Nathan

1 ACCEPTED SOLUTION

SanjivMeher
Kilo Patron
Kilo Patron

Can you try this

 

(function executeRule(current, previous) {

    var objResources = {};                                              // JSON array of source/target language pairs
    var requestMRVS, internalMRVS;

    var gr = new GlideRecord('sc_req_item');
    gr.addQuery('sys_id', current.parent.sys_id);
    gr.query();

    if (gr.next()) {
        requestMRVS = gr.variables.source_and_target_language;          // this is the requestor's form data
        internalMRVS = gr.variables.source_target_language_internal;    // this is the more detailed, internal data
    } else {
       return;
    }
    gs.log('requestMRVS.getRowCount() = ' + requestMRVS.getRowCount(), 'nc5');

    objResources.requestMRVS = requestMRVS;
    objResources.internalMRVS = internalMRVS;
    // objResources.gr = gr;
    gs.log('objResources.requestMRVS = ' + objResources.requestMRVS, 'nc5');

    try {
        var requestMRVSRowCount = objResources.requestMRVS.getRowCount();
        gs.log('requestMRVSRowCount = ' + requestMRVSRowCount, 'nc5');

        for (var i = 0; i < requestMRVSRowCount; i++) {
            var requestRow = objResources.requestMRVS.getRow(i);
            var newInternalRow = objResources.internalMRVS.addRow();
            newInternalRow.setCellValue('source_language_internal', requestRow.source_language_new);
            newInternalRow.setCellValue('target_language_internal', requestRow.target_language_new);
        }
        gr.variables.source_target_language_internal = JSON.stringify(objResources.internalMRVS);
    } catch (e) {
        gs.log('setInternalRequestLanguageItems failed because: ' + e.message, 'nc5');
    }
    gr.update();
    gs.log('final objResources.requestMRVS = ' + objResources.requestMRVS, 'nc5');
    gs.log('final objResources.internalMRVS = ' + objResources.internalMRVS, 'nc5');
})(current, previous);

Please mark this response as correct or helpful if it assisted you with your question.

View solution in original post

1 REPLY 1

SanjivMeher
Kilo Patron
Kilo Patron

Can you try this

 

(function executeRule(current, previous) {

    var objResources = {};                                              // JSON array of source/target language pairs
    var requestMRVS, internalMRVS;

    var gr = new GlideRecord('sc_req_item');
    gr.addQuery('sys_id', current.parent.sys_id);
    gr.query();

    if (gr.next()) {
        requestMRVS = gr.variables.source_and_target_language;          // this is the requestor's form data
        internalMRVS = gr.variables.source_target_language_internal;    // this is the more detailed, internal data
    } else {
       return;
    }
    gs.log('requestMRVS.getRowCount() = ' + requestMRVS.getRowCount(), 'nc5');

    objResources.requestMRVS = requestMRVS;
    objResources.internalMRVS = internalMRVS;
    // objResources.gr = gr;
    gs.log('objResources.requestMRVS = ' + objResources.requestMRVS, 'nc5');

    try {
        var requestMRVSRowCount = objResources.requestMRVS.getRowCount();
        gs.log('requestMRVSRowCount = ' + requestMRVSRowCount, 'nc5');

        for (var i = 0; i < requestMRVSRowCount; i++) {
            var requestRow = objResources.requestMRVS.getRow(i);
            var newInternalRow = objResources.internalMRVS.addRow();
            newInternalRow.setCellValue('source_language_internal', requestRow.source_language_new);
            newInternalRow.setCellValue('target_language_internal', requestRow.target_language_new);
        }
        gr.variables.source_target_language_internal = JSON.stringify(objResources.internalMRVS);
    } catch (e) {
        gs.log('setInternalRequestLanguageItems failed because: ' + e.message, 'nc5');
    }
    gr.update();
    gs.log('final objResources.requestMRVS = ' + objResources.requestMRVS, 'nc5');
    gs.log('final objResources.internalMRVS = ' + objResources.internalMRVS, 'nc5');
})(current, previous);

Please mark this response as correct or helpful if it assisted you with your question.