问题描述
我对Netsuite非常陌生。我的任务是将csv格式的供应商提取到文件柜中。在互联网上搜索后,我找到了一个样本并将其调整为我想要的。但是,导出后,子公司等某些字段将使用Internalid进行导出。我不知道为什么。请帮我解决这个问题。
function createFile(){
try{
var searchResults = nlapiSearchRecord('vendor','customsearch_davoil_apx_vendor');
var csvBody = '';
if (searchResults == null || searchResults.length < 1) return;
for (var i=0; i<searchResults.length; i++){
csvBody += searchResults[i].getValue('subsidiary') + ',';
csvBody += searchResults[i].getValue('entityid') + ',';
csvBody += searchResults[i].getValue('subsidiary') + ',';
csvBody += searchResults[i].getValue('companyname') + ',';
csvBody += searchResults[i].getValue('address1') + ',';
csvBody += searchResults[i].getValue('address2') + ',' ;
csvBody += searchResults[i].getValue('city') + ',';
csvBody += searchResults[i].getValue('state') + ',';
csvBody += searchResults[i].getValue('zipcode') + ',';
csvBody += searchResults[i].getValue('country') + ',';
csvBody += searchResults[i].getValue('terms') + ',';
" " + ',';
csvBody += searchResults[i].getValue('phone') + ',';
csvBody += searchResults[i].getValue({name:'contact',join:'contactprimary'}) + ',';
csvBody += searchResults[i].getValue('currency') + ',';
csvBody += searchResults[i].getValue('category') + ',';
csvBody += searchResults[i].getValue({name:'payablesaccount',join:'account'}) + ',';
csvBody += searchResults[i].getValue({name:'expenseaccount',join:'expaccount'}) + ',';
csvBody += searchResults[i].getValue('isinactive') + '\n';
if( searchResults[i] == searchResults.length){
csvBody += EOD|vd_mstr|Rowcount|searchResults.length;
EOF
}
}
var file = nlapiCreateFile('APXPress_vendor_${filename}_051820_081300.csv','CSV',csvBody);
file.setFolder('766');
nlapiSubmitFile(file);
}catch(e){
nlapiLogExecution('Error','createFile','Error while creating file - ' + e.message);
}
}
解决方法
您提到的所有字段都是Select
字段(即用户界面中的下拉列表或列表字段)。通常,这些类型的字段从一条记录链接到另一条记录。
Select
字段具有两个组成部分:value
和text
。 value
字段的Select
始终是所选记录的internalid
。 text
始终是所选记录的name
。
在搜索Result
实例(即您的searchResults[i]
)中,调用getValue()
将返回internalid
,而调用getText()
将返回{{1} }。
要在“列表”字段中显示文本,请使用name
而不是getText()
。