Netsuite SuiteScript 2.0:如何通过脚本更新外部ID
我正在尝试使用SuiteScript2.0在NetSuite上创建一个脚本文件,以更新分类记录的外部Id。出于某种原因,NetSuite会更新除externalId之外的所有字段 我想创建这个脚本来更新ExternalId,因为我们的CSV模板大多使用ExternalId来查找主数据,如帐户和类。关键是,NetSuite不会在表单上显示ExternalID,并且通过UI创建的所有记录在此字段中没有任何信息。因此,这里的想法是安排一个脚本,根据其他一些字段自动填充此字段 这是我的密码Netsuite SuiteScript 2.0:如何通过脚本更新外部ID,netsuite,suitescript,suitescript2.0,Netsuite,Suitescript,Suitescript2.0,我正在尝试使用SuiteScript2.0在NetSuite上创建一个脚本文件,以更新分类记录的外部Id。出于某种原因,NetSuite会更新除externalId之外的所有字段 我想创建这个脚本来更新ExternalId,因为我们的CSV模板大多使用ExternalId来查找主数据,如帐户和类。关键是,NetSuite不会在表单上显示ExternalID,并且通过UI创建的所有记录在此字段中没有任何信息。因此,这里的想法是安排一个脚本,根据其他一些字段自动填充此字段 这是我的密码 /** *
/**
* @NApiVersion 2.0
* @NScriptType ScheduledScript
*/
define(['N/runtime','N/log','N/record','N/search'], function(runtime,log,record,search) {
var qtyProjects=0;
function execute(context) {
try
{
log.debug('Script Started');
/********** Update Project (Classes) External ID ***********/
var classificationSearchObj = search.create({
type: "classification",
filters:
[
["externalid","is","@NONE@"]
],
columns:
[
search.createColumn({name: "name",label: "Name"}),
search.createColumn({name: "custrecord_proj_full_name",label: "FullName"}),
search.createColumn({name: "custrecord_proj_manager",label: "ProjectManager"}),
search.createColumn({name: "externalid",label: "Externalid"})
]
});
var prj_srch = classificationSearchObj.run().each(processProject);
log.debug('Quantity of projects: ',qtyProjects);
log.debug('Script Finished');
}
catch(e)
{
log.debug('Error',e.message);
}
}
function processProject(result) {
var number = result.getValue({name: "name"});
var fullName = result.getValue({name: "custrecord_proj_full_name"});
var externalid = result.getValue({name: "externalid"});
qtyProjects++;
log.debug('Update Number|Name|ExternalId: ',number + " | " + fullName + " | " + externalid);
record.submitFields({
"type":'classification',
"id": result.id,
"values": {
"externalId": externalid,
"custrecord_proj_full_name": "Test Ale 2",
}
});
/*
var project_id = project.save({
enableSourcing: true,
ignoreMandatoryFields: true
});
*/
//return true;
}
return {
execute: execute
};
});
您是否尝试过加载记录,设置外部id然后保存它?您错放了ExtermalId的id,它没有大写字母“I”,如
externalid
。这应该行得通。
根据经验,本机字段id中没有大写字母是的,我尝试加载记录并设置外部id,它对我有效。请使用记录浏览器查看字段的内部id(externalid)。您的代码正在搜索没有externalid的类,并且正在使用搜索中找到的空值更新该类的externalid。您似乎错过了获取新外部ID的查找。是的,我尝试加载和设置,但也没有成功:(是的,我尝试过,但也没有成功。project=record.load({type:'classification',id:result.id,isDynamic:true});project.setValue('externalid',externalid);var project_id=project.save({enableSourcing:true,ignoreMandatoryFields:true});谢谢您的回答。我试图更改为externalid,但仍然存在相同的问题。该字段未更新。:(请尝试使用此字段。)
/**
* @NApiVersion 2.0
* @NScriptType ScheduledScript
*/
define(['N/runtime','N/log','N/record','N/search'], function(runtime,log,record,search) {
function execute(context) {
var so = record.load({
type: record.Type.SALES_ORDER,
id: 12345
});
so.setValue('external','6789');
so.save();
return true;
}
return {
execute: execute
}
});