Mass Update Script to update a custom field in the partner record

/**

* @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 }

    });

Leave a comment

Your email address will not be published. Required fields are marked *