由于某种原因,子公司,实体ID,应付账款帐户,外部账户正在导出内部值而不是实际值

问题描述

我对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字段具有两个组成部分:valuetextvalue字段的Select始终是所选记录的internalidtext始终是所选记录的name

在搜索Result实例(即您的searchResults[i])中,调用getValue()将返回internalid,而调用getText()将返回{{1} }。

要在“列表”字段中显示文本,请使用name而不是getText()