Sandii
06/29/2021, 6:36 PMGrayLeopard
06/29/2021, 6:38 PMfunction checkForChanges(request) {
// Find Employees
var employeeSearch = search.create({
type: search.Type.EMPLOYEE,
columns: [
'internalid',
'email',
'firstname',
'lastname',
],
});
employeeSearch.run().each(function (result) {
var internalId = result.getValue('internalid');
var emailAddress = result.getValue('email');
var firstname = result.getValue('firstname');
var lastname = result.getValue('lastname');
// We require email address.
if (emailAddress === '') {
log.debug({
title: 'Employee with empty email.',
details: internalId + ' : ' + firstname + ' ' + lastname,
});
// Next!
return true;
}
if (!Object.prototype.hasOwnProperty.call(request, emailAddress)) {
// Not present.
return true;
}
// Track which employees were found and updated.
request[emailAddress].handled = true;
// Found an entry.
updateEmployee(internalId, request[emailAddress]);
// Continue each iteration.
return true;
});
}
function updateEmployee(id, employeeData) {
log.debug({
title: 'Lookup: ' + id,
});
var employeeRecord = record.load({
type: record.Type.EMPLOYEE,
id: id,
});
log.debug({
title: 'Found: ' + employeeRecord.getValue('email'),
});
if (isEmployeeAdmin(employeeRecord)) {
// Not updating Administrator employees.
log.debug({
title: 'Not updating administrator: ' + employeeRecord.getValue('email'),
});
return;
} else {
log.debug({
title: 'Checking: ' + employeeRecord.getValue('email'),
});
}
var employee = new recordWrapper(employeeRecord);
employee.setIfChanged('firstname', employeeData.givenName);
employee.setIfChanged('lastname', <http://employeeData.sn|employeeData.sn>);
employee.setIfChanged('officephone', employeeData.telephoneNumber);
employee.setIfChanged('mobilephone', employeeData.cell);
employee.setIfChanged('custentity_building', employeeData.location);
var deptId = departments.getValueId(employeeData.department);
employee.setIfChanged('custentity_functional_dept', deptId);
employee.saveIfChanged();
}
function isEmployeeAdmin(employeeRecord) {
var roleCount = employeeRecord.getLineCount({
sublistId: 'roles',
});
for (var i = 0; i < roleCount; i++) {
var roleId = parseInt(employeeRecord.getSublistValue({
sublistId: 'roles',
fieldId: 'selectedrole',
line: i,
}));
if (roleId === ADMINISTRATOR_ID) {
return true;
}
}
return false;
}
GrayLeopard
06/29/2021, 6:38 PMvar employeeRecord = record.load({
type: record.Type.EMPLOYEE,
id: id,
});
Sandii
06/29/2021, 6:39 PMGrayLeopard
06/29/2021, 6:40 PMGrayLeopard
06/29/2021, 6:41 PMGrayLeopard
06/29/2021, 6:42 PMNElliott
07/01/2021, 7:46 AM