- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2019 01:52 AM
Hi all,
I have to update some records in Change table i.e i have to set work start with created date , work end with created +30 seconds .
I have written like below but not working
Can you please help
var gr= new GlideRecord('change_request');
gr.addEncodedQuery('short_descriptionLIKEISPW-change^active=true^sys_created_by=ispw');
gr.setLimit(2);
gr.query();
while(gr.next())
{
gr.work_start = gr.sys_created_on;
gr.requested_by_date = gr.sys_created_on;
var date = new GlideDateTime('sys_created_on');
gr.work_end = date.addSeconds(10);
gr.update();
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2019 02:55 AM
Try
var gr= new GlideRecord('change_request');
gr.addEncodedQuery('short_descriptionLIKEISPW-change^active=true^sys_created_by=ispw');
gr.setLimit(2);
gr.query();
while(gr.next())
{
gr.work_start = gr.sys_created_on;
gr.requested_by_date = gr.sys_created_on;
var date = new GlideDateTime(gr.sys_created_on);
date.addSeconds(30);
gr.setValue('work_end', date.getValue());
//gs.print(date.getValue());
gr.update();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2019 05:24 AM
yes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2019 06:28 AM
It works fine for me even with setworkflow false.
var gr= new GlideRecord('change_request');
gr.addEncodedQuery('gr.addEncodedQuery('short_descriptionLIKEISPW-change^active=true^sys_created_by=ispw');
');
gr.setLimit(2);
gr.query();
while(gr.next())
{
gr.work_start = gr.sys_created_on;
gr.requested_by_date = gr.sys_created_on;
var date = new GlideDateTime(gr.sys_created_on);
date.addSeconds(30);
gr.setValue('work_end', date.getValue());
gr.setWorkflow(false);
gr.update();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2019 03:17 AM
run the following in a background script and you will see that an error is thrown on a business rule validation:
-- look up that business rule
var gr= new GlideRecord('change_request');
//gr.addEncodedQuery('short_descriptionLIKEISPW-change^active=true^sys_created_by=ispw');
//gr.setLimit(2);
gr.addQuery('sys_id', 'c83c5e5347c12200e0ef563dbb9a7190');
gr.query();
while(gr.next())
{
gr.work_start = gr.sys_created_on;
gs.info('mal1 work_start = ' + gr.work_start);
gr.requested_by_date = gr.sys_created_on;
gs.info('mal1 requested by = ' + gr.requested_by_date);
var date = new GlideDateTime(gr.getDisplayValue('sys_created_on'));
date.addSeconds(10);
gs.info('mal1 date is ' + date);
//var date = new GlideDateTime('sys_created_on');
//gr.work_end = date.addSeconds(10);
gr.setValue('work_end', date);
gs.info('mal1 work end is ' + gr.work_end);
/*Operation against file 'change_request' was aborted by Business Rule 'Actual Start/End Date Validation^c83c5e5347c12200e0ef563dbb9a7190'. Business Rule Stack:Actual Start/End Date Validation
[0:00:00.035] Total Time*/
//gr.update();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2019 03:22 AM
yeah
Recursive business rule call for 'xxx' on change_request:CHG0076814 is being ignored. Business Rule Stack: xxx,xxx
what we need to with this
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2019 05:48 AM
Try changing the "while" section to this:
{
gr.work_start = gr.sys_created_on;
gr.requested_by_date = gr.sys_created_on;
var date = new GlideDateTime(current.sys_created_on);
date.addSeconds(10);
current.work_end = date.getValue();
}
While I haven't tested this actual script, I have done similar date scripting. Let me know how it goes.
