Как отключить редактирование подсписка с помощью пользовательского события Suitescript (перед загрузкой) в netsuite?
Мне также нужно отключить встроенное редактирование.
Спасибо.
Как отключить редактирование подсписка с помощью пользовательского события Suitescript (перед загрузкой) в netsuite?
Мне также нужно отключить встроенное редактирование.
Спасибо.
Вам действительно не нужно отключать редактирование перед загрузкой, потому что на этом этапе никто не может взаимодействовать с подсписками. Подсписки как бы связаны с основной записью, что означает, что они загружаются по мере загрузки объекта основной записи, поэтому лучший способ предотвратить их редактирование — это DOM.. что означает создание скрипта формы или клиентского скрипта (желательно форма ).
-Если вы знаете, какая форма используется записью, перейдите к ней, в противном случае перейдите к записи и найдите «настроить форму» в правом верхнем меню в синей области.
-Затем нажмите на пользовательский код.
-Добавить скрипт для «Проверить функцию строки», чтобы предотвратить редактирование этой строки.
-Используйте пример NetSuite в качестве основы, чтобы предотвратить редактирование строки, вам просто нужно вернуть false.
function sampleValidateLine(type)
{
if ( (nlapiGetCurrentLineItemValue('item', 'custcol_service_item') == true) &&
(!nlapiGetCurrentLineItemText('item', 'custcol_service_rep')) )
{
alert("You must choose a Service Rep for this service item.");
return false;
}
return true;
}
В идеале в NetSuite вы должны ограничить это на основе разрешений. Для пользовательских записей можно отключить встроенное редактирование, а также отключить редактирование дочерних записей. В справочной документации об этом сказано следующее:
Установите флажок Разрешить редактирование дочерних записей, чтобы разрешить непосредственное редактирование записей этого типа, когда они отображаются как дочерние записи в подсписке родительской записи.
https://system.netsuite.com/app/help/helpcenter.nl?topic=CARD_-29 см. пункт 14.
Вы также можете использовать объект формы для достижения того же. См. пример кода ниже: -
var form = scriptContext.form;
var serviceItemColumn = form.getSublist({id: 'timeitem'}).getField({id: 'item'});
serviceItemColumn.updateDisplayType({ displayType : 'disabled' })