GMR Admin
09/08/2025, 11:36 PM// For each expense line, if cseg_comseg has a value, copy it to custcoll_gnt_comm_rqst
for (var i = 0; i < context.newRecord.getLineCount({ sublistId: 'expense' }); i++) {
var commNo = context.newRecord.getSublistText({ sublistId: 'expense', fieldId: 'cseg_comseg', line: i });
if (commNo) {
context.newRecord.setSublistText({ sublistId: 'expense', fieldId: 'custcoll_gnt_comm_rqst', text: commNo, line: i });
}
}
Error: Invalid custcoll_gnt_comm_rqst reference key COM53.
We're replacing a custom field with a custom segment, and I've got both lists. using the same values but different IDs, hence the setSublistText. The custom field is filtered, but this IS a valid value. Why is it giving me the error?Anthony OConnor
09/08/2025, 11:41 PMcseg
text and setting custcol
text
which implies you're going the other way?Anthony OConnor
09/08/2025, 11:44 PMGMR Admin
09/08/2025, 11:45 PMGMR Admin
09/08/2025, 11:46 PMGMR Admin
09/08/2025, 11:46 PMAnthony OConnor
09/08/2025, 11:47 PMGMR Admin
09/08/2025, 11:47 PMGMR Admin
09/08/2025, 11:47 PMGMR Admin
09/08/2025, 11:47 PMAnthony OConnor
09/08/2025, 11:47 PMGMR Admin
09/08/2025, 11:48 PMGMR Admin
09/08/2025, 11:48 PMGMR Admin
09/08/2025, 11:48 PMGMR Admin
09/08/2025, 11:49 PMAnthony OConnor
09/08/2025, 11:51 PMconst beforeSubmit = (scriptContext) => {
if (scriptContext.type !== 'create' && scriptContext.type !== 'edit')
return;
log.debug({title: 'set custom segments', details:' *** START ***'});
const sublistObj = {
journalentry: 'line',
invoice: 'item',
creditmemo: 'item',
vendorbill: 'expense',
vendorcredit: 'expense'
};
const rec = scriptContext.newRecord;
const sublistId = sublistObj[rec.type];
const lineCount = rec.getLineCount({ sublistId });
for( let i = 0; i < lineCount; i++ ) {
const opUnit = rec.getSublistValue({
sublistId,
fieldId: 'custcol_cp_opunit_passthru',
line: i
});
log.debug('opUnit',opUnit);
const activity = rec.getSublistValue({
sublistId,
fieldId: 'custcol_cp_activity_passthru',
line: i
});
log.debug('activity',activity);
try {
if (opUnit) {
rec.setSublistValue({
sublistId,
fieldId: 'cseg_npo_region',
value: opUnit,
line: i
});
}
if (activity) {
rec.setSublistValue({
sublistId,
fieldId: 'cseg_paactivitycode',
value: activity,
line: i
});
}
} catch (e) {
log.error({
title: 'error',
details: e
});
}
}
}
return {beforeSubmit}
Anthony OConnor
09/08/2025, 11:52 PMGMR Admin
09/08/2025, 11:55 PMAnthony OConnor
09/08/2025, 11:55 PMGMR Admin
09/08/2025, 11:55 PMGMR Admin
09/08/2025, 11:55 PMGMR Admin
09/08/2025, 11:56 PM// For each expense line, if cseg_comseg has a value, copy it to custcoll_gnt_comm_rqst
for (var i = 0; i < context.newRecord.getLineCount({ sublistId: 'expense' }); i++) {
var commNo = context.newRecord.getSublistValue({ sublistId: 'expense', fieldId: 'cseg_comseg', line: i });
// Get the segment's related commitment number
const relatedField = search.lookupFields({
type: 'customrecord_cseg_comseg',
id: commNo,
columns: ['custrecord_comseg_related']
});
const relatedNum = relatedField.custrecord_comseg_related[0] ? relatedField.custrecord_comseg_related[0].value : null;
log.debug('commNo', commNo);
log.debug('relatedField', JSON.stringify(relatedField));
log.debug('relatedNum', relatedNum);
if (commNo) {
context.newRecord.setSublistValue({ sublistId: 'expense', fieldId: 'custcoll_gnt_comm_rqst', value: relatedNum, line: i });
}
}
GMR Admin
09/08/2025, 11:56 PMGMR Admin
09/08/2025, 11:57 PMNElliott
09/09/2025, 6:24 AM