0

我对 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);
}

}
4

1 回答 1

0

您提到的所有字段都是Select字段(即 UI 中的下拉或列表字段)。通常,这些类型的字段从一条记录链接到另一条记录。

Select字段有两个组件: avalue和 a text。字段的始终是value所选记录的。始终是所选记录的。Selectinternalidtextname

在 SearchResult实例(即您的searchResults[i])中,调用getValue()将返回,internalid而调用getText()将返回name.

无论您想从列表字段中的何处显示文本,请使用getText()而不是getValue().

于 2020-10-18T17:50:07.897 回答