How to force the sys_created_on time when creating a record
						
					
					
				
			
		
	
			
	
	
	
	
	
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-03-2019 07:21 AM
The below script works with exception to manually forcing the created on date. What I am doing is converting Incidents to Cases by recreating a Case record and transferring all the data over (including the comments and work notes). All the individual pieces are moving over BUT it's taking the current date/time instead of the original one.
On this journal table I am able to double-click in list view to manually set the date to a previous date just fine. In my script, it isn't honoring what I'm telling it to do though. How do I go about setting this field?
var newJrn = new GlideRecord('sys_journal_field');
 newJrn.initialize();
 newJrn.name = 'sn_customerservice_case';
 newJrn.element = 'comments';
 newJrn.element_id = cs;
 newJrn.sys_created_by = jrn.sys_created_by.toString();
 newJrn.sys_created_on = jrn.sys_created_on;
 newJrn.value = jrn.value.toString();
 var createdJrn = newJrn.insert();
 
					
				
		
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-03-2019 07:28 AM
You can't specify the created on date time on insert but you can update it after creation with something like
newJrn.value = jrn.value.toString();
var createdJrn = newJrn.insert();
var gr = new GlideRecord('sys_journal_field');
gr.get(createdJrn);
gr.sys_created_on = jrn.sys_created_on;
gr.update();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-03-2019 07:41 AM
Hi Mike,
I did try that but I didn't get any success. In my test print it is showing the date I am trying to set it to so I am locating the correct record. Am I doing something wrong in my update?
gs.log('Comment: ' + jrn.value.toString());
 var newJrn = new GlideRecord('sys_journal_field');
 newJrn.initialize();
 newJrn.name = 'sn_customerservice_case';
 newJrn.element = 'comments';
 newJrn.element_id = cs;
 newJrn.sys_created_by = jrn.sys_created_by.toString();
 newJrn.sys_created_on = jrn.sys_created_on;
 newJrn.value = jrn.value.toString();
 var createdJrn = newJrn.insert();
 
 var findJrn = new GlideRecord('sys_journal_field');
 findJrn.addQuery('sys_id', createdJrn);
 findJrn.query();
 
 if (findJrn.next()) {
 gs.print('Found jrn to update: ' + findJrn + ' to: ' + jrn.sys_created_on);
 findJrn.sys_created_on = jrn.sys_created_on;
 findJrn.update();
 }
 
					
				
		
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-03-2019 07:45 AM
Than most likely ACL issue. Make sure you can go to that record and change created on field.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-03-2019 10:37 AM
Oddly enough, in list view I can update the created time and it saves successfully. I just can't do it when trying to run it through a script.
