Multi-select fields are notoriously troublesome to work with in SuiteScript, and the way they behave in a Lookup is no different.
Lookups will return any Select or Multi-select field value as an Array. The Array will contain Objects, and each Object will contain both a value
and a text
property.
The value
property contains the internal ID of the selected value, while the text
contains the name displayed for the selected value.
If nothing is selected in either a Select or a Multi-select field, then an empty Array is returned.
Perhaps it’s best shown with an example. Here I’m looking up the Supervisor (a Select field), Skills (custom multi-select field), and Interests (custom multi-select field) on an Employee record. I’ve selected multiple Skills for the Employee, but I’ve selected none of the Interests.
var empData = s.lookupFields({
type: s.Type.EMPLOYEE,
id: employeeId,
columns: [
"supervisor", // a Select field
"custentity_skills", // a Multi-select field
"custentity_interests" // a Multi-select field
]
});
var supervisorId = empData.supervisor[0].value; // "12345"
var supervisorName = empData.supervisor[0].text; // "Eric T Grubaugh"
var firstSkillId = empData.custentity_skills[0].value; // "3"
var secondSkillName = empData.custentity_skills[1].text // "SuiteScript 2.0"
var noInterests = empData.custentity_interests; // []