/**
* @NApiVersion 2.0
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define([‘N/currentRecord’, ‘N/record’],
/**
* @param {currentRecord} currentRecord
* @param {record} record
*/
function (currentRecord, record) {
/**
* Validation function to be executed when sublist line is committed.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord – Current form record
* @param {string} scriptContext.sublistId – Sublist name
*
* @returns {boolean} Return true if sublist line is valid
*
* @since 2015.2
*/
function itemTypeValidation(scriptContext) {
log.debug({ title: ‘Script Context’, details: scriptContext });
try {
if (scriptContext.sublistId === ‘item’) {
var rec = currentRecord.get();
var itemId = rec.getCurrentSublistValue({
sublistId: ‘item’,
fieldId: ‘item’
});
var itemRecord = record.load({
type: record.Type.INVENTORY_ITEM,
id: itemId
});
// Perform checking of the item type
if (itemRecord.type === ‘inventoryitem’) {
alert(‘Item selected is an Inventory Item. You can only enter a Service Item.’);
return false;
}
}
return true;
} catch (error) {
log.debug({ title: ‘Catch – Error’, details: error.message });
return true;
}
}
return {
validateLine: itemTypeValidation
};
});