问题描述
我正在尝试使用SuiteScript 2.0在NetSuite上创建脚本文件,以更新分类记录的外部ID。由于某种原因,NetSuite会更新除externalId之外的所有字段。
我想创建此脚本来更新externalIds,因为我们的大多数CSV模板都使用externalIds查找主数据,例如帐户和类。关键是,NetSuite不会在表单上显示externalIds,并且所有通过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
};
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)