Я хочу создать заказ на покупку после нажатия кнопки "одобрить" в заказе на продажу
Я хочу, чтобы заказ на покупку был сгенерирован, когда человек нажимает кнопку подтверждения в заказе на продажу. У меня есть сценарий, развернутый в записях заказов на продажу и типе события, которое срабатывает при нажатии кнопки подтверждения. Однако этот код не будет создавать заказ на покупку, потому что у меня недопустимое значение поля для значения элемента подсписка.
Я использовал как внутренний идентификатор, так и строковое имя элемента в качестве значений, и я получаю ту же ошибку "неверное значение поля". Кто-нибудь знает, что не так?
function beforeSubmit(context) {
var sRecord = context.newRecord;
var user = runtime.getCurrentUser();
//get line count
var itemCount = sRecord.getLineCount({
sublistId: 'item'
});
for (var i = 0; i<itemCount; i++){
var pOrder = record.create({
type: record.Type.PURCHASE_ORDER,
isDynamic: true
});
//get item internal id
var itemId = sRecord.getSublistValue({
sublistId : 'item',
fieldId : 'item',
line : i
});
//get qty
var qty = sRecord.getSublistValue({
sublistId : 'item',
fieldId : 'quantity',
line : i
});
//get vendor of item
var vendor = search.lookupFields({
type : 'item',
id : itemId,
columns : ['vendorname']
});
//add vendor to record
pOrder.setValue('vendorname', vendor);
//selects new line
pOrder.selectNewLine({sublistId: 'item'});
//add item to sublist
pOrder.setCurrentSublistValue({
sublistId : 'item',
fieldId : 'item',
value : itemId
});
//add quantity to sublist
pOrder.setCurrentSublistValue({
sublistId : 'item',
fieldId : 'quantity',
value : qty
});
pOrder.commitLine({sublistId: 'item'});
pOrder.save();
}
}
1 ответ
entity
поле обязательно для заполнения в записи заказа на покупку. vendorname
поле в записи товара не хранит запись о поставщике, и даже если это так, vendorname
поле на ПО. Это значение из записи товара используется для идентификации имени / кода поставщика для самого товара, если у него другое имя.
Как написано, этот код функционирует по крайней мере ситуативно, если entity
поле установлено на PO. Если вы установили Preferred Vendor
или если при использовании функции нескольких поставщиков настроен предпочтительный поставщик, вы можете найти соответствующий entity
поле непосредственно из записи элемента еще.
Простой способ добиться того, что, по-видимому, делает этот сценарий без сценариев для инвентарных и не инвентарных предметов для продажи, состоит в использовании Drop Ship Item
флажок или Special Order Item
флажок на этих записях элементов. Выбор любого из подходящих элементов позволит автоматически создавать позиции для позиций вашего заказа на продажу. Поиск Special Order Items
в справке Netsuite для получения дополнительной информации о различиях и о том, как их настроить.