slightly clunky way and perhaps not ideal, but it works
navigate to the history entry. the sysid corresponds to the
id of the record changed
var grSHS=new GlideRecord('sys_history_set');//--record
history
if (grSHS.get('id', '8cf2d354db733f403c304662159619a2')){
var grSHL=new GlideRecord('sys_history_line');//--history
grSHL.addQuery('field', 'assignment_group'); //--or whatever
field has changed
grSHL.addQuery('set', grSHS.sys_id);
grSHL.addQuery('oldISNOTEMPTY^newISNOTEMPTY');
grSHL.orderBy('sys_created_on');
grSHL.query();
while(grSHL.next()){
gs.print(grSHL.sys_id);
gs.print(grSHL.old);
gs.print(grSHL.old_value);
}
}
//--or in a script include:
call it this way:
gs.print(si.getAuditHistory_previousValue('8cf2d354db733f403c304662159619a2',
'assignment_group'));
getAuditHistory_previousValue: function(SYSID,
FIELD_CHANGED){
//--purpose: retrieve the audit history from somewhere where previous. cannot
be used, such as a UI Action
var sReturn='';
var grSHS=new GlideRecord('sys_history_set');//--record history
if (grSHS.get('id', SYSID)){ //--sys_id of the record that was changed
var grSHL=new GlideRecord('sys_history_line');//--history
grSHL.addQuery('field', FIELD_CHANGED);//--name of the field that was changed,
e.g. 'assignment_group'
grSHL.addQuery('set', grSHS.sys_id);
grSHL.addQuery('oldISNOTEMPTY^newISNOTEMPTY');
grSHL.orderByDesc('sys_created_on');
grSHL.query();
while(grSHL.next()){
//--return the sys id and display value, comma-separated
sReturn=+grSHL.old_value';'+grSHL.old;
}
}
return sReturn;
},
Comments
Post a Comment