Chris
04/21/2023, 7:23 PMHere is the specific code within the POST Request Function Below. Without the address lines the script works just fine.
// Set Address Fields
rec.selectNewLine({ sublistId: 'addressbook' });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'defaultbilling', value: true });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'attention', value: "data.attention" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'addressee', value: "data.addressee" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'addr1', value: "data.addr1" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'city', value: "data.city" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'state', value: "data.state" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'country', value: "US" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'zip', value: "12345" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'label', value: "Test Address" });
rec.commitLine({ sublistId: 'addressbook' });
let recordId = rec.save();
Entire Function
// (POST method - create a NetSuite record)
function post(context) {
doValidation([context.recordtype], ["recordtype"], "POST");
// Define a mapping of context field names to NetSuite field names
const fieldMap = {
paymentType: "custentity9",
vendorClassification: "custentity_vendor_classification",
vendorSmallBusinessSublist: "custentity_sb_sublist",
naicsCode: "custentity_naics_code",
paymentEmail: "custentity_2663_email_address_notif",
};
let rec = record.create({
type: context.recordtype,
isDynamic: true,
});
for (let fldName in context) {
if (context.hasOwnProperty(fldName)) {
// Use the mapped field name if available, otherwise use the original field name
const fieldId = fieldMap[fldName] || fldName;
if (fieldId !== "recordtype" && fieldId !== 'addressbook') {
let field = rec.getField({ fieldId: fieldId }); //gets field information to determine if it's a select field (dropdown)
if (!isNullOrEmpty(context[fldName]) && field.type === "select") {
let selectOptions = field.getSelectOptions({
filter: context[fldName],
operator: "is",
});
let selectValue =
selectOptions.length > 0
? selectOptions[0].value
: context[fldName];
rec.setValue({
fieldId: fieldId,
value: selectValue,
});
} else {
rec.setValue({
fieldId: fieldId,
value: context[fldName],
isDynamic: fieldId.indexOf("cust") === 0,
});
}
}
}
}
// Set Address Fields
rec.selectNewLine({ sublistId: 'addressbook' });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'defaultbilling', value: true });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'attention', value: "data.attention" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'addressee', value: "data.addressee" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'addr1', value: "data.addr1" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'city', value: "data.city" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'state', value: "data.state" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'country', value: "US" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'zip', value: "12345" });
rec.setCurrentSublistValue({ sublistId: 'addressbook', fieldId: 'label', value: "Test Address" });
rec.commitLine({ sublistId: 'addressbook' });
let recordId = rec.save();
let entityId = search.lookupFields({
type: search.Type.VENDOR,
id: recordId,
columns: ["entityid"],
}).entityid;
//returning the response
return {
success: true,
nsInternalId: recordId,
entityId: entityId,
errorMessage: "",
};
}
Helena
04/21/2023, 7:59 PMehcanadian
04/21/2023, 8:15 PMChris
04/21/2023, 8:16 PMChris
04/21/2023, 8:17 PMChris
04/21/2023, 8:17 PMChris
04/21/2023, 8:21 PMChris
04/21/2023, 8:21 PMChris
04/23/2023, 4:52 PMChris
04/23/2023, 10:09 PMShawn Talbert
04/24/2023, 4:00 AMShawn Talbert
04/24/2023, 4:03 AM