#netsuite #suitescript #suitescript2.0
Вопрос:
У меня есть пользовательская запись, которая отображает подсписок, подобный этому подсписку
Я хочу отображать строки только в том случае, если у них осталось более 0 КОЛ-во
например, лот SN01 необходимо удалить.
Я хочу сделать это на странице <url>. когда пользователь откроет запись, он не увидит строк с оставшимся количеством 0
И я получаю ошибку SSS_INVALID_SUBLIST_OPERATION CurrentRecord.selectLine
мой код
function pageInit(scriptContext) {
var rec = scriptContext.currentRecord;
var count = rec.getLineCount('recmachcustrecord_slp_package_no');
for (var i = 0; i < count; i ) {
rec.selectLine({
sublistId: 'recmachcustrecord_slp_package_no',
line: i
});
var qtyR = rec.getCurrentSublistValue({
sublistId: 'recmachcustrecord_slp_package_no',
fieldId: 'custrecord_slp_qty_remaining',
});
if (qtyR == 0) {
rec.removeLine({
sublistId: 'recmachcustrecord_slp_package_no',
line: i,
ignoreRecalc: true
});
}
}
}
Ответ №1:
При удалении строк из подсписка с помощью SuiteScript лучше всего продвигаться вверх от нижней части списка.
Например, удаление первой позиции изменяет значение индекса для всех остальных позиций. Затем попытка удалить строку с индексом count
приводит к тому SSS_INVALID_SUBLIST_OPERATION
, что строка с этим индексом больше не существует.
Чтобы начать с самого низа:
for (var i = count - 1; i >= 0; i--) {
// Add your logic here.
}