BobDarroch
ServiceNow Employee
Options
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
3 weeks ago
I spent a bunch of time trying to find a way to add data to journal fields while maintaining the original time stamp and user ID for a customer migrating to ServiceNow and wanting to maintain their notes from their existing system. I suspect that this issue has been solved a number of times, however I didn't see it posted anywhere. Here is the code that I used to make this happen, this is based on my experience & no guarantees
insertJournalHistory: function(targetRecord, content, userName, createdDateTime) {
this.updateNumber = 1;
this.tableName = targetRecord.sys_class_name;
this.sysID = targetRecord.sys_id.toString()
this.createdDateTime = new GlideDateTime();
this.createdDateTime.setDisplayValue(createdDateTime,"MM-dd-yy HH:mm:ss");
this.journalField = new GlideRecord("sys_journal_field");
this.journalField.element = "comments";
this.journalField.element_id = this.sysID;
this.journalField.name = this.tableName;
this.journalField.sys_created_by = userName;
this.journalField.sys_created_on = this.createdDateTime;
this.journalField.value = content;
this.journalField.autoSysFields(false);
this.journalSysID = this.journalField.insert();
this.historySet = new GlideRecord("sys_history_set");
this.historyExists = this.historySet.get("id", this.sysID);
if (this.historyExists) {
this.historyID = this.historySet.sys_id.toString();
this.historySet.updates += 1;
this.historySet.update();
this.updateNumber = this.historySet.updates;
} else {
this.historySet.date_format = "yyyy-MM-dd HH:mm:ss";
this.historySet.id = this.sysID;
this.historySet.language = "en";
this.historySet.last_update_recorded = this.createdDateTime;
this.historySet.line_table = "sys_history_line0000";
this.historySet.sys_created_by = "system";
this.historySet.sys_created_on = this.createdDateTime;
this.historySet.sys_updated_by = "system";
this.historySet.sys_updated_on = this.createdDateTime;
this.historySet.table = this.tableName;
this.historySet.timezone = "America/Los_Angeles";
this.historySet.autoSysFields(false);
this.historyID = this.historySet.insert();
}
this.historyLine = new GlideRecord("sys_history_line");
this.historyLine.field = "comments";
this.historyLine.journal_sysid = this.journalSysID;
this.historyLine.label = "Additional comments";
this.historyLine.setValue("new", content);
this.historyLine.setValue("set", this.historyID);
this.historyLine.sys_created_on = this.createdDateTime;
this.historyLine.sys_updated_on = this.createdDateTime;
this.historyLine.update_time = this.createdDateTime;
this.historyLine.type = "audit";
this.historyLine.user_name = userName;
this.historyLine.update = this.updateNumber;
this.historyLine.autoSysFields(false);
this.historyLineID = this.historyLine.insert();
new GlideHistorySet(this.tableName, this.sysID);
},
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
