我希望当用户点击销售订单上的批准按钮时生成采购订单。我将脚本部署到销售订单记录,并在单击批准按钮时触发事件类型。但是,此代码不会创建采购订单,因为我的子列表项值的字段值无效。
我已将项目的内部ID和字符串名称用作值,并且我得到相同的"无效字段值"错误。谁知道什么是错的?
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();
}
}
答案 0 :(得分:3)
采购订单记录中的entity
字段必需。商品记录中的vendorname
字段不存储供应商记录,即使存在,也不会在采购订单上显示相应的vendorname
字段。项目记录中的此值用于标识项目本身的供应商名称/代码,前提是它们具有不同的名称。
如上所述,如果在PO上设置entity
字段,则此代码至少在情境上起作用。如果您设置了Preferred Vendor
,或者如果使用多个供应商功能在那里配置了首选供应商,您可以直接从项目记录中查找相应的entity
字段。
在没有针对库存和非库存销售项目的脚本执行时,实现此脚本似乎正在执行的操作的一种简单方法是使用这些项目记录上的Drop Ship Item
复选框或Special Order Item
复选框。为每个符合条件的商品选择任一项都可以自动为销售订单的订单项创建商品。在Netsuite帮助中搜索Special Order Items
,了解有关差异以及如何设置的更多信息。