for reporting on all the updates a service desk member has made during the working day
note: may be license implication of using a custom table
2 system properties
- logging enabled property (true/false)
- list of ticket types property (string ; delimited, e.g. incident;sc_task)
new table with following fields:
ticket (reference to task)
user (reference to sys_user)
info (string)
business rule on TASK table, fires after insert/update
- exclude users without itil role and isInteractive=true condition, also exclude internal_integration_user=true users (condition can be amended as needed)
condition:
gs.getProperty('ticket.logging.enable')=='true' && gs.isInteractive() && gs.getUser().hasRole('itil')
script:
(function executeRule(current, previous /*null when async*/ ) {
//--exclude technical users
var bProceed = false;
var currentUser = gs.getUserID();
var ticketTypes = gs.getProperty('ticket.logging.tickettypes');
var ticketArr = ticketTypes.split(';');
ticketArr.forEach(function(ticketT) {
if (ticketT == current.getTableName()) {
bProceed = true;
}
});
if (bProceed) {
var grUser = new GlideRecord('sys_user');
if (grUser.get('sys_id', currentUser)) {
if (!grUser.internal_integration_user) {
//--log the user activity
var grLogs = new GlideRecord('u_cu_ticket_log');
grLogs.newRecord();
grLogs.u_ticket = current.sys_id;
grLogs.u_user = currentUser;
grLogs.u_info = current.operation();
grLogs.insert();
}
}
}
})(current, previous);
Comments
Post a Comment