在NetSuite中创建新的销售订单时,我想使用项目记录上自定义字段中的值来检索并在交易的行项目部分中输入项目。可以使用SuiteScript 2.0编码此功能吗?
答案 0 :(得分:2)
是的,但是您不需要为此编写脚本。
现在,当您在销售订单中输入项目时,来自自定义项目字段的值将被复制到销售订单行中的相应字段。
答案 1 :(得分:1)
根据您对K的回答的评论,我认为您想做的是:
希望这会有所帮助!
答案 2 :(得分:0)
尝试以下方法。它不完整,无法处理错误,多个匹配项或部分匹配项,但是脚本的主要部分在那里。
您还可以使用validateField而不是fieldChanged(相同的源,但是添加return true;)。在这种情况下,如果发现用户输入了错误的数据,则可以返回false。
/**
*@NApiVersion 2.x
*@NScriptType ClientScript
*/
define(['N/search'],
function(search) {
function setItemFromTestValue(currentRecord) {
var testValue = currentRecord.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'custcol_test'
});
if (!testValue) {
return;
}
var itemSearch = search.create({
type: search.Type.ITEM,
filters: [{
name: 'custitem_test',
operator: 'is',
values: [testValue]
}]
});
var items = [];
itemSearch.run().each(function(result) {
items.push(result.id);
return true;
});
// how to handle multiple items found and no items found are left to you
if (items.length) {
// don't reset current item
var currentItem = currentRecord.getCurrentSublistValue({
sublistId: 'item',
fieldId: 'item'
});
if (items[0] != currentItem) {
currentRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'item',
value: items[0]
});
}
}
}
function fieldChanged(context) {
var sublistName = context.sublistId;
var sublistFieldName = context.fieldId;
if (sublistName === 'item' && sublistFieldName === 'custcol_test') {
console.log('fieldChanged');
setItemFromTestValue(context.currentRecord);
}
}
return {
fieldChanged: fieldChanged
};
});