Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Script written in below Business rule not getting triggered properly

Not applicable
 var durationProd = 0; // Total time in milliseconds
        var lastProdChangeTime = '';

        // Query the sys_audit table for changes to the "Next Action" field
        var auditGR = new GlideRecord('sys_audit');
        auditGR.addQuery('documentkey', current.sys_id);
        auditGR.addEncodedQuery('fieldname=u_next_action');
        auditGR.orderBy('sys_created_on');
        auditGR.query();

        while (auditGR.next()) {
            var newValue = auditGR.newvalue.toString();
            var changeTime = new GlideDateTime(auditGR.sys_created_on);

            if (newValue == 'Resolved Pend Cust Handshake') {
                if (lastProdChangeTime) {
                    gs.info('lastProdChangeTime:' + lastProdChangeTime);
                    gs.info('changeTime:' + changeTime);
                    var diff = GlideDateTime.subtract(lastProdChangeTime, changeTime).getNumericValue();
                    gs.info('diff:' + diff);
                    durationProd += diff;
                    gs.info('durationProd:' + durationProd);

                }
                lastProdChangeTime = changeTime; // Update the last change time to "Prod"

                gs.info('lastProdChangeTime:' + lastProdChangeTime);
            }

            var r = durationProd / (1000 * 60);
            var removedecimal = Math.floor(r);
            current.u_rpchs_duration = removedecimal + ' Minutes';
        }




    }

HI Team,

 

I am facing an issue wherien I have written the below BR with trigger condition as next action changes but it does not trigger immediately.

I am trying to update the number of minutes a field "u_next_action" holds the value 

"Resolved Pend Cust Handshake". I am quering the sys_audit table to check the newvalue as same. 
Issue is suppose  for the first time I put the next action field as "Resolved Pend Cust Handshake"
, system does not update "u_rpchs_duration" field. It updates after 3 times I change the value to "Resolved Pend Cust Handshake" , it reflects the total duration.

Can you tell how to fix this?

 

 

 

var durationProd = 0; // Total time in milliseconds
        var lastProdChangeTime = '';

        // Query the sys_audit table for changes to the "Next Action" field
        var auditGR = new GlideRecord('sys_audit');
        auditGR.addQuery('documentkey', current.sys_id);
        auditGR.addEncodedQuery('fieldname=u_next_action');
        auditGR.orderBy('sys_created_on');
        auditGR.query();

        while (auditGR.next()) {
            var newValue = auditGR.newvalue.toString();
            var changeTime = new GlideDateTime(auditGR.sys_created_on);

            if (newValue == 'Resolved Pend Cust Handshake') {
                if (lastProdChangeTime) {
                    gs.info('lastProdChangeTime:' + lastProdChangeTime);
                    gs.info('changeTime:' + changeTime);
                    var diff = GlideDateTime.subtract(lastProdChangeTime, changeTime).getNumericValue();
                    gs.info('diff:' + diff);
                    durationProd += diff;
                    gs.info('durationProd:' + durationProd);

                }
                lastProdChangeTime = changeTime; // Update the last change time to "Prod"

                gs.info('lastProdChangeTime:' + lastProdChangeTime);
            }

            var r = durationProd / (1000 * 60);
            var removedecimal = Math.floor(r);
            current.u_rpchs_duration = removedecimal + ' Minutes';
        }

 

1 REPLY 1

Not applicable

Can you show the trigger of your BR ? As well as the entire script of your BR - screenshots are most welcome.