Jira Code: AD-29
The ADV- Item-location plan record is prevented from being saved if the item-location combination is duplicated. An error will be displayed on saving such items.
Workflow Action Script : AD-29 JJ WA Item Location Combination
/**
* @NApiVersion 2.x
* @NScriptType workflowactionscript
* @ScriptTitle AD-29 JJ WA Item Location Combination
* @ScriptID customscript_ad29_jj_wa_itmlocplan
* @Description To Prevent saving of Custom record "ADV - Item Location Plan records",
* if there exists an Item-Location Combination.
* @AppliedTo ADV - Item Location Plan records
* @CreatedBy ND 04/01/2019
*/
define(['N/record', 'N/search'],
function(record,search) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.newRecord - New record
* @param {Record} scriptContext.oldRecord - Old record
* @Since 2016.1
*/
function onAction(scriptContext) {
try{
var filterArray =[];
// to get the current record data
var currRec = scriptContext.newRecord;
var mode = scriptContext.type
log.debug('mode',mode)
var recordId = currRec.id
log.debug('recordId',recordId)
//to get item
var item = currRec.getValue({
fieldId:'custrecord_adv_itemlocplan_item'
});
log.debug("item",item);
var location = currRec.getValue({
fieldId:'custrecord_adv_itemlocplan_planloc'
});
log.debug("location",location);
// check if customer is empty
if(location)
{
filterArray.push(["custrecord_adv_itemlocplan_planloc.internalidnumber","equalto",location]);
}
else
{
filterArray.push(["custrecord_adv_itemlocplan_planloc.entityid","isempty",""]);
}
if(item)
{
filterArray.push("AND",["custrecord_adv_itemlocplan_item.internalidnumber","equalto",item]);
}
else
{
filterArray.push("AND",["custrecord_adv_itemlocplan_item","anyof","@NONE@"]);
}
if(recordId){
filterArray.push("AND", ["internalid","noneof",recordId]);
}
log.debug("filterArray",filterArray);
// to create search for finding the Customer-Item combination exists
var customrecord_adv_itemlocplanSearchObj = search.create({
type: "customrecord_adv_itemlocplan",
filters:filterArray
/* [
["custrecord_adv_item_customer.internalidnumber","equalto",customer],
"AND",
["custrecord_adv_item.internalidnumber","equalto",item]
]*/,
columns:
[
search.createColumn({name: "custrecord_adv_itemlocplan_planloc", label: "Replenishment Planning Location"}),
search.createColumn({name: "custrecord_adv_itemlocplan_item", label: "Item"})
]
});
var searchResultCount = customrecord_adv_itemlocplanSearchObj.runPaged().count;
log.debug("customrecord_adv_itemlocplanSearchObj result count",searchResultCount);
/*customrecord_adv_customer_item_detailSearchObj.run().each(function(result){
// .run().each has a limit of 4,000 results
return true;
});*/
if(searchResultCount>0)
{
return false;
}
else{
return true;
}
}catch(e)
{
log.debug("Err@ FN onAction ",e.message);
//console.log("Err@ FN =",e.message);
}
}
return {
onAction : onAction
};
});