Alternate to the scriptContext.lineNum

There are some cases in which scriptContext.lineNum will be undefined if not a sublist or matrix field. In that case you can use the Record.getCurrentSublistIndex, it returns the line number of the currently selected line. Note that line indexing begins at 0 with SuiteScript 2.0.

var currIndex = objRecord.getCurrentSublistIndex({
    sublistId: 'item'
});

Example

In the client script for field validation, in field changed entry point we have to get the line number. When script context.linenum is used it showed error as undefined. you can try out this

/**
* 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) {
var currentRecord = scriptContext.currentRecord;
var sublistName = scriptContext.sublistId;
var fieldId = scriptContext.fieldId;
var currIndex = currentRecord.getCurrentSublistIndex({
sublistId: 'custpage_table'
});   }

Leave a comment

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