Restrict the adding of address in customer Record

Create suite script to restrict the adding of address in customer Record.

“Address Lock” so if the customer has 30 addresses in the address book, he won’t be able to edit/delete/add the address.

The user should not be allowed to edit, create or delete when the customer has 30 addresses on the address book in customer record

Solution:

created a client script for customer record.

Script:

/**
 *@NApiVersion 2.x
 *@NScriptType ClientScript
 * 13 Jan 2022     JJ          Sets address limit to 30 numbers in customer record
 */
define(['N/error'],
    function(error) {
        function pageInit(scriptContext) {
            console.log("scriptContext", scriptContext)
            log.debug("scriptContext", scriptContext)
        }

        function fieldChanged(context) {
            var currentRecord = context.currentRecord;
            var sublistName = context.sublistId;
            var sublistFieldName = context.fieldId;
            console.log("sublistFieldName", sublistFieldName)
            log.debug("sublistName", sublistName)
        }

        function validateLine(scriptContext, sublist) {
            // console.log("context", context)
            console.log("sublist", sublist)
            try {
                var objRecord = scriptContext.currentRecord; //get customer record


                var address_count = objRecord.getLineCount({
                    sublistId: 'addressbook'
                });

                console.log("address_count", address_count)


                if (address_count >= 30) {

                    console.log("if_true2");
                    
                    alert('Address Limit exceeded and Address Locked.');
                } else {
                    return true;
                }

            } catch (e) {
                console.log("address limit error", e)

            }



        }
        function validateDelete(scriptContext,sublist) {
            console.log("context2", scriptContext)
            console.log("sublist2", sublist)
            try {
                var objRecord2 = scriptContext.currentRecord; //get customer record


                var address_count2 = objRecord2.getLineCount({
                    sublistId: 'addressbook'
                });

                console.log("address_count2", address_count2)


                if (address_count2 >= 30) {

                    console.log("if_true2");

                    alert('Address Limit exceeded and Address Locked.');
                } else {
                    return true;
                }

            } catch (e) {
                console.log("address limit error", e)

            }

        }
        function validateInsert(scriptContext,sublist) {
            console.log("context3", scriptContext)
            console.log("sublist3", sublist)
            try {
                var objRecord3 = scriptContext.currentRecord; //get customer record


                var address_count3 = objRecord3.getLineCount({
                    sublistId: 'addressbook'
                });

                console.log("address_count3", address_count3)


                if (address_count3 >= 30) {

                    console.log("if_true3");

                    alert('Address Limit exceeded and Address Locked.');
                } else {
                    return true;
                }

            } catch (e) {
                console.log("address limit error", e)

            }

        }

        return {
            pageInit: pageInit,
            validateLine: validateLine,
            validateDelete: validateDelete,
            validateInsert: validateInsert
        };
    });

Leave a comment

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