Notifications

217 views

Description

When a new task record like Incident, Problem, or Change Request, or any record extending task is created with [task_time_worked], if the system property "com.snc.time_worked.update_task_timer" is set to true, a "Unique Key violation detected by database" is thrown.

Steps to Reproduce

1. Set the system property "com.snc.time_worked.update_task_timer" to true.
2. Add "Time Worked > Task" to a change request form.
3. Create a new change request.
4. Add an entry into the embedded list: "Time Worked > Task".
5. Save the change request.

Workaround

This problem is targeted to be fixed in a future release. To receive notifications when more information becomes available, subscribe to this Known Error article by clicking the Subscribe button at the top right of this form.

As a workaround, edit the Business Rule 'Update task timer' replacing the script with the following:


function updateTaskTimer() {
    var task = current.task.getRefRecord();
    if (!task.isValid())
        return;
    //get all time worked for this task
    var tw = new GlideAggregate("task_time_worked");
    tw.addQuery("task", current.task);
    tw.addAggregate("SUM", "time_worked");
    tw.groupBy("task");
    tw.query();
    if (tw.next()) {
        var timeworked = tw.getAggregate("SUM", "time_worked");
        task.setValue("time_worked", timeworked);
        var workflowState = task.isWorkFlow();
        // don't run task workflows or BR: "Task Time Worked" will create more time worked records
        task.setWorkflow(false);
        task.update();
        task.setWorkflow(workflowState);
        gs.addInfoMessage(gs.getMessage("Time worked entry was modified, updated time in task {0}", task.getDisplayValue()));
    }
}

 


Related Problem: PRB1342651

Seen In

London

Fixed In

Orlando

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2019-07-24 14:08:12
Published:2019-07-24