Check unicity of a field value

Hello,

I am currently struggling with SuiteScript 2.0. I am a beginner on SuiteScript and this is my first script.

I check all parameters on the record and the script is well deployed and activate on the record.

I test on a function pageInit to eventually pop up a window  on page init but even this doesn’t work. I don’t understand why.

Then the function fieldchange is checking if there is unicity on  a field in all records already save. It doesn’t work and I don’t know why. Execution log doesn’t appear unless the script is active and deployed.

Here is the script I try : 

/**
 * @NApiVersion 2.0
 * @NScriptType ClientScript
 * @NModuleScope Public
 */
define(['N/currentRecord', 'N/log', 'N/record', 'N/search'],
/**
 * @param{currentRecord} currentRecord
 * @param{log} log
 * @param{record} record
 * @param{search} search
 */
function(currentRecord, log, record, search) {
    

    function pageInit(scriptContext){
        var currentRecord = scriptContext.currentRecord;
        var id = currentRecord.id;

        console.log(id);
        alert({
            title: 'Hello World!',
            message: 'Click OK to continue.'+id
        });
    }

    /**
     * Function to be executed when field is changed.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     * @param {string} scriptContext.fieldId - Field name
     * @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
     * @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
     *
     * @since 2015.2
     */
    function fieldChanged(scriptContext) {

        var currentRec = scriptContext.currentRecord;
        var po = currentRec.getValue('otherrefnum');
        var customer = currentRec.getValue('entity');

        if (scriptContext.fieldId === 'otherrefnum') {

            try {

                alert('un message important');
                console.log('un message');

                po = po.trim();

                log.error('saveRecord' , JSON.stringify(scriptContext));
                log.error('currentRecord' + JSON.stringify(currentRec));

                var exist = searchPO(customer, po);

                if (exist) {
                    alert('The po "' + currentRec.getText('otherrefnum') + '" already exists for the sales order.');
                } else {
                    return true;
                }

            }
            catch(e) {
                console.log(e);
                log.debug({
                    title: '[Error while writing PO]',
                    details: 'Error while writing PO' + (e)
                });
            }
        }
    }

    function searchPO (entity, po){
        var exist = false;

        var searchPo = search.create({
            type: search.Type.SALES_ORDER,
            filters: [["entity","is",entity],  "AND", ["otherrefnum", "is" ,po]]
        });

        var searchResultCount = searchPo.runPaged(currentRecord).count;

        if (searchResultCount > 0) {
            exist = true;
        }
        return exist;

    }




    /**
     * Validation function to be executed when field is changed.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     * @param {string} scriptContext.fieldId - Field name
     * @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
     * @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
     *
     * @returns {boolean} Return true if field is valid
     *
     * @since 2015.2
     */
    function validateField(scriptContext) {

    }



    /**
     * Validation function to be executed when record is saved.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @returns {boolean} Return true if record is valid
     *
     * @since 2015.2
     */
    function saveRecord(scriptContext) {

    }

    return {
        pageInit : pageInit,
        fieldChanged: fieldChanged,
        //validateField: validateField,
        //saveRecord: saveRecord
    };
    
});

 

Could you help me with it ?

 

Thank you !

Rookie Asked on November 10, 2021 in SuiteScript.
Add Comment
1 Answer(s)

Hi,

Are you saying nothing appears to be running at all?

If so, could you please share some screenshots of your script and script deployment records.

Thanks,

Chris

Intermediate Answered on November 10, 2021.

Hello !

Thank you for replying to me !

Yes I can share you some screenshots and here there are:

RE: Check unicity of a field value

RE: Check unicity of a field value

RE: Check unicity of a field value

RE: Check unicity of a field value

Do you see something wrong on them ?

on November 12, 2021.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.
  • This site made possible by our sponsors:   Tipalti   Celigo   Limebox   Become a Sponsor