Function
/**
* @description Multiple item names can be included in a single search limit is 1000 names per search via suitescript.
* @param {Array} itemNameArray Array of item names (1000 item names)
* @return {Object}
*/
function itemSearchforVendorUpdate(itemNameArray) {
try {
var b = "";
if (itemNameArray.length > 0) {
for (var i = 0; i < itemNameArray.length; i++) {
if (i == 0) {
if (itemNameArray.length == 1) {
b += "'"
b += itemNameArray[i].trim();
b += "'"
} else {
b += "'"
b += itemNameArray[i].trim();
b += "',"
}
} else if (i == (itemNameArray.length - 1)) {
if (itemNameArray.length !== 1) {
b += "'"
b += itemNameArray[i].trim();
b += "'"
}
} else {
b += "'"
b += itemNameArray[i].trim();
b += "',"
}
}
var itemSearchObj = search.create({
type: "item",
filters:
[
["formulanumeric: CASE WHEN {name} IN (" + b + ") THEN 1 ELSE 0 END", "equalto", "1"],
"AND",
["isinactive", "is", "F"]
],
columns:
[
search.createColumn({name: "internalid", label: "Internal ID"}),
search.createColumn({
name: "itemid",
sort: search.Sort.ASC,
label: "Name"
})
]
});
var resultObj = {};
var myPagedData = itemSearchObj.runPaged();
myPagedData.pageRanges.forEach(function (pageRange) {
var myPage = myPagedData.fetch({index: pageRange.index});
myPage.data.forEach(function (result) {
var internalId = result.getValue({
name: "internalid", label: "Internal ID"
});
var itemName = result.getValue({
name: "itemid",
sort: search.Sort.ASC,
label: "Name"
});
resultObj[itemName] = internalId;
});
});
return resultObj;
} else {
return {}
}
} catch (err) {
log.error('error @ item search',err)
}
}