SuiteScript 2.0:如何通过脚本更新externalID

问题描述

我正在尝试使用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 (将#修改为@)