我对Netsuite很陌生。我的任务是将csv格式的供应商提取到文件柜。在互联网上搜索后,我找到了一个样本并将其调整为我想要的。但是,导出后,某些字段(如子公司)将使用 Internalid 导出。我不知道为什么。请帮我解决这个问题。
函数创建文件(){
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
字段(即UI中的下拉或列表字段)。通常,这些类型的字段从一条记录链接到另一条记录。
Select
字段有两个组成部分:value
和text
。Select
字段的value
始终是所选记录的internalid
。text
始终是所选记录的name
。
在搜索Result
实例(即您的searchResults[i]
)中,调用getValue()
将返回internalid
,而调用getText()
将返回name
。
无论您希望在何处显示列表字段中的文本,请使用getText()
而不是getValue()
。