Сохранить значение для продажи за наличные с полем пользовательского сегмента
Я пытаюсь сохранить продажу за наличные в netsuite, у нас есть настраиваемое поле сегмента с именем business unit (ScriptId = custbody_cseg2), и мне нужно указать для него определенное значение (Internal Id = 2 в пользовательском сегменте).
Я использую следующий код, который почти такой же, как у нас в справке netsuite, но применяется к транзакции продажи за наличные:
SelectCustomFieldRef selectCustomFieldRef = new SelectCustomFieldRef();
ListOrRecordRef custSelectValue = new ListOrRecordRef();
custSelectValue.internalId = "2";
//custSelectValue.typeId = "286"; <- with or whitout doesn't change
selectCustomFieldRef.value = custSelectValue;
selectCustomFieldRef.scriptId = "custbody_cseg2";
CustomFieldRef[] customFieldRefArray = new CustomFieldRef[1];
customFieldRefArray[0] = selectCustomFieldRef;
cashSale.customFieldList = customFieldRefArray;
Когда я запускаю этот код, я получаю следующую ошибку:
[Code=INSUFFICIENT_PERMISSION] You do not have permissions to set a value for element custbody_cseg2 due to one of the following reasons: 1) The field is read-only; 2) An associated feature is disabled; 3) The field is available either when a record is created or updated, but not in both cases.
Кто-нибудь знает в чем будет ошибка?
Большое спасибо!
2 ответа
В качестве настраиваемого поля проверьте уровень доступа к полю в форме создания настраиваемого поля. Возможно, у вас недостаточно прав для редактирования этого поля.
Это может быть связано с вашими полномочиями роли.
В NetSuite перейдите в "Настройка => Пользователи / Роли => Управление ролями". Выберите роль, которую вы используете для доступа к NetSuite через веб-сервисы. На вкладке "Разрешения" выберите вложенную вкладку "Транзакции" и добавьте "Продажа за наличные". Смотрите изображение ниже: