The CreatorCon Call for Content is officially open! Get started here.

Business Rule - Create copy of current item?

Edwin Fuller
Tera Guru

Hello everyone

I need to create a duplicate of the current item whenever a field is answered a certain way; Is this possible using business rule script? The duplicate would get created when the field "survey_question_1" equals "New ask based on response". Examples would be great!!

Current Business Rule script

var gdt= new GlideDateTime();

current.actual_completion_date.setValue(gdt);

if (current.survey_question_2 == 'New Ask based on response') {

}

1 ACCEPTED SOLUTION

Thank you Abhinay, the script you provided below works perfectly. My next ask is how can I create a copy without copying all of the fields, only the fields that I want/need?



if (current.survey_question_2 == 'New Ask based on response') {


var gr= new GlideRecord("x_hemas_connectus2_x_hemas_connectus_connectus");


gr.newRecord();


gr.insert();


}


View solution in original post

19 REPLIES 19

I tested it on my instance and is not giving any error currently. It's creating a new copy with the next autonumber generated.


Abhinay Erra
Giga Sage

Here you go


if (current.survey_question_2 == 'New Ask based on response') {


var gr= new GlideRecord("table name");


gr.newRecord();


gr.insert();


}


Hi Abhinay,



Wouldn't this create just a new record(not a duplicate) with default values?


Abhinay Erra
Giga Sage

Oops I misread completely. Here is the code for creating a copy



var gr= new GlideRecord('table name');


gr.get(current.getValue('sys_id'));


gr.setWorkflow(false);


gr.insert();


Abhinay Erra
Giga Sage

For the next number to be padded use this script


var gr= new GlideRecord(current.getTableName());


  gr.get(current.getValue('sys_id'));


  gr.number=getNextObjNumberPadded();


  gr.setWorkflow(false);


  gr.insert();