/**
* @NApiVersion 2.1
* @NScriptType MassUpdateScript
*/
define([‘N/record’, ‘N/search’, ‘N/log’],
/**
* @param{record} record
* @param{search} search
* @param{log} log
*/
(record, search, log) => {
/**
* Finds the internal ID of an employee based on the partner name.
*
* @param {string} partnerName – The name of the partner to search for.
* @returns {string|null} The internal ID of the employee or null if not found.
*/
const findEmployeeIdByName = (partnerName) => {
try {
const employeeSearch = search.create({
type: search.Type.EMPLOYEE,
filters: [
[‘entityid’, ‘is’, partnerName],
‘AND’,
[‘salesrep’, ‘is’, ‘T’]
],
columns: [‘internalid’]
});
const searchResult = employeeSearch.run().getRange({ start: 0, end: 1 });
return searchResult.length > 0 ? searchResult[0].getValue(‘internalid’) : null;
} catch (e) {
log.debug(“Error in findEmployeeIdByName”, e);
return null;
}
};
/**
* Defines the Mass Update trigger point.
* @param {Object} params
* @param {string} params.type – Record type of the record being processed
* @param {number} params.id – ID of the record being processed
* @since 2016.1
*/
const each = (params) => {
try {
const partnerId = params.id;
log.debug(“partnerId”, partnerId);
// Load partner record
const partnerRecord = record.load({
type: ‘partner’,
id: partnerId
});
log.debug(“partnerRecord”, partnerRecord);
// Get the partner name
const partnerName = partnerRecord.getValue(‘entityid’);
log.debug(“partnerName”, partnerName);
if (!partnerName) {
log.debug(“Partner Name Missing”, `Partner ID: ${partnerId}`);
return; // Exit if no partner name found
}
// Find the employee ID based on partner name
const employeeId = findEmployeeIdByName(partnerName);
log.debug(“employeeId”, employeeId);
if (employeeId) {
// Set the sales rep link
partnerRecord.setValue({
fieldId: ‘custentity_jj_sales_rep_link’,
value: employeeId
});
partnerRecord.save();
log.debug(“Updated Partner”, `Partner ID: ${partnerId}, Employee ID: ${employeeId}`);
} else {
log.debug(“No Matching Employee”, `No employee found for partner name: ${partnerName}`);
}
} catch (e) {
log.error(“Error in updatePartnerSalesRepLink”, e.toString());
}
}
return { each }
});